municipitaly2 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dca402b216021d704b0236e8f9da370c16a021a6ee5222f3a5b5214dbc537ef1
4
- data.tar.gz: 24277826ee362bcf0415676db661a7fc191b26626a7072d94c2714b2651cb742
3
+ metadata.gz: dae9a1710c1cb97746ceb2b7fc35b0e22a66d083af3ee07652c690ee66dc2ac8
4
+ data.tar.gz: bef0a6021a30bd639a61835d37471877ac81f62a96d1ab6c9bc81ef1d8d25f39
5
5
  SHA512:
6
- metadata.gz: 6368a804a89aca144204370b882e31f97966f9dd847bdcb7b726b378fb47e0845dd9f361ecd85ad3376827fd13e28b00f5e01d1fa459b8ef22b8af8e505321b7
7
- data.tar.gz: 4ea4e8b653bb6aafac143d97540607c2b009f777506539de4a18ff702a6216d380451992c4f25e067a159d596276d0b853e192f736b7f78bd084f1716aa94d8c
6
+ metadata.gz: 9c0e4ee7010ad350bdd720ac2a1980971aa59d93492b42ee27a9ffd7525ab95b459b4298a4e3f7bc145728ae40087d8cf5a88bfd838e75e832cf13f896fe6533
7
+ data.tar.gz: 7b6e0f229fe17fe4b682e466009c1d9bb56a88ebbe661f49abc2e156db2b02b21357a2e5a687da139bb4d2a24beeade558c819b6c6694e3a85a8731ac34b8c6d
data/.rubocop.yml CHANGED
@@ -26,4 +26,9 @@ Style/ClassVars:
26
26
  Style/CommentedKeyword:
27
27
  Exclude:
28
28
  - 'lib/municipitaly2/search.rb'
29
-
29
+
30
+ Metrics/MethodLength:
31
+ Enabled: false
32
+
33
+ Metrics/AbcSize:
34
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.0.1] - 2024-12-09
9
+
10
+ - Updated database
11
+ - Added `area`, `supcode` and `kind` to provinces
12
+
8
13
  ## [2.0.0] - 2024-07-25
9
14
 
10
15
  ### Changed
data/README.md CHANGED
@@ -4,6 +4,12 @@
4
4
 
5
5
  This gem provide various data about 🇮🇹 Italian subdivisions and municipalities. As well the entire updated list of provinces, regions and municipalities names, it provide useful codes (📯 postal code(s), 🌐 [ISTAT](https://www.istat.it/en/) codes, cadastrial code, population, ...).
6
6
 
7
+ ## ℹ️️ Informations
8
+
9
+ This gem is a continuation of [Municipitaly by natydev](https://github.com/natydev/municipitaly).
10
+ Database is updated up to May 2024 and there are improvements to search.
11
+ Thanks to natydev for the brilliant project.
12
+
7
13
  ## 💾 Installation
8
14
 
9
15
  Add this line to your application's Gemfile:
@@ -229,3 +235,22 @@ The gem is available as open source under the terms of the [MIT License](https:/
229
235
 
230
236
  - [Database dei comuni italiani by Garda Informatica](https://www.gardainformatica.it/database-comuni-italiani) (MIT Licence)
231
237
  - [Dati censimento 2021 - Ministero dell'Interno](https://dait.interno.gov.it/territorio-e-autonomie-locali/sut/elenco_cens_var_comuni_italiani.php) (Public)
238
+
239
+ # Useful info
240
+
241
+ ## Build gem
242
+
243
+ `gem build municipitaly2.gemspec`
244
+
245
+ ## Check specs
246
+
247
+ `bundle exec rspec`
248
+
249
+ ## Update database
250
+
251
+ Check the `tools` folder.
252
+ The tool is rought but it gets the job done. Hopefully I will improve it in the future.
253
+
254
+ ### Generate vendor/data/municipalities.csv
255
+ Update links in `tools/generate.rb` (and/or data in `tools/data/istat*`) and execute
256
+ `./tools/generate.rb`
@@ -11,7 +11,10 @@ module Municipitaly2
11
11
  def zones
12
12
  if @@zones.empty?
13
13
  CSV.foreach(find_csv('zones.csv'), headers: true) do |row|
14
- @@zones << Zone.new(name: row[0], code: row[1])
14
+ @@zones << Zone.new(
15
+ name: row[0],
16
+ code: row[1]
17
+ )
15
18
  end
16
19
  end
17
20
  @@zones
@@ -20,8 +23,12 @@ module Municipitaly2
20
23
  def regions
21
24
  if @@regions.empty?
22
25
  CSV.foreach(find_csv('regions.csv'), headers: true) do |row|
23
- @@regions << Region.new(zone_code: row[0], name: row[1],
24
- istat: row[2], partial_iso3166: row[3])
26
+ @@regions << Region.new(
27
+ zone_code: row[0],
28
+ name: row[1],
29
+ istat: row[2],
30
+ partial_iso3166: row[3]
31
+ )
25
32
  end
26
33
  end
27
34
  @@regions
@@ -29,9 +36,17 @@ module Municipitaly2
29
36
 
30
37
  def provinces
31
38
  if @@provinces.empty?
39
+ # #TAG_PROVINCE_DATA
32
40
  CSV.foreach(find_csv('provinces.csv'), headers: true) do |row|
33
- @@provinces << Province.new(region_istat: row[0], name: row[1],
34
- istat: row[2], acronym: row[3])
41
+ @@provinces << Province.new(
42
+ region_istat: row[0],
43
+ acronym: row[1],
44
+ name: row[2],
45
+ supcode: row[3],
46
+ istat: row[4],
47
+ kind: row[5],
48
+ area: row[6]
49
+ )
35
50
  end
36
51
  end
37
52
  @@provinces
@@ -39,13 +54,21 @@ module Municipitaly2
39
54
 
40
55
  def municipalities
41
56
  if @@municipalities.empty?
57
+ # #TAG_COMUNI_DATA
42
58
  CSV.foreach(find_csv('municipalities.csv'), headers: true) do |row|
43
59
  @@municipalities <<
44
- Municipality.new(province_istat: row[0],
45
- name: row[1], name_alt: row[2], partial_istat: row[3],
46
- cadastrial_code: row[4], postal_codes: row[5],
47
- population: row[6], area: row[7],
48
- latitude: row[8], longitude: row[9])
60
+ Municipality.new(
61
+ province_istat: row[0],
62
+ name: row[1],
63
+ name_alt: row[2],
64
+ partial_istat: row[3],
65
+ cadastrial_code: row[4],
66
+ postal_codes: row[5],
67
+ population: row[6],
68
+ area: row[7],
69
+ latitude: row[8],
70
+ longitude: row[9]
71
+ )
49
72
  end
50
73
  end
51
74
  @@municipalities
@@ -46,10 +46,10 @@ module Municipitaly2
46
46
  # total <b>area</b> of municipality (Float)
47
47
  attr_reader :area
48
48
 
49
- # total <b>population</b> of municipality (Float)
49
+ # coordinate <b>latitude</b> of municipality (Float)
50
50
  attr_reader :latitude
51
51
 
52
- # total <b>population</b> of municipality (Float)
52
+ # coordinate <b>longitude</b> of municipality (Float)
53
53
  attr_reader :longitude
54
54
 
55
55
  def_delegator :province, :acronym, :province_acronym
@@ -8,14 +8,17 @@ module Municipitaly2
8
8
  include RegionDelegator
9
9
  include ZoneDelegator
10
10
 
11
- def initialize(region_istat:, name:, istat:, acronym:)
11
+ def initialize(region_istat:, name:, istat:, acronym:, area:, kind:, supcode:)
12
12
  @region_istat = region_istat
13
13
  @name = name
14
14
  @istat = istat
15
+ @supcode = supcode # Codice Unità Territoriale Sovracomunale
15
16
  @acronym = acronym
17
+ @area = area.to_f
18
+ @kind = kind
16
19
  end
17
20
 
18
- attr_reader :region_istat, :name, :istat, :acronym
21
+ attr_reader :region_istat, :name, :istat, :supcode, :acronym, :area, :kind
19
22
 
20
23
  # returns an array of all +Municipitaly2::Province+ objects.
21
24
  def self.all
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Municipitaly2
4
4
  # :nodoc:
5
- VERSION = '2.0.0'
5
+ VERSION = '2.0.1'
6
6
  end
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.homepage = 'https://github.com/yupswing/municipitaly2'
17
17
  spec.license = 'MIT'
18
18
  spec.metadata = {
19
- # 'documentation_uri' => 'https://www.rubydoc.info/github/natydev/municipitaly/master',
19
+ 'documentation_uri' => 'https://www.rubydoc.info/gems/municipitaly2/2.0.0/Municipitaly2',
20
20
  'rubygems_mfa_required' => 'true'
21
21
  }
22
22
 
@@ -6676,7 +6676,7 @@ province_istat,name,name_alt,partial_istat,cadastrial_code,postal_codes,populati
6676
6676
  083,Militello Rosmarino,,050,F210,98070,1174,29.5355,38.0462596,14.6760318
6677
6677
  083,Mirto,,051,F242,98070,906,9.2691,38.0850265,14.7528459
6678
6678
  083,Mistretta,,052,F251,98073,4388,127.4678,37.9303865,14.3623477
6679
- 083,Moio Alcantara,,053,F277,98030,685,8.5996,37.8987358,15.0505212
6679
+ 083,Mojo Alcantara,,053,F277,98030,685,8.5996,37.8987358,15.0505212
6680
6680
  083,Monforte San Giorgio,,054,F359,98041,2547,32.2609,38.1567704,15.3835088
6681
6681
  083,Mongiuffi Melia,,055,F368,98030,537,24.3624,37.9040985,15.2749224
6682
6682
  083,Montagnareale,,056,F395,98060,1419,16.3768,38.1323639,14.9477007
@@ -1,108 +1,108 @@
1
- region_istat,name,istat,acronym
2
- 01,Torino,001,TO
3
- 01,Vercelli,002,VC
4
- 01,Novara,003,NO
5
- 01,Cuneo,004,CN
6
- 01,Asti,005,AT
7
- 01,Alessandria,006,AL
8
- 02,Valle d'Aosta/Vallée d'Aoste,007,AO
9
- 07,Imperia,008,IM
10
- 07,Savona,009,SV
11
- 07,Genova,010,GE
12
- 07,La Spezia,011,SP
13
- 03,Varese,012,VA
14
- 03,Como,013,CO
15
- 03,Sondrio,014,SO
16
- 03,Milano,015,MI
17
- 03,Bergamo,016,BG
18
- 03,Brescia,017,BS
19
- 03,Pavia,018,PV
20
- 03,Cremona,019,CR
21
- 03,Mantova,020,MN
22
- 04,Bolzano/Bozen,021,BZ
23
- 04,Trento,022,TN
24
- 05,Verona,023,VR
25
- 05,Vicenza,024,VI
26
- 05,Belluno,025,BL
27
- 05,Treviso,026,TV
28
- 05,Venezia,027,VE
29
- 05,Padova,028,PD
30
- 05,Rovigo,029,RO
31
- 06,Udine,030,UD
32
- 06,Gorizia,031,GO
33
- 06,Trieste,032,TS
34
- 08,Piacenza,033,PC
35
- 08,Parma,034,PR
36
- 08,Reggio nell'Emilia,035,RE
37
- 08,Modena,036,MO
38
- 08,Bologna,037,BO
39
- 08,Ferrara,038,FE
40
- 08,Ravenna,039,RA
41
- 08,Forlì-Cesena,040,FC
42
- 11,Pesaro e Urbino,041,PU
43
- 11,Ancona,042,AN
44
- 11,Macerata,043,MC
45
- 11,Ascoli Piceno,044,AP
46
- 09,Massa-Carrara,045,MS
47
- 09,Lucca,046,LU
48
- 09,Pistoia,047,PT
49
- 09,Firenze,048,FI
50
- 09,Livorno,049,LI
51
- 09,Pisa,050,PI
52
- 09,Arezzo,051,AR
53
- 09,Siena,052,SI
54
- 09,Grosseto,053,GR
55
- 10,Perugia,054,PG
56
- 10,Terni,055,TR
57
- 12,Viterbo,056,VT
58
- 12,Rieti,057,RI
59
- 12,Roma,058,RM
60
- 12,Latina,059,LT
61
- 12,Frosinone,060,FR
62
- 15,Caserta,061,CE
63
- 15,Benevento,062,BN
64
- 15,Napoli,063,NA
65
- 15,Avellino,064,AV
66
- 15,Salerno,065,SA
67
- 13,L'Aquila,066,AQ
68
- 13,Teramo,067,TE
69
- 13,Pescara,068,PE
70
- 13,Chieti,069,CH
71
- 14,Campobasso,070,CB
72
- 16,Foggia,071,FG
73
- 16,Bari,072,BA
74
- 16,Taranto,073,TA
75
- 16,Brindisi,074,BR
76
- 16,Lecce,075,LE
77
- 17,Potenza,076,PZ
78
- 17,Matera,077,MT
79
- 18,Cosenza,078,CS
80
- 18,Catanzaro,079,CZ
81
- 18,Reggio Calabria,080,RC
82
- 19,Trapani,081,TP
83
- 19,Palermo,082,PA
84
- 19,Messina,083,ME
85
- 19,Agrigento,084,AG
86
- 19,Caltanissetta,085,CL
87
- 19,Enna,086,EN
88
- 19,Catania,087,CT
89
- 19,Ragusa,088,RG
90
- 19,Siracusa,089,SR
91
- 20,Sassari,090,SS
92
- 20,Nuoro,091,NU
93
- 20,Cagliari,092,CA
94
- 06,Pordenone,093,PN
95
- 14,Isernia,094,IS
96
- 20,Oristano,095,OR
97
- 01,Biella,096,BI
98
- 03,Lecco,097,LC
99
- 03,Lodi,098,LO
100
- 08,Rimini,099,RN
101
- 09,Prato,100,PO
102
- 18,Crotone,101,KR
103
- 18,Vibo Valentia,102,VV
104
- 01,Verbano-Cusio-Ossola,103,VB
105
- 03,Monza e della Brianza,108,MB
106
- 11,Fermo,109,FM
107
- 16,Barletta-Andria-Trani,110,BT
108
- 20,Sud Sardegna,111,SU
1
+ region_istat,acronym,name,supcode,istat,kind,area
2
+ 01,TO,Torino,201,001,Citta metropolitana,6826.9298
3
+ 01,VC,Vercelli,002,002,Provincia,2081.6048
4
+ 01,NO,Novara,003,003,Provincia,1340.2472
5
+ 01,CN,Cuneo,004,004,Provincia,6894.8232
6
+ 01,AT,Asti,005,005,Provincia,1510.1731
7
+ 01,AL,Alessandria,006,006,Provincia,3558.7881
8
+ 02,AO,Valle d'Aosta/Vallée d'Aoste,007,007,Provincia,3260.8426
9
+ 07,IM,Imperia,008,008,Provincia,1155.2624
10
+ 07,SV,Savona,009,009,Provincia,1546.5952
11
+ 07,GE,Genova,210,010,Citta metropolitana,1834.1528
12
+ 07,SP,La Spezia,011,011,Provincia,881.6061
13
+ 03,VA,Varese,012,012,Provincia,1198.2536
14
+ 03,CO,Como,013,013,Provincia,1279.0045
15
+ 03,SO,Sondrio,014,014,Provincia,3195.6853
16
+ 03,MI,Milano,215,015,Citta metropolitana,1575.5412
17
+ 03,BG,Bergamo,016,016,Provincia,2754.9396
18
+ 03,BS,Brescia,017,017,Provincia,4785.4828
19
+ 03,PV,Pavia,018,018,Provincia,2968.5305
20
+ 03,CR,Cremona,019,019,Provincia,1770.3465
21
+ 03,MN,Mantova,020,020,Provincia,2341.3559
22
+ 04,BZ,Bolzano/Bozen,021,021,Provincia autonoma,7397.8415
23
+ 04,TN,Trento,022,022,Provincia autonoma,6206.8635
24
+ 05,VR,Verona,023,023,Provincia,3096.279
25
+ 05,VI,Vicenza,024,024,Provincia,2722.4813
26
+ 05,BL,Belluno,025,025,Provincia,3609.9988
27
+ 05,TV,Treviso,026,026,Provincia,2479.7945
28
+ 05,VE,Venezia,227,027,Citta metropolitana,2478.4322
29
+ 05,PD,Padova,028,028,Provincia,2144.1658
30
+ 05,RO,Rovigo,029,029,Provincia,1824.0777
31
+ 06,UD,Udine,030,030,Unità non amministrativa,4970.2672
32
+ 06,GO,Gorizia,031,031,Unità non amministrativa,475.1008
33
+ 06,TS,Trieste,032,032,Unità non amministrativa,212.5791
34
+ 08,PC,Piacenza,033,033,Provincia,2585.765
35
+ 08,PR,Parma,034,034,Provincia,3447.4005
36
+ 08,RE,Reggio nell'Emilia,035,035,Provincia,2291.142
37
+ 08,MO,Modena,036,036,Provincia,2687.9103
38
+ 08,BO,Bologna,237,037,Citta metropolitana,3702.223
39
+ 08,FE,Ferrara,038,038,Provincia,2627.6089
40
+ 08,RA,Ravenna,039,039,Provincia,1859.3221
41
+ 08,FC,Forlì-Cesena,040,040,Provincia,2378.4049
42
+ 11,PU,Pesaro e Urbino,041,041,Provincia,2511.1961
43
+ 11,AN,Ancona,042,042,Provincia,1963.8215
44
+ 11,MC,Macerata,043,043,Provincia,2779.4529
45
+ 11,AP,Ascoli Piceno,044,044,Provincia,1228.4546
46
+ 09,MS,Massa-Carrara,045,045,Provincia,1154.6496
47
+ 09,LU,Lucca,046,046,Provincia,1774.1985
48
+ 09,PT,Pistoia,047,047,Provincia,964.2377
49
+ 09,FI,Firenze,248,048,Citta metropolitana,3513.4858
50
+ 09,LI,Livorno,049,049,Provincia,1215.0489
51
+ 09,PI,Pisa,050,050,Provincia,2445.0736
52
+ 09,AR,Arezzo,051,051,Provincia,3232.997
53
+ 09,SI,Siena,052,052,Provincia,3820.8183
54
+ 09,GR,Grosseto,053,053,Provincia,4503.5097
55
+ 10,PG,Perugia,054,054,Provincia,6336.9761
56
+ 10,TR,Terni,055,055,Provincia,2127.2265
57
+ 12,VT,Viterbo,056,056,Provincia,3615.9772
58
+ 12,RI,Rieti,057,057,Provincia,2750.2466
59
+ 12,RM,Roma,258,058,Citta metropolitana,5367.5181
60
+ 12,LT,Latina,059,059,Provincia,2258.634
61
+ 12,FR,Frosinone,060,060,Provincia,3246.9628
62
+ 15,CE,Caserta,061,061,Provincia,2652.5819
63
+ 15,BN,Benevento,062,062,Provincia,2080.3711
64
+ 15,NA,Napoli,263,063,Citta metropolitana,1180.1624
65
+ 15,AV,Avellino,064,064,Provincia,2805.9969
66
+ 15,SA,Salerno,065,065,Provincia,4956.5806
67
+ 13,AQ,L'Aquila,066,066,Provincia,5047.3357
68
+ 13,TE,Teramo,067,067,Provincia,1954.337
69
+ 13,PE,Pescara,068,068,Provincia,1230.4317
70
+ 13,CH,Chieti,069,069,Provincia,2599.6114
71
+ 14,CB,Campobasso,070,070,Provincia,2925.4074
72
+ 16,FG,Foggia,071,071,Provincia,7007.8605
73
+ 16,BA,Bari,272,072,Citta metropolitana,3862.9963
74
+ 16,TA,Taranto,073,073,Provincia,2467.7149
75
+ 16,BR,Brindisi,074,074,Provincia,1861.6695
76
+ 16,LE,Lecce,075,075,Provincia,2799.0645
77
+ 17,PZ,Potenza,076,076,Provincia,6594.2944
78
+ 17,MT,Matera,077,077,Provincia,3478.8824
79
+ 18,CS,Cosenza,078,078,Provincia,6709.4563
80
+ 18,CZ,Catanzaro,079,079,Provincia,2415.6206
81
+ 18,RC,Reggio Calabria,280,080,Citta metropolitana,3208.4109
82
+ 19,TP,Trapani,081,081,Libero consorzio di comuni,2469.747
83
+ 19,PA,Palermo,282,082,Citta metropolitana,5009.5156
84
+ 19,ME,Messina,283,083,Citta metropolitana,3266.8928
85
+ 19,AG,Agrigento,084,084,Libero consorzio di comuni,3053.8057
86
+ 19,CL,Caltanissetta,085,085,Libero consorzio di comuni,2138.3295
87
+ 19,EN,Enna,086,086,Libero consorzio di comuni,2574.6661
88
+ 19,CT,Catania,287,087,Citta metropolitana,3573.5993
89
+ 19,RG,Ragusa,088,088,Libero consorzio di comuni,1623.8913
90
+ 19,SR,Siracusa,089,089,Libero consorzio di comuni,2124.8328
91
+ 20,SS,Sassari,090,090,Provincia,7693.841
92
+ 20,NU,Nuoro,091,091,Provincia,5639.9476
93
+ 20,CA,Cagliari,292,092,Citta metropolitana,1250.3269
94
+ 06,PN,Pordenone,093,093,Unità non amministrativa,2275.3488
95
+ 14,IS,Isernia,094,094,Provincia,1535.1556
96
+ 20,OR,Oristano,095,095,Provincia,2991.4337
97
+ 01,BI,Biella,096,096,Provincia,913.2699
98
+ 03,LC,Lecco,097,097,Provincia,805.5242
99
+ 03,LO,Lodi,098,098,Provincia,783.026
100
+ 08,RN,Rimini,099,099,Provincia,922.0369
101
+ 09,PO,Prato,100,100,Provincia,365.7562
102
+ 18,KR,Crotone,101,101,Provincia,1735.592
103
+ 18,VV,Vibo Valentia,102,102,Provincia,1150.2187
104
+ 01,VB,Verbano-Cusio-Ossola,103,103,Provincia,2260.8919
105
+ 03,MB,Monza e della Brianza,108,108,Provincia,405.4018
106
+ 11,FM,Fermo,109,109,Provincia,863.0943
107
+ 16,BT,Barletta-Andria-Trani,110,110,Provincia,1543.3412
108
+ 20,SU,Sud Sardegna,111,111,Provincia,6532.9875
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: municipitaly2
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - yupswing
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2024-07-25 00:00:00.000000000 Z
12
+ date: 2024-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -123,6 +123,7 @@ homepage: https://github.com/yupswing/municipitaly2
123
123
  licenses:
124
124
  - MIT
125
125
  metadata:
126
+ documentation_uri: https://www.rubydoc.info/gems/municipitaly2/2.0.0/Municipitaly2
126
127
  rubygems_mfa_required: 'true'
127
128
  post_install_message:
128
129
  rdoc_options: []
@@ -139,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
140
  - !ruby/object:Gem::Version
140
141
  version: '0'
141
142
  requirements: []
142
- rubygems_version: 3.5.11
143
+ rubygems_version: 3.5.19
143
144
  signing_key:
144
145
  specification_version: 4
145
146
  summary: Municipitaly2