diff --git a/lib/liquid/variable_lookup.rb b/lib/liquid/variable_lookup.rb index 6a58fe2..38423ee 100644 --- a/lib/liquid/variable_lookup.rb +++ b/lib/liquid/variable_lookup.rb @@ -3,6 +3,8 @@ module Liquid SQUARE_BRACKETED = /\A\[(.*)\]\z/m COMMAND_METHODS = ['size'.freeze, 'first'.freeze, 'last'.freeze] + attr_reader :name, :lookups, :command_flags + def self.parse(markup) new(markup) end diff --git a/test/unit/variable_unit_test.rb b/test/unit/variable_unit_test.rb index 084b846..36d4323 100644 --- a/test/unit/variable_unit_test.rb +++ b/test/unit/variable_unit_test.rb @@ -147,4 +147,16 @@ class VariableUnitTest < Minitest::Test var = Variable.new(%! name_of_variable | upcase !) assert_equal " name_of_variable | upcase ", var.raw end + + def test_variable_lookup_interface + lookup = VariableLookup.new('a.b.c') + assert_equal 'a', lookup.name + assert_equal ['b', 'c'], lookup.lookups + assert_equal 0, lookup.command_flags + + lookup = VariableLookup.new('a.first.size') + assert_equal 'a', lookup.name + assert_equal ['first', 'size'], lookup.lookups + assert_equal 0b11, lookup.command_flags + end end