class Municipitaly::Search

Municipitaly::Search class implement different search methods.

You must use shortcut class methods that invoke private instance methods having same method name, for example:

Search.municipalities_from_postal_code('36040')

invoke to:

Search.new('36040').municipalities_from_postal_code

Protected Instance Methods

municipalities_from_name() click to toggle source

returns an array of Municipitaly::Municipality objects from a municipality name term. Term can be a partial string and is case insensitive. The optional parameter greedy [boolean] permit to serch exact term name (if false) or partial word (true by default).

example usage:

municipalities = Search.municipalities_from_name('monte')
municipalities = Search.municipalities_from_name('monte', greedy: false)
# File lib/municipitaly/search.rb, line 141
def municipalities_from_name # :doc:
  greedy = opts.fetch(:greedy, true)
  regexp = if greedy
             Regexp.new(term, true)
           else
             Regexp.new("^#{term}$", true)
           end
  data.municipalities.select do |m|
    m.name =~ regexp
  end
end
municipalities_from_postal_code() click to toggle source

returns an array of Municipitaly::Municipality objects from a postal code term.

example usage:

municipalities = Search.municipalities_from_postal_code('00163')
# File lib/municipitaly/search.rb, line 182
def municipalities_from_postal_code # :doc:
  data.municipalities.select do |m|
    m.postal_codes.include? term
  end
end
municipalities_from_province_istat() click to toggle source

returns an array of Municipitaly::Municipality objects from a province istat term.

example usage:

municipalities = Search.municipalities_from_province_istat('090')
# File lib/municipitaly/search.rb, line 193
def municipalities_from_province_istat # :doc:
  data.municipalities.select do |m|
    m.province_istat == term
  end
end
municipalities_from_region_istat() click to toggle source

returns an array of Municipitaly::Municipality objects from a region istat term.

example usage:

municipalities = Search.municipalities_from_region_istat('13')
# File lib/municipitaly/search.rb, line 204
def municipalities_from_region_istat # :doc:
  province_istats = provinces_from_region_istat.map(&:istat)
  municipalities_from_province_istats(province_istats)
end
municipalities_from_zone_code() click to toggle source

returns an array of Municipitaly::Municipality objects from a zone code term.

example usage:

municipalities = Search.municipalities_from_zone_code('3')
# File lib/municipitaly/search.rb, line 214
def municipalities_from_zone_code # :doc:
  province_istats = provinces_from_zone_code.map(&:istat)
  municipalities_from_province_istats(province_istats)
end
municipality_from_cadastrial() click to toggle source

returns a Municipitaly::Municipality object from a cadastrial code term

example usage:

municipality = Search.municipality_from_cadastrial('D791')
# File lib/municipitaly/search.rb, line 158
def municipality_from_cadastrial # :doc:
  data.municipalities.find do |m|
    m.cadastrial_code == term.upcase
  end
end
municipality_from_istat() click to toggle source

returns a Municipitaly::Municipality object from a municipality istat term

example usage:

municipality = Search.municipality_from_istat('066032')
# File lib/municipitaly/search.rb, line 169
def municipality_from_istat # :doc:
  province_istat = term.slice!(0...3)
  partial_istat = term
  data.municipalities.find do |m|
    m.province_istat == province_istat && m.partial_istat == partial_istat
  end
end
province_from_acronym() click to toggle source

returns a Municipitaly::Province object from a province acronym term

example usage:

province = Search.province_from_acronym('MI')
# File lib/municipitaly/search.rb, line 103
def province_from_acronym # :doc:
  data.provinces.find do |p|
    p.acronym == term
  end
end
province_from_istat() click to toggle source

returns a Municipitaly::Province object from a province istat term

example usage:

province = Search.province_from_istat('061')
# File lib/municipitaly/search.rb, line 92
def province_from_istat # :doc:
  data.provinces.find do |p|
    p.istat == term
  end
end
province_from_name() click to toggle source

returns a Municipitaly::Province object from a province name term

example usage:

province = Search.province_from_name('Paler')
# File lib/municipitaly/search.rb, line 79
def province_from_name # :doc:
  data.provinces.find do |p|
    name_set = p.name.downcase.gsub(/[^a-z]/, '')
    term_set = term.downcase.gsub(/[^a-z]/, '')
    name_set =~ Regexp.new(term_set) && term_set.size > 3
  end
end
provinces_from_region_istat() click to toggle source

returns an array of Municipitaly::Province objects from a region istat term

example usage:

provinces = Search.provinces_from_region_istat('05')
# File lib/municipitaly/search.rb, line 114
def provinces_from_region_istat # :doc:
  data.provinces.select do |p|
    p.region_istat == term
  end
end
provinces_from_zone_code() click to toggle source

returns an array of Municipitaly::Province objects from a zone code term

example usage:

provinces = Search.provinces_from_zone_code('5')
# File lib/municipitaly/search.rb, line 125
def provinces_from_zone_code # :doc:
  region_istats = regions_from_zone_code.map(&:istat)
  data.provinces.select do |p|
    region_istats.include? p.region_istat
  end
end
region_from_istat() click to toggle source

returns a Municipitaly::Region object from a region istat term

example usage:

region = Search.region_from_istat('15')
# File lib/municipitaly/search.rb, line 57
def region_from_istat # :doc:
  data.regions.find do |r|
    r.istat == term
  end
end
regions_from_zone_code() click to toggle source

returns an array of Municipitaly::Region objects from a zone code term

example usage:

regions = Search.regions_from_zone_code('3')
# File lib/municipitaly/search.rb, line 68
def regions_from_zone_code # :doc:
  data.regions.select do |r|
    r.zone_code == term
  end
end
zone_from_code() click to toggle source

returns a Municipitaly::Zone object from a zone code term

example usage:

zone = Search.zone_from_code('4')
# File lib/municipitaly/search.rb, line 47
def zone_from_code # :doc:
  data.zones.find do |z|
    z.code == term
  end
end

Private Instance Methods

municipalities_from_province_istats(istats) click to toggle source
# File lib/municipitaly/search.rb, line 221
def municipalities_from_province_istats(istats)
  data.municipalities.select do |m|
    istats.include? m.province_istat
  end
end