module RecursiveOpenStruct::Dig
Public Instance Methods
dig(name, *names)
click to toggle source
Replaces +OpenStruct#dig+ to properly support treating nested values as RecursiveOpenStructs instead of returning the nested Hashes.
# File lib/recursive_open_struct/dig.rb, line 6 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.length > 0 && name_val.respond_to?(:dig) name_val.dig(*names) else name_val end end