Class: Calagator::Venue

Inherits:
ApplicationRecord show all
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

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DuplicateChecking

#duplicate?, #find_exact_duplicates, included, #originator, #primary?

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.



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_addressObject

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_addressObject

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

#locationObject

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