Class: Calagator::Venue
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Calagator::Venue
- Includes:
- ActiveModel::Serializers::Xml, 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
-
#force_geocoding ⇒ Object
Returns the value of attribute force_geocoding.
Class Method Summary collapse
Instance Method Summary collapse
-
#full_address ⇒ Object
Display a single line address.
- #geocode! ⇒ Object
-
#geocode_address ⇒ Object
Get an address we can use for geocoding.
-
#location ⇒ Object
Return this venue's latitude/longitude location, or nil if it doesn't have one.
- #update_events_count! ⇒ Object
- #url=(value) ⇒ Object
Methods included from DuplicateChecking
#duplicate?, #find_exact_duplicates, included, #originator, #primary?
Methods included from DecodeHtmlEntitiesHack
#decode_html_entities, included
Methods included from StripWhitespace
Instance Attribute Details
#force_geocoding ⇒ Object
Returns the value of attribute force_geocoding.
105 106 107 |
# File 'app/models/calagator/venue.rb', line 105 def force_geocoding @force_geocoding end |
Class Method Details
.search(query, opts = {}) ⇒ Object
79 80 81 |
# File 'app/models/calagator/venue.rb', line 79 def self.search(query, opts = {}) SearchEngine.search(query, opts) end |
Instance Method Details
#full_address ⇒ Object
Display a single line address.
88 89 90 91 |
# File 'app/models/calagator/venue.rb', line 88 def full_address full_address = "#{street_address}, #{locality} #{region} #{postal_code} #{country}" full_address.strip != ',' && full_address end |
#geocode! ⇒ Object
107 108 109 110 |
# File 'app/models/calagator/venue.rb', line 107 def geocode! Geocoder.geocode(self) true # Try to geocode, but don't complain if we can't. end |
#geocode_address ⇒ Object
Get an address we can use for geocoding
94 95 96 |
# File 'app/models/calagator/venue.rb', line 94 def geocode_address full_address || address end |
#location ⇒ Object
Return this venue's latitude/longitude location, or nil if it doesn't have one.
100 101 102 103 |
# File 'app/models/calagator/venue.rb', line 100 def location location = [latitude, longitude] location.all?(&:present?) && location end |
#update_events_count! ⇒ Object
112 113 114 |
# File 'app/models/calagator/venue.rb', line 112 def update_events_count! update_attribute(:events_count, events.non_duplicates.count) end |
#url=(value) ⇒ Object
83 84 85 |
# File 'app/models/calagator/venue.rb', line 83 def url=(value) super UrlPrefixer.prefix(value) end |