Module: GeonamesDump

Defined in:
lib/geonames_dump/railtie.rb,
lib/geonames_dump.rb,
lib/geonames_dump/blocks.rb,
lib/geonames_dump/version.rb,
lib/generators/geonames_dump/install_generator.rb

Overview

require ‘rails’

Defined Under Namespace

Modules: Generators Classes: Blocks, Railtie

Constant Summary collapse

VERSION =
'0.0.7'

Class Method Summary collapse

Class Method Details

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



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/geonames_dump.rb', line 6

def self.search(query, options = {})
  ret = nil

  type = options[:type] || :auto
  begin
    case type
    when :auto # return an array of features
      # city name
      ret = GeonamesCity.search(query)
      # alternate name
      ret = GeonamesAlternateName.search(query).map { |alternate| alternate.feature }.compact  if ret.blank?
      # admin1
      ret = GeonamesAdmin1.search(query) if ret.blank?
      # admin2
      ret = GeonamesAdmin2.search(query) if ret.blank?
      # feature
      ret = GeonamesFeature.search(query) if ret.blank?
    else # country, or specific type
      model = "geonames_#{type.to_s}".camelcase.constantize
      ret = model.search(query)
    end
  rescue NameError => e
    raise $!, "Unknown type for GeonamesDump, #{$!}", $!.backtrace
  end


  ret
end