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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
# 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