Array Confusion

I have the following instruction that returns an array that I’m quite confused about. I can’t even read it. Can someone shed some light as to how to reach into this array of hashes (that’s what I can see) to get the location lat and lon?

res =

This is the res:

[#<Geocoder::Result::Google:0x007fb46c345e18 @data={"address_components"=>[{"long_name"=>"1600", "short_name"=>"1600", "types"=>["street_number"]}, {"long_name"=>"Amphitheatre Parkway", "short_name"=>"Amphitheatre Pkwy", "types"=>["route"]}, {"long_name"=>"Mountain View", "short_name"=>"Mountain View", "types"=>["locality", "political"]}, {"long_name"=>"California", "short_name"=>"CA", "types"=>["administrative_area_level_1", "political"]}, {"long_name"=>"United States", "short_name"=>"US", "types"=>["country", "political"]}, {"long_name"=>"94043", "short_name"=>"94043", "types"=>["postal_code"]}], "formatted_address"=>"1600 Amphitheatre Parkway, Mountain View, CA 94043, USA", "geometry"=>{"location"=>{"lat"=>37.4219985, "lng"=>-122.0839544}, "location_type"=>"ROOFTOP", "viewport"=>{"northeast"=>{"lat"=>37.4233474802915, "lng"=>-122.0826054197085}, "southwest"=>{"lat"=>37.4206495197085, "lng"=>-122.0853033802915}}}, "types"=>["street_address"]}, @cache_hit=nil>]

Outside of the conversion of string to integer errors (?), I can’t traverse this array because it holds a comment in the first line there, before an instance variable is set to the data. Quite confused. Any insight appreciated.


Your’e looking at the result in correctly,— that is not a comment in the array! Its the “stringified” output of the array that contains Geocoder::Result objects.

res = # => gives you entire data .. seen as @data and then you can traverse as a hash

There are other helper routines too (a few mentioned below). res.address res.state res.formatted_address res.coordinates

etc. See these two files to learn all the methods of Geocoder::Result

Cheers! @gautamrege

I see. Now it is clear. I was under the impression that the inspect method was just a representation of the returned array. Good to know. Thanks for the notes.