Class: Municipitaly2::Municipality

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
DataCaller, RegionDelegator, ZoneDelegator
Defined in:
lib/municipitaly2/municipality.rb

Overview

Define data structure for a Municipality

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ZoneDelegator

#zone

Methods included from RegionDelegator

#region

Methods included from DataCaller

included

Constructor Details

#initialize(province_istat:, name:, name_alt:, partial_istat:, cadastrial_code:, postal_codes:, population:, area:, latitude:, longitude:) ⇒ Municipality

Returns a new instance of Municipality.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/municipitaly2/municipality.rb', line 11

def initialize(province_istat:, name:, name_alt:, partial_istat:,
               cadastrial_code:, postal_codes:, population:,
               area:, latitude:, longitude:) # :nodoc:
  @province_istat = province_istat
  @name = name
  @name_alt = name_alt
  @partial_istat = partial_istat
  @cadastrial_code = cadastrial_code
  @postal_codes = postal_codes.split
  @population = population.to_i
  @area = area.to_f
  @latitude = latitude.to_f
  @longitude = longitude.to_f
end

Instance Attribute Details

#area ⇒ Object (readonly)

total area of municipality (Float)



47
48
49
# File 'lib/municipitaly2/municipality.rb', line 47

def area
  @area
end

#cadastrial_code ⇒ Object (readonly)

cadastrial code of municipality (String)



38
39
40
# File 'lib/municipitaly2/municipality.rb', line 38

def cadastrial_code
  @cadastrial_code
end

#latitude ⇒ Object (readonly)

total population of municipality (Float)



50
51
52
# File 'lib/municipitaly2/municipality.rb', line 50

def latitude
  @latitude
end

#longitude ⇒ Object (readonly)

total population of municipality (Float)



53
54
55
# File 'lib/municipitaly2/municipality.rb', line 53

def longitude
  @longitude
end

#name ⇒ Object (readonly)

name of municipality (String)



30
31
32
# File 'lib/municipitaly2/municipality.rb', line 30

def name
  @name
end

#name_alt ⇒ Object (readonly)

alternative name of municipality (String)



33
34
35
# File 'lib/municipitaly2/municipality.rb', line 33

def name_alt
  @name_alt
end

#partial_istat ⇒ Object (readonly)

:nodoc:



35
36
37
# File 'lib/municipitaly2/municipality.rb', line 35

def partial_istat
  @partial_istat
end

#population ⇒ Object (readonly)

total population of municipality (Integer)



44
45
46
# File 'lib/municipitaly2/municipality.rb', line 44

def population
  @population
end

#postal_codes ⇒ Object (readonly)

an Array of one or more postal code (as String)



41
42
43
# File 'lib/municipitaly2/municipality.rb', line 41

def postal_codes
  @postal_codes
end

#province_istat ⇒ Object (readonly)

istat code relative to parent province (String)



27
28
29
# File 'lib/municipitaly2/municipality.rb', line 27

def province_istat
  @province_istat
end

Class Method Details

.all ⇒ Object

returns an array of all Municipitaly2::Municipality objects.



60
61
62
# File 'lib/municipitaly2/municipality.rb', line 60

def self.all
  data.municipalities
end

Instance Method Details

#istat ⇒ Object

returns istat code for current municipality.



65
66
67
# File 'lib/municipitaly2/municipality.rb', line 65

def istat
  province_istat + partial_istat
end

#name_full ⇒ Object



69
70
71
# File 'lib/municipitaly2/municipality.rb', line 69

def name_full
  name_alt.nil? ? name : "#{name}/#{name_alt}"
end

#province ⇒ Object

returns Municipitaly2::Province object for current municipality.



74
75
76
# File 'lib/municipitaly2/municipality.rb', line 74

def province
  @province ||= Search.province_from_istat(province_istat)
end