Class: Liquid::Drop::HashOrArray
- Inherits:
-
Liquid::Drop
- Object
- Liquid::Drop
- Liquid::Drop::HashOrArray
- Extended by:
- Forwardable::Extended
- Defined in:
- lib/liquid/drop/hash_or_array.rb,
lib/liquid/drop/hash_or_array/version.rb
Constant Summary collapse
- VERSION =
"1.0.0"
Instance Method Summary collapse
-
#[](key) ⇒ <Any>
– Standard hash method so that you can also access the data like a hash/array.
-
#initialize(data) ⇒ <HashOrArray>
constructor
– There is no need for explaining it.
-
#liquid_method_missing(key) ⇒ <Any>
– Uses Liquids method missing method to get the key when you try and access the drop like a chained method we do the case because oen day we might split out the class and it would require minimal refactor.
Constructor Details
#initialize(data) ⇒ <HashOrArray>
– There is no need for explaining it. –
17 18 19 |
# File 'lib/liquid/drop/hash_or_array.rb', line 17 def initialize(data) @data = data end |
Instance Method Details
#[](key) ⇒ <Any>
– Standard hash method so that you can also access
the data like a hash/array.
–
26 27 28 |
# File 'lib/liquid/drop/hash_or_array.rb', line 26 def [](key) liquid_method_missing(key) end |
#liquid_method_missing(key) ⇒ <Any>
– Uses Liquids method missing method to get the key
when you try and access the drop like a chained method
we do the case because oen day we might split out the
class and it would require minimal refactor.
–
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/liquid/drop/hash_or_array.rb', line 37 def liquid_method_missing(key) val = @data.fetch(key.to_s, @data[key.to_sym]) case true when val.is_a?(Array) then HashOrArray.new(val) when val.is_a?( Hash) then HashOrArray.new(val) else val end end |