Module: RecursiveOpenStruct::Dig
- Included in:
- RecursiveOpenStruct
- Defined in:
- lib/recursive_open_struct/dig.rb
Overview
Replaces OpenStruct#dig to properly support treating nested values as RecursiveOpenStructs instead of returning the nested Hashes.
This module is only added in when OpenStruct#dig exists (the OpenStruct included in older Ruby versions didn’t implement it)
Instance Method Summary collapse
Instance Method Details
#dig(name, *names) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/recursive_open_struct/dig.rb', line 10 def dig(name, *names) begin name = name.to_sym rescue NoMethodError raise TypeError, "#{name} is not a symbol nor a string" end name_val = self[name] if !names.empty? && name_val.respond_to?(:dig) name_val.dig(*names) else name_val end end |