Module: ActiveRecord::Geocodable::Model

Defined in:
lib/active_record_geocodable/model.rb

Instance Method Summary collapse

Instance Method Details

#complete_address?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/active_record_geocodable/model.rb', line 66

def complete_address?
  !complete_address.blank?
end

#geoObject



7
8
9
# File 'lib/active_record_geocodable/model.rb', line 7

def geo
  @geo ||= geocoder.geocode(complete_address)
end

#geocode?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/active_record_geocodable/model.rb', line 70

def geocode?
  true
end

#geocode_complete_addressObject



35
36
37
38
39
40
41
42
43
44
# File 'lib/active_record_geocodable/model.rb', line 35

def geocode_complete_address
  if geocode? && geocode_complete_address?
    if runned_geocoding_successful?
      set_geocode_data && true
    else
      geocode_complete_address_error
      false
    end
  end
end

#geocode_complete_address?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/active_record_geocodable/model.rb', line 62

def geocode_complete_address?
  complete_address_changed? && complete_address?
end

#geocode_complete_address_errorObject



54
55
56
# File 'lib/active_record_geocodable/model.rb', line 54

def geocode_complete_address_error
  errors.add(:complete_address, geocode_complete_address_error_messsage)
end

#geocode_complete_address_error_messsageObject



58
59
60
# File 'lib/active_record_geocodable/model.rb', line 58

def geocode_complete_address_error_messsage
  "Cannot geocode complete address: #{complete_address}"
end

#geocoded?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/active_record_geocodable/model.rb', line 27

def geocoded?
  lat? && lng?
end

#geocoderObject



31
32
33
# File 'lib/active_record_geocodable/model.rb', line 31

def geocoder
  Geokit::Geocoders::MultiGeocoder
end

#geocoding_occured?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/active_record_geocodable/model.rb', line 11

def geocoding_occured?
  !@geo.nil?
end

#geocoding_successful?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/active_record_geocodable/model.rb', line 15

def geocoding_successful?
  geocoding_occured? && geo.success
end

#lat?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/active_record_geocodable/model.rb', line 19

def lat?
  !lat.nil?
end

#lng?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/active_record_geocodable/model.rb', line 23

def lng?
  !lng.nil?
end

#runned_geocoding_successful?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/active_record_geocodable/model.rb', line 46

def runned_geocoding_successful?
  geo && geocoding_successful?
end

#set_geocode_dataObject



50
51
52
# File 'lib/active_record_geocodable/model.rb', line 50

def set_geocode_data
  !(self.lat = geo.lat).nil? && !(self.lng = geo.lng).nil?
end