Class: OpenStruct

Inherits:
Object
  • Object
show all
Defined in:
lib/backport_dig/ostruct.rb

Instance Method Summary collapse

Instance Method Details

#dig(name, *names) ⇒ Object

Retrieves the value object corresponding to the each name objects repeatedly.

address = OpenStruct.new('city' => "Anytown NC", 'zip' => 12345)
person = OpenStruct.new('name' => 'John Smith', 'address' => address)
person.dig(:address, 'zip') # => 12345
person.dig(:business_address, 'zip') # => nil


13
14
15
16
17
18
19
20
# File 'lib/backport_dig/ostruct.rb', line 13

def dig(name, *names)
  begin
    name = name.to_sym
  rescue NoMethodError
    return
  end
  @table.dig(name, *names)
end