Add column FederalSubject#centre
This commit is contained in:
parent
9a6904829f
commit
b6f6899ecc
|
@ -35,6 +35,10 @@ class FederalSubject < ApplicationRecord
|
||||||
uniqueness: true,
|
uniqueness: true,
|
||||||
length: { in: 1..255 }
|
length: { in: 1..255 }
|
||||||
|
|
||||||
|
validates :centre,
|
||||||
|
presence: true,
|
||||||
|
length: { in: 1..255 }
|
||||||
|
|
||||||
validates :number,
|
validates :number,
|
||||||
presence: true,
|
presence: true,
|
||||||
uniqueness: true,
|
uniqueness: true,
|
||||||
|
@ -44,6 +48,7 @@ class FederalSubject < ApplicationRecord
|
||||||
|
|
||||||
validate :english_name_looks_realistic
|
validate :english_name_looks_realistic
|
||||||
validate :native_name_looks_realistic
|
validate :native_name_looks_realistic
|
||||||
|
validate :centre_looks_realistic
|
||||||
|
|
||||||
###########
|
###########
|
||||||
# Methods #
|
# Methods #
|
||||||
|
@ -72,4 +77,11 @@ private
|
||||||
errors.add :native_name, :leading_spaces if native_name.start_with? ' '
|
errors.add :native_name, :leading_spaces if native_name.start_with? ' '
|
||||||
errors.add :native_name, :trailing_spaces if native_name.end_with? ' '
|
errors.add :native_name, :trailing_spaces if native_name.end_with? ' '
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def centre_looks_realistic
|
||||||
|
return if centre.blank?
|
||||||
|
|
||||||
|
errors.add :centre, :leading_spaces if centre.start_with? ' '
|
||||||
|
errors.add :centre, :trailing_spaces if centre.end_with? ' '
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,6 +8,9 @@
|
||||||
<th scope="col">
|
<th scope="col">
|
||||||
<%= FederalSubject.human_attribute_name :display_name %>
|
<%= FederalSubject.human_attribute_name :display_name %>
|
||||||
</th>
|
</th>
|
||||||
|
<th scope="col">
|
||||||
|
<%= FederalSubject.human_attribute_name :centre %>
|
||||||
|
</th>
|
||||||
<th scope="col">
|
<th scope="col">
|
||||||
<%= FederalSubject.human_attribute_name :timezone %>
|
<%= FederalSubject.human_attribute_name :timezone %>
|
||||||
</th>
|
</th>
|
||||||
|
@ -20,6 +23,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td><%= federal_subject.number %></td>
|
<td><%= federal_subject.number %></td>
|
||||||
<td><%= federal_subject.display_name %></td>
|
<td><%= federal_subject.display_name %></td>
|
||||||
|
<td><%= federal_subject.centre %></td>
|
||||||
<td><%= federal_subject.timezone %></td>
|
<td><%= federal_subject.timezone %></td>
|
||||||
<td>
|
<td>
|
||||||
<% if policy(federal_subject).show? %>
|
<% if policy(federal_subject).show? %>
|
||||||
|
|
|
@ -8,6 +8,9 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<dl class="mt-3">
|
<dl class="mt-3">
|
||||||
|
<dt><%= FederalSubject.human_attribute_name :centre %></dt>
|
||||||
|
<dd><%= @federal_subject.centre %></dd>
|
||||||
|
|
||||||
<dt><%= FederalSubject.human_attribute_name :number %></dt>
|
<dt><%= FederalSubject.human_attribute_name :number %></dt>
|
||||||
<dd><%= @federal_subject.number %></dd>
|
<dd><%= @federal_subject.number %></dd>
|
||||||
|
|
||||||
|
|
|
@ -1,85 +1,85 @@
|
||||||
22 | Altai Krai | Алтайский край | 22 | 06:00:00
|
22 | Altai Krai | Алтайский край | 22 | 06:00:00 | Барнаул
|
||||||
31 | Amur Oblast | Амурская область | 28 | 08:00:00
|
31 | Amur Oblast | Амурская область | 28 | 08:00:00 | Благовещенск
|
||||||
32 | Arkhangelsk Oblast | Архангельская область | 29 | 02:00:00
|
32 | Arkhangelsk Oblast | Архангельская область | 29 | 02:00:00 | Архангельск
|
||||||
33 | Astrakhan Oblast | Астраханская область | 30 | 03:00:00
|
33 | Astrakhan Oblast | Астраханская область | 30 | 03:00:00 | Астрахань
|
||||||
34 | Belgorod Oblast | Белгородская область | 31 | 02:00:00
|
34 | Belgorod Oblast | Белгородская область | 31 | 02:00:00 | Белгород
|
||||||
35 | Bryansk Oblast | Брянская область | 32 | 02:00:00
|
35 | Bryansk Oblast | Брянская область | 32 | 02:00:00 | Брянск
|
||||||
36 | Vladimir Oblast | Владимирская область | 33 | 02:00:00
|
36 | Vladimir Oblast | Владимирская область | 33 | 02:00:00 | Владимир
|
||||||
37 | Volgograd Oblast | Волгоградская область | 34 | 02:00:00
|
37 | Volgograd Oblast | Волгоградская область | 34 | 02:00:00 | Волгоград
|
||||||
38 | Vologda Oblast | Вологодская область | 35 | 02:00:00
|
38 | Vologda Oblast | Вологодская область | 35 | 02:00:00 | Вологда
|
||||||
39 | Voronezh Oblast | Воронежская область | 36 | 02:00:00
|
39 | Voronezh Oblast | Воронежская область | 36 | 02:00:00 | Воронеж
|
||||||
80 | Jewish Autonomous Oblast | Еврейская автономная область | 79 | 09:00:00
|
80 | Jewish Autonomous Oblast | Еврейская автономная область | 79 | 09:00:00 | Биробиджан
|
||||||
23 | Zabaykalsky Krai | Забайкальский край | 75 | 08:00:00
|
23 | Zabaykalsky Krai | Забайкальский край | 75 | 08:00:00 | Чита
|
||||||
40 | Ivanovo Oblast | Ивановская область | 37 | 02:00:00
|
40 | Ivanovo Oblast | Ивановская область | 37 | 02:00:00 | Иваново
|
||||||
41 | Irkutsk Oblast | Иркутская область | 38 | 07:00:00
|
41 | Irkutsk Oblast | Иркутская область | 38 | 07:00:00 | Иркутск
|
||||||
6 | Kabardino-Balkar Republic | Кабардино-Балкарская Республика | 07 | 02:00:00
|
6 | Kabardino-Balkar Republic | Кабардино-Балкарская Республика | 07 | 02:00:00 | Нальчик
|
||||||
42 | Kaliningrad Oblast | Калининградская область | 39 | 01:00:00
|
42 | Kaliningrad Oblast | Калининградская область | 39 | 01:00:00 | Калининград
|
||||||
43 | Kaluga Oblast | Калужская область | 40 | 02:00:00
|
43 | Kaluga Oblast | Калужская область | 40 | 02:00:00 | Калуга
|
||||||
24 | Kamchatka Krai | Камчатский край | 41 | 11:00:00
|
24 | Kamchatka Krai | Камчатский край | 41 | 11:00:00 | Петропавловск-Камчатский
|
||||||
8 | Karachay-Cherkess Republic | Карачаево-Черкесская Республика | 09 | 02:00:00
|
8 | Karachay-Cherkess Republic | Карачаево-Черкесская Республика | 09 | 02:00:00 | Черкесск
|
||||||
44 | Kemerovo Oblast | Кемеровская область | 42 | 06:00:00
|
44 | Kemerovo Oblast | Кемеровская область | 42 | 06:00:00 | Кемерово
|
||||||
45 | Kirov Oblast | Кировская область | 43 | 02:00:00
|
45 | Kirov Oblast | Кировская область | 43 | 02:00:00 | Киров
|
||||||
46 | Kostroma Oblast | Костромская область | 44 | 02:00:00
|
46 | Kostroma Oblast | Костромская область | 44 | 02:00:00 | Кострома
|
||||||
25 | Krasnodar Krai | Краснодарский край | 23 | 02:00:00
|
25 | Krasnodar Krai | Краснодарский край | 23 | 02:00:00 | Красноярск
|
||||||
26 | Krasnoyarsk Krai | Красноярский край | 24 | 06:00:00
|
26 | Krasnoyarsk Krai | Красноярский край | 24 | 06:00:00 | Краснодар
|
||||||
47 | Kurgan Oblast | Курганская область | 45 | 04:00:00
|
47 | Kurgan Oblast | Курганская область | 45 | 04:00:00 | Курган
|
||||||
48 | Kursk Oblast | Курская область | 46 | 02:00:00
|
48 | Kursk Oblast | Курская область | 46 | 02:00:00 | Курск
|
||||||
49 | Leningrad Oblast | Ленинградская область | 47 | 02:00:00
|
49 | Leningrad Oblast | Ленинградская область | 47 | 02:00:00 | Санкт-Петербург
|
||||||
50 | Lipetsk Oblast | Липецкая область | 48 | 02:00:00
|
50 | Lipetsk Oblast | Липецкая область | 48 | 02:00:00 | Липецк
|
||||||
51 | Magadan Oblast | Магаданская область | 49 | 10:00:00
|
51 | Magadan Oblast | Магаданская область | 49 | 10:00:00 | Магадан
|
||||||
77 | Moscow | Москва | 77 | 02:00:00
|
77 | Moscow | Москва | 77 | 02:00:00 | Москва
|
||||||
52 | Moscow Oblast | Московская область | 50 | 02:00:00
|
52 | Moscow Oblast | Московская область | 50 | 02:00:00 | Москва
|
||||||
53 | Murmansk Oblast | Мурманская область | 51 | 02:00:00
|
53 | Murmansk Oblast | Мурманская область | 51 | 02:00:00 | Мурманск
|
||||||
81 | Nenets Autonomous Okrug | Ненецкий автономный округ | 83 | 02:00:00
|
81 | Nenets Autonomous Okrug | Ненецкий автономный округ | 83 | 02:00:00 | Нарьян-Мар
|
||||||
54 | Nizhny Novgorod Oblast | Нижегородская область | 52 | 02:00:00
|
54 | Nizhny Novgorod Oblast | Нижегородская область | 52 | 02:00:00 | Нижний Новгород
|
||||||
55 | Novgorod Oblast | Новгородская область | 53 | 02:00:00
|
55 | Novgorod Oblast | Новгородская область | 53 | 02:00:00 | Великий Новгород
|
||||||
56 | Novosibirsk Oblast | Новосибирская область | 54 | 06:00:00
|
56 | Novosibirsk Oblast | Новосибирская область | 54 | 06:00:00 | Новосибирск
|
||||||
57 | Omsk Oblast | Омская область | 55 | 05:00:00
|
57 | Omsk Oblast | Омская область | 55 | 05:00:00 | Омск
|
||||||
58 | Orenburg Oblast | Оренбургская область | 56 | 04:00:00
|
58 | Orenburg Oblast | Оренбургская область | 56 | 04:00:00 | Оренбург
|
||||||
59 | Oryol Oblast | Орловская область | 57 | 02:00:00
|
59 | Oryol Oblast | Орловская область | 57 | 02:00:00 | Орёл
|
||||||
60 | Penza Oblast | Пензенская область | 58 | 02:00:00
|
60 | Penza Oblast | Пензенская область | 58 | 02:00:00 | Пенза
|
||||||
27 | Perm Krai | Пермский край | 59 | 04:00:00
|
27 | Perm Krai | Пермский край | 59 | 04:00:00 | Пермь
|
||||||
28 | Primorsky Krai | Приморский край | 25 | 09:00:00
|
28 | Primorsky Krai | Приморский край | 25 | 09:00:00 | Владивосток
|
||||||
61 | Pskov Oblast | Псковская область | 60 | 02:00:00
|
61 | Pskov Oblast | Псковская область | 60 | 02:00:00 | Псков
|
||||||
87 | Republic of Adygea | Республика Адыгея | 01 | 02:00:00
|
87 | Republic of Adygea | Республика Адыгея | 01 | 02:00:00 | Майкоп
|
||||||
1 | Altai Republic | Республика Алтай | 04 | 06:00:00
|
1 | Altai Republic | Республика Алтай | 04 | 06:00:00 | Горно-Алтайск
|
||||||
2 | Republic of Bashkortostan | Республика Башкортостан | 02 | 04:00:00
|
2 | Republic of Bashkortostan | Республика Башкортостан | 02 | 04:00:00 | Уфа
|
||||||
3 | Republic of Buryatia | Республика Бурятия | 03 | 07:00:00
|
3 | Republic of Buryatia | Республика Бурятия | 03 | 07:00:00 | Улан-Удэ
|
||||||
4 | Republic of Dagestan | Республика Дагестан | 05 | 02:00:00
|
4 | Republic of Dagestan | Республика Дагестан | 05 | 02:00:00 | Махачкала
|
||||||
5 | Republic of Ingushetia | Республика Ингушетия | 06 | 02:00:00
|
5 | Republic of Ingushetia | Республика Ингушетия | 06 | 02:00:00 | Магас
|
||||||
7 | Republic of Kalmykia | Республика Калмыкия | 08 | 02:00:00
|
7 | Republic of Kalmykia | Республика Калмыкия | 08 | 02:00:00 | Элиста
|
||||||
9 | Republic of Karelia | Республика Карелия | 10 | 02:00:00
|
9 | Republic of Karelia | Республика Карелия | 10 | 02:00:00 | Петрозаводск
|
||||||
10 | Komi Republic | Республика Коми | 11 | 02:00:00
|
10 | Komi Republic | Республика Коми | 11 | 02:00:00 | Сыктывкар
|
||||||
11 | Republic of Crimea | Республика Крым | 91 | 02:00:00
|
11 | Republic of Crimea | Республика Крым | 91 | 02:00:00 | Симферополь
|
||||||
12 | Mari El Republic | Республика Марий Эл | 12 | 02:00:00
|
12 | Mari El Republic | Республика Марий Эл | 12 | 02:00:00 | Йошкар-Ола
|
||||||
13 | Republic of Mordovia | Республика Мордовия | 13 | 02:00:00
|
13 | Republic of Mordovia | Республика Мордовия | 13 | 02:00:00 | Саранск
|
||||||
14 | Republic of Sakha (Yakutia) | Республика Саха (Якутия) | 14 | 08:00:00
|
14 | Republic of Sakha (Yakutia) | Республика Саха (Якутия) | 14 | 08:00:00 | Якутск
|
||||||
15 | Republic of North Ossetia – Alania | Республика Северная Осетия — Алания | 15 | 02:00:00
|
15 | Republic of North Ossetia – Alania | Республика Северная Осетия — Алания | 15 | 02:00:00 | Владикавказ
|
||||||
16 | Republic of Tatarstan | Республика Татарстан | 16 | 02:00:00
|
16 | Republic of Tatarstan | Республика Татарстан | 16 | 02:00:00 | Казань
|
||||||
17 | Tyva Republic | Республика Тыва | 17 | 06:00:00
|
17 | Tyva Republic | Республика Тыва | 17 | 06:00:00 | Кызыл
|
||||||
19 | Republic of Khakassia | Республика Хакасия | 19 | 06:00:00
|
19 | Republic of Khakassia | Республика Хакасия | 19 | 06:00:00 | Абакан
|
||||||
62 | Rostov Oblast | Ростовская область | 61 | 02:00:00
|
62 | Rostov Oblast | Ростовская область | 61 | 02:00:00 | Ростов-на-Дону
|
||||||
63 | Ryazan Oblast | Рязанская область | 62 | 02:00:00
|
63 | Ryazan Oblast | Рязанская область | 62 | 02:00:00 | Рязань
|
||||||
64 | Samara Oblast | Самарская область | 63 | 03:00:00
|
64 | Samara Oblast | Самарская область | 63 | 03:00:00 | Самара
|
||||||
78 | Saint Petersburg | Санкт-Петербург | 78 | 02:00:00
|
78 | Saint Petersburg | Санкт-Петербург | 78 | 02:00:00 | Санкт-Петербург
|
||||||
65 | Saratov Oblast | Саратовская область | 64 | 03:00:00
|
65 | Saratov Oblast | Саратовская область | 64 | 03:00:00 | Саратов
|
||||||
66 | Sakhalin Oblast | Сахалинская область | 65 | 10:00:00
|
66 | Sakhalin Oblast | Сахалинская область | 65 | 10:00:00 | Южно-Сахалинск
|
||||||
67 | Sverdlovsk Oblast | Свердловская область | 66 | 04:00:00
|
67 | Sverdlovsk Oblast | Свердловская область | 66 | 04:00:00 | Екатеринбург
|
||||||
79 | Sevastopol | Севастополь | 92 | 02:00:00
|
79 | Sevastopol | Севастополь | 92 | 02:00:00 | Севастополь
|
||||||
68 | Smolensk Oblast | Смоленская область | 67 | 02:00:00
|
68 | Smolensk Oblast | Смоленская область | 67 | 02:00:00 | Смоленск
|
||||||
29 | Stavropol Krai | Ставропольский край | 26 | 02:00:00
|
29 | Stavropol Krai | Ставропольский край | 26 | 02:00:00 | Ставрополь
|
||||||
69 | Tambov Oblast | Тамбовская область | 68 | 02:00:00
|
69 | Tambov Oblast | Тамбовская область | 68 | 02:00:00 | Тамбов
|
||||||
70 | Tver Oblast | Тверская область | 69 | 02:00:00
|
70 | Tver Oblast | Тверская область | 69 | 02:00:00 | Тверь
|
||||||
71 | Tomsk Oblast | Томская область | 70 | 06:00:00
|
71 | Tomsk Oblast | Томская область | 70 | 06:00:00 | Томск
|
||||||
72 | Tula Oblast | Тульская область | 71 | 02:00:00
|
72 | Tula Oblast | Тульская область | 71 | 02:00:00 | Тула
|
||||||
73 | Tyumen Oblast | Тюменская область | 72 | 04:00:00
|
73 | Tyumen Oblast | Тюменская область | 72 | 04:00:00 | Тюмень
|
||||||
18 | Udmurt Republic | Удмуртская Республика | 18 | 03:00:00
|
18 | Udmurt Republic | Удмуртская Республика | 18 | 03:00:00 | Ижевск
|
||||||
74 | Ulyanovsk Oblast | Ульяновская область | 73 | 03:00:00
|
74 | Ulyanovsk Oblast | Ульяновская область | 73 | 03:00:00 | Ульяновск
|
||||||
30 | Khabarovsk Krai | Хабаровский край | 27 | 09:00:00
|
30 | Khabarovsk Krai | Хабаровский край | 27 | 09:00:00 | Хабаровск
|
||||||
82 | Khanty-Mansi Autonomous Okrug – Yugra | Ханты-Мансийский автономный округ — Югра | 86 | 04:00:00
|
82 | Khanty-Mansi Autonomous Okrug – Yugra | Ханты-Мансийский автономный округ — Югра | 86 | 04:00:00 | Ханты-Мансийск
|
||||||
75 | Chelyabinsk Oblast | Челябинская область | 74 | 04:00:00
|
75 | Chelyabinsk Oblast | Челябинская область | 74 | 04:00:00 | Челябинск
|
||||||
20 | Chechen Republic | Чеченская Республика | 20 | 02:00:00
|
20 | Chechen Republic | Чеченская Республика | 20 | 02:00:00 | Грозный
|
||||||
21 | Chuvash Republic | Чувашская Республика | 21 | 02:00:00
|
21 | Chuvash Republic | Чувашская Республика | 21 | 02:00:00 | Чебоксары
|
||||||
83 | Chukotka Autonomous Okrug | Чукотский автономный округ | 87 | 11:00:00
|
83 | Chukotka Autonomous Okrug | Чукотский автономный округ | 87 | 11:00:00 | Анадырь
|
||||||
84 | Yamalo-Nenets Autonomous Okrug | Ямало-Ненецкий автономный округ | 89 | 04:00:00
|
84 | Yamalo-Nenets Autonomous Okrug | Ямало-Ненецкий автономный округ | 89 | 04:00:00 | Салехард
|
||||||
76 | Yaroslavl Oblast | Ярославская область | 76 | 02:00:00
|
76 | Yaroslavl Oblast | Ярославская область | 76 | 02:00:00 | Ярославль
|
||||||
|
|
|
|
@ -34,6 +34,7 @@ en:
|
||||||
english_name: Name
|
english_name: Name
|
||||||
native_name: Name
|
native_name: Name
|
||||||
display_name: Name
|
display_name: Name
|
||||||
|
centre: Administrative centre
|
||||||
number: Number
|
number: Number
|
||||||
timezone: Time zone
|
timezone: Time zone
|
||||||
passport:
|
passport:
|
||||||
|
|
|
@ -34,6 +34,7 @@ ru:
|
||||||
english_name: Название
|
english_name: Название
|
||||||
native_name: Название
|
native_name: Название
|
||||||
display_name: Название
|
display_name: Название
|
||||||
|
centre: Административный центр
|
||||||
number: Номер
|
number: Номер
|
||||||
timezone: Часовой пояс
|
timezone: Часовой пояс
|
||||||
passport:
|
passport:
|
||||||
|
|
|
@ -17,6 +17,7 @@ class InitialMigration < ActiveRecord::Migration[6.0]
|
||||||
|
|
||||||
t.string :english_name, null: false, index: { unique: true }
|
t.string :english_name, null: false, index: { unique: true }
|
||||||
t.string :native_name, null: false, index: { unique: true }
|
t.string :native_name, null: false, index: { unique: true }
|
||||||
|
t.string :centre, null: false, index: false
|
||||||
|
|
||||||
t.integer :number, null: false, index: { unique: true }
|
t.integer :number, null: false, index: { unique: true }
|
||||||
t.interval :timezone, null: false, index: false
|
t.interval :timezone, null: false, index: false
|
||||||
|
@ -226,6 +227,14 @@ class InitialMigration < ActiveRecord::Migration[6.0]
|
||||||
native_name !~ '[[:space:]]{1,}$'
|
native_name !~ '[[:space:]]{1,}$'
|
||||||
SQL
|
SQL
|
||||||
|
|
||||||
|
constraint :federal_subjects, :centre, <<~SQL
|
||||||
|
length(centre) BETWEEN 1 AND 255
|
||||||
|
AND
|
||||||
|
centre !~ '^[[:space:]]{1,}'
|
||||||
|
AND
|
||||||
|
centre !~ '[[:space:]]{1,}$'
|
||||||
|
SQL
|
||||||
|
|
||||||
constraint :federal_subjects, :number, <<~SQL
|
constraint :federal_subjects, :number, <<~SQL
|
||||||
number > 0
|
number > 0
|
||||||
SQL
|
SQL
|
||||||
|
|
|
@ -4,19 +4,23 @@ require 'csv'
|
||||||
|
|
||||||
federal_subjects_filename = Rails.root.join 'config', 'federal_subjects.csv'
|
federal_subjects_filename = Rails.root.join 'config', 'federal_subjects.csv'
|
||||||
|
|
||||||
CSV.foreach federal_subjects_filename,
|
CSV.foreach(
|
||||||
col_sep: '|' do |(id, english_name, native_name, number, timezone)|
|
federal_subjects_filename,
|
||||||
|
col_sep: '|',
|
||||||
|
) do |(id, english_name, native_name, number, timezone, centre)|
|
||||||
id = Integer(id.strip)
|
id = Integer(id.strip)
|
||||||
english_name.strip!
|
english_name.strip!
|
||||||
native_name.strip!
|
native_name.strip!
|
||||||
number = Integer(number.strip.sub(/\A0*/, ''))
|
number = Integer(number.strip.sub(/\A0*/, ''))
|
||||||
timezone.strip!
|
timezone.strip!
|
||||||
|
centre.strip!
|
||||||
|
|
||||||
FederalSubject.where(id: id).first_or_create! do |new_federal_subject|
|
FederalSubject.where(id: id).first_or_create! do |new_federal_subject|
|
||||||
new_federal_subject.english_name = english_name
|
new_federal_subject.english_name = english_name
|
||||||
new_federal_subject.native_name = native_name
|
new_federal_subject.native_name = native_name
|
||||||
new_federal_subject.number = number
|
new_federal_subject.number = number
|
||||||
new_federal_subject.timezone = timezone
|
new_federal_subject.timezone = timezone
|
||||||
|
new_federal_subject.centre = centre
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -252,8 +252,10 @@ CREATE TABLE public.federal_subjects (
|
||||||
updated_at timestamp(6) without time zone NOT NULL,
|
updated_at timestamp(6) without time zone NOT NULL,
|
||||||
english_name character varying NOT NULL,
|
english_name character varying NOT NULL,
|
||||||
native_name character varying NOT NULL,
|
native_name character varying NOT NULL,
|
||||||
|
centre character varying NOT NULL,
|
||||||
number integer NOT NULL,
|
number integer NOT NULL,
|
||||||
timezone interval NOT NULL,
|
timezone interval NOT NULL,
|
||||||
|
CONSTRAINT centre CHECK ((((length((centre)::text) >= 1) AND (length((centre)::text) <= 255)) AND ((centre)::text !~ '^[[:space:]]{1,}'::text) AND ((centre)::text !~ '[[:space:]]{1,}$'::text))),
|
||||||
CONSTRAINT english_name CHECK ((((length((english_name)::text) >= 1) AND (length((english_name)::text) <= 255)) AND ((english_name)::text !~ '^[[:space:]]{1,}'::text) AND ((english_name)::text !~ '[[:space:]]{1,}$'::text))),
|
CONSTRAINT english_name CHECK ((((length((english_name)::text) >= 1) AND (length((english_name)::text) <= 255)) AND ((english_name)::text !~ '^[[:space:]]{1,}'::text) AND ((english_name)::text !~ '[[:space:]]{1,}$'::text))),
|
||||||
CONSTRAINT native_name CHECK ((((length((native_name)::text) >= 1) AND (length((native_name)::text) <= 255)) AND ((native_name)::text !~ '^[[:space:]]{1,}'::text) AND ((native_name)::text !~ '[[:space:]]{1,}$'::text))),
|
CONSTRAINT native_name CHECK ((((length((native_name)::text) >= 1) AND (length((native_name)::text) <= 255)) AND ((native_name)::text !~ '^[[:space:]]{1,}'::text) AND ((native_name)::text !~ '[[:space:]]{1,}$'::text))),
|
||||||
CONSTRAINT number CHECK ((number > 0))
|
CONSTRAINT number CHECK ((number > 0))
|
||||||
|
|
|
@ -17,6 +17,8 @@ FactoryBot.define do
|
||||||
|
|
||||||
native_name { english_name }
|
native_name { english_name }
|
||||||
|
|
||||||
|
centre { Faker::Address.city }
|
||||||
|
|
||||||
timezone { "#{[nil, :-].sample}#{rand(0..11).to_s.rjust(2, '0')}:00:00" }
|
timezone { "#{[nil, :-].sample}#{rand(0..11).to_s.rjust(2, '0')}:00:00" }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -49,6 +49,22 @@ RSpec.describe FederalSubject do
|
||||||
it { is_expected.not_to allow_value 'Foo ' }
|
it { is_expected.not_to allow_value 'Foo ' }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#centre' do
|
||||||
|
def allow_value(*)
|
||||||
|
super.for :centre
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to validate_presence_of :centre }
|
||||||
|
|
||||||
|
it do
|
||||||
|
is_expected.to \
|
||||||
|
validate_length_of(:centre).is_at_least(1).is_at_most(255)
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.not_to allow_value ' Foo' }
|
||||||
|
it { is_expected.not_to allow_value 'Foo ' }
|
||||||
|
end
|
||||||
|
|
||||||
describe '#number' do
|
describe '#number' do
|
||||||
it { is_expected.to validate_presence_of :number }
|
it { is_expected.to validate_presence_of :number }
|
||||||
it { is_expected.to validate_uniqueness_of :number }
|
it { is_expected.to validate_uniqueness_of :number }
|
||||||
|
|
Reference in New Issue