class WorldDb::Model::Name
Private Class Methods
find_cities( name, country_id )
click to toggle source
# File lib/worlddb/models/name.rb, line 45 def self.find_cities( name, country_id ) # note: requires country_id (for search scope) -- add version w/ state_id scope - why?? why not?? Name.joins( :place => :city ).where( :name => name, :place_kind => 'CITY', :'cities.country_id' => country_id ) end
find_counties( name, state_id )
click to toggle source
# File lib/worlddb/models/name.rb, line 65 def self.find_counties( name, state_id ) # note requires state_id (for search scope) Name.joins( :place => :county ).where( :name => name, :place_kind => 'COUN', :'counties.state_id' => state_id ) end
find_munis( name, state_id )
click to toggle source
# File lib/worlddb/models/name.rb, line 74 def self.find_munis( name, state_id ) # note requires state_id (for search scope) Name.joins( :place => :muni ).where( :name => name, :place_kind => 'MUNI', :'munis.state_id' => state_id ) end
find_parts( name, state_id )
click to toggle source
– search scoped by state
# File lib/worlddb/models/name.rb, line 56 def self.find_parts( name, state_id ) # note requires state_id (for search scope) Name.joins( :place => :part ).where( :name => name, :place_kind => 'PART', :'parts.state_id' => state_id ) end
find_states( name, country_id )
click to toggle source
finders
– search scoped by country
# File lib/worlddb/models/name.rb, line 36 def self.find_states( name, country_id ) # note: requires country_id (for search scope) Name.joins( :place => :state ).where( :name => name, :place_kind => 'STAT', :'states.country_id' => country_id ) end
parse( *args )
click to toggle source
create
# File lib/worlddb/models/name.rb, line 87 def self.parse( *args ) ## remove (extract) attribs hash (if last arg is a hash n present) more_attribs = args.last.is_a?(Hash) ? args.pop : {} ## extract_options! chunks = args names = NameParser.new.parse( chunks ) recs = [] names.each do |name| attribs = more_attribs.merge( name: name ) ## overwrite (default) attribs (lang, etc.) plus add name puts "[Name.parse] adding Name record:" puts " #{attribs.inspect}" rec = Name.create!( attribs ) recs << rec end recs # note: returns an array of name records end
Private Instance Methods
place_object()
click to toggle source
# File lib/worlddb/models/name.rb, line 12 def place_object # returns "typed" place object e.g. state, part, county, muni, city, etc. case place_kind when 'STAT' ## state place.state when 'PART' ## part place.part when 'COUN' ## county place.county when 'MUNI' ## muni place.muni when 'CITY' ## city place.city else puts "*** error [Name#place_object] - unknown place_kind #{place_kind}" fail "[Name#place_object] - unknown place_kind #{place_kind}" end # end case end