Class: GeonamesFeature
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- GeonamesFeature
- Defined in:
- lib/generators/geonames_dump/templates/app/models/geonames_feature.rb
Direct Known Subclasses
Instance Method Summary collapse
- #alternate_names ⇒ Object
-
#by_name ⇒ Object
Find by names.
-
#search ⇒ Object
Search for feature, searches might include country (separated by ‘,’).
Instance Method Details
#alternate_names ⇒ Object
42 43 44 |
# File 'lib/generators/geonames_dump/templates/app/models/geonames_feature.rb', line 42 def alternate_names GeonamesAlternateName.where(geonameid: self.geonameid) end |
#by_name ⇒ Object
Find by names
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/generators/geonames_dump/templates/app/models/geonames_feature.rb', line 31 scope :by_name, lambda { |*queries| ret = self.scoped count = queries.count queries.collect.with_index do |q, idx| query = idx == 0 ? "#{q}" : "%#{q}%" ret = ret.where("asciiname_first_letters = ?", q[0...3].downcase) ret = ret.where("name LIKE ? or asciiname LIKE ?", query, query) end ret } |
#search ⇒ Object
Search for feature, searches might include country (separated by ‘,’)
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/generators/geonames_dump/templates/app/models/geonames_feature.rb', line 8 scope :search, lambda { |query| virgule = query.include? ',' splited = virgule ? query.split(',') : [query] country = virgule ? splited.last.strip : nil queries = virgule ? splited[0...-1] : splited queries = queries.join(' ').split(' ') ret = by_name(*queries) unless country.nil? geonames_country = GeonamesCountry.search(country).first ret = ret.where(:country_code => geonames_country.iso) unless geonames_country.nil? end ret } |