module Geocoder class Result attr_accessor :data ## # Takes a hash of result data from a parsed Google result document. # def initialize(data) @data = data end def types @data['types'] end def formatted_address @data['formatted_address'] end def address_components @data['address_components'] end ## # Get address components of a given type. Valid types are defined in # Google's Geocoding API documentation and include (among others): # # :street_number # :locality # :neighborhood # :route # :postal_code # def address_components_of_type(type) address_components.select{ |c| c['types'].include?(type.to_s) } end def geometry @data['geometry'] end end end