Class: Calagator::Venue

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
DecodeHtmlEntitiesHack, DuplicateChecking, StripWhitespace
Defined in:
app/models/calagator/venue.rb,
app/models/calagator/venue/search.rb,
app/models/calagator/venue/geocoder.rb,
app/models/calagator/venue/search_engine.rb,
app/models/calagator/venue/search_engine/sql.rb,
app/models/calagator/venue/search_engine/apache_sunspot.rb

Defined Under Namespace

Classes: Geocoder, Search, SearchEngine

Constant Summary

Constants included from DuplicateChecking

DuplicateChecking::DEFAULT_SQUASH_METHOD, DuplicateChecking::DUPLICATE_CHECKING_IGNORES_ATTRIBUTES, DuplicateChecking::DUPLICATE_MARK_COLUMN

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DuplicateChecking

#duplicate?, #find_exact_duplicates, included, #master?, #progenitor

Methods included from DecodeHtmlEntitiesHack

#decode_html_entities, included

Methods included from StripWhitespace

included

Instance Attribute Details

#force_geocodingObject

Returns the value of attribute force_geocoding.



104
105
106
# File 'app/models/calagator/venue.rb', line 104

def force_geocoding
  @force_geocoding
end

Class Method Details

.search(query, opts = {}) ⇒ Object



78
79
80
# File 'app/models/calagator/venue.rb', line 78

def self.search(query, opts={})
  SearchEngine.search(query, opts)
end

Instance Method Details

#full_addressObject

Display a single line address.



87
88
89
90
# File 'app/models/calagator/venue.rb', line 87

def full_address
  full_address = "#{street_address}, #{locality} #{region} #{postal_code} #{country}"
  full_address.strip != "," && full_address
end

#geocode!Object



106
107
108
109
# File 'app/models/calagator/venue.rb', line 106

def geocode!
  Geocoder.geocode(self)
  true # Try to geocode, but don't complain if we can't.
end

#geocode_addressObject

Get an address we can use for geocoding



93
94
95
# File 'app/models/calagator/venue.rb', line 93

def geocode_address
  full_address or address
end

#locationObject

Return this venue’s latitude/longitude location, or nil if it doesn’t have one.



99
100
101
102
# File 'app/models/calagator/venue.rb', line 99

def location
  location = [latitude, longitude]
  location.all?(&:present?) && location
end

#update_events_count!Object



111
112
113
# File 'app/models/calagator/venue.rb', line 111

def update_events_count!
  update_attribute(:events_count, events.non_duplicates.count)
end

#url=(value) ⇒ Object



82
83
84
# File 'app/models/calagator/venue.rb', line 82

def url=(value)
  super UrlPrefixer.prefix(value)
end