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
-
#by_name ⇒ Object
Find by names.
-
#search ⇒ Object
Search for feature, searches might include country (separated by ‘,’).
-
#set_asciiname_first_letters ⇒ Object
Set first letters of name into index column.
Instance Method Details
#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 => geonames_country.iso) unless geonames_country.nil? end ret } |
#set_asciiname_first_letters ⇒ Object
Set first letters of name into index column
45 46 47 |
# File 'lib/generators/geonames_dump/templates/app/models/geonames_feature.rb', line 45 def set_asciiname_first_letters self.asciiname_first_letters = self.asciiname[0...3].downcase unless self.asciiname.nil? end |