diff --git a/app/models/contact_network.rb b/app/models/contact_network.rb
index 552f204..23d3c79 100644
--- a/app/models/contact_network.rb
+++ b/app/models/contact_network.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class ContactNetwork < ApplicationRecord
- NICKNAME_RE = /\A[a-z][a-z0-9]*(_[a-z0-9]+)*\z/.freeze
+ CODENAME_RE = /\A[a-z][a-z0-9]*(_[a-z0-9]+)*\z/.freeze
#############
# Callbacks #
@@ -14,10 +14,10 @@ class ContactNetwork < ApplicationRecord
# Validations #
###############
- validates :nickname,
+ validates :codename,
presence: true,
length: { in: 3..36 },
- format: NICKNAME_RE,
+ format: CODENAME_RE,
uniqueness: { case_sensitive: false }
validates :public_name, allow_nil: true, length: { in: 1..255 }
@@ -25,12 +25,12 @@ class ContactNetwork < ApplicationRecord
private
def turn_blanks_into_nils
- self.nickname = nil if nickname.blank?
+ self.codename = nil if codename.blank?
self.public_name = nil if public_name.blank?
end
def strip_extra_spaces
- self.nickname = nickname&.strip
+ self.codename = codename&.strip
self.public_name = public_name&.strip
end
end
diff --git a/app/views/staffs/contact_networks/index.html.erb b/app/views/staffs/contact_networks/index.html.erb
index 2ede95d..e9906c4 100644
--- a/app/views/staffs/contact_networks/index.html.erb
+++ b/app/views/staffs/contact_networks/index.html.erb
@@ -8,7 +8,7 @@
- <%= ContactNetwork.human_attribute_name :nickname %>
+ <%= ContactNetwork.human_attribute_name :codename %>
|
<%= ContactNetwork.human_attribute_name :public_name %>
@@ -20,7 +20,7 @@
|
<% @contact_networks.each do |contact_network| %>
- <%= contact_network.nickname %> |
+ <%= contact_network.codename %> |
<%= contact_network.public_name %> |
<% end %>
diff --git a/config/locales/activerecord/en.yml b/config/locales/activerecord/en.yml
index fdae4a5..e7a3203 100644
--- a/config/locales/activerecord/en.yml
+++ b/config/locales/activerecord/en.yml
@@ -38,7 +38,7 @@ en:
person: Person
contact_network:
id: ID
- nickname: Nickname
+ codename: Codename
public_name: Public name
federal_subject:
id: ID
diff --git a/config/locales/activerecord/ru.yml b/config/locales/activerecord/ru.yml
index 4db0086..00accdf 100644
--- a/config/locales/activerecord/ru.yml
+++ b/config/locales/activerecord/ru.yml
@@ -38,7 +38,7 @@ ru:
person: Человек
contact_network:
id: ID
- nickname: Имя пользователя
+ codename: Кодовое имя
public_name: Публичное имя
federal_subject:
id: ID
diff --git a/db/migrate/20181129203927_initial_migration.rb b/db/migrate/20181129203927_initial_migration.rb
index 1590f6d..517ca07 100644
--- a/db/migrate/20181129203927_initial_migration.rb
+++ b/db/migrate/20181129203927_initial_migration.rb
@@ -59,6 +59,15 @@ private
$$;
SQL
+ func :is_codename, <<~SQL
+ (str text) RETURNS boolean IMMUTABLE LANGUAGE plpgsql AS
+ $$
+ BEGIN
+ RETURN is_nickname(str);
+ END;
+ $$;
+ SQL
+
func :is_good_text, <<~SQL
(str text) RETURNS boolean IMMUTABLE LANGUAGE plpgsql AS
$$
@@ -161,7 +170,7 @@ private
create_table :contact_networks do |t|
t.timestamps null: false
- t.string :nickname, null: false, index: { unique: true }
+ t.string :codename, null: false, index: { unique: true }
t.string :public_name, null: false, index: { unique: true }
end
@@ -384,8 +393,8 @@ private
is_good_small_text(value)
SQL
- constraint :contact_networks, :nickname, <<~SQL
- is_nickname(nickname)
+ constraint :contact_networks, :codename, <<~SQL
+ is_codename(codename)
SQL
constraint :contact_networks, :public_name, <<~SQL
diff --git a/db/seeds.rb b/db/seeds.rb
index 1a7eb36..9b311fe 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -28,13 +28,13 @@ end
CSV.foreach(
contact_networks_filename,
col_sep: '|',
-) do |(id, nickname, public_name)|
+) do |(id, codename, public_name)|
id = Integer(id.strip)
- nickname.strip!
+ codename.strip!
public_name.strip!
ContactNetwork.where(id: id).first_or_create! do |new_contact_network|
- new_contact_network.nickname = nickname
+ new_contact_network.codename = codename
new_contact_network.public_name = public_name
end
end
diff --git a/db/structure.sql b/db/structure.sql
index fa1421e..a9a262f 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -161,6 +161,19 @@ END;
$$;
+--
+-- Name: is_codename(text); Type: FUNCTION; Schema: public; Owner: -
+--
+
+CREATE FUNCTION public.is_codename(str text) RETURNS boolean
+ LANGUAGE plpgsql IMMUTABLE
+ AS $$
+BEGIN
+ RETURN is_nickname(str);
+END;
+$$;
+
+
--
-- Name: is_good_big_text(text); Type: FUNCTION; Schema: public; Owner: -
--
@@ -403,9 +416,9 @@ CREATE TABLE public.contact_networks (
id bigint NOT NULL,
created_at timestamp(6) without time zone NOT NULL,
updated_at timestamp(6) without time zone NOT NULL,
- nickname character varying NOT NULL,
+ codename character varying NOT NULL,
public_name character varying NOT NULL,
- CONSTRAINT nickname CHECK (public.is_nickname((nickname)::text)),
+ CONSTRAINT codename CHECK (public.is_codename((codename)::text)),
CONSTRAINT public_name CHECK (public.is_good_small_text((public_name)::text))
);
@@ -1085,10 +1098,10 @@ CREATE UNIQUE INDEX index_active_storage_blobs_on_key ON public.active_storage_b
--
--- Name: index_contact_networks_on_nickname; Type: INDEX; Schema: public; Owner: -
+-- Name: index_contact_networks_on_codename; Type: INDEX; Schema: public; Owner: -
--
-CREATE UNIQUE INDEX index_contact_networks_on_nickname ON public.contact_networks USING btree (nickname);
+CREATE UNIQUE INDEX index_contact_networks_on_codename ON public.contact_networks USING btree (codename);
--
diff --git a/factories/contact_networks.rb b/factories/contact_networks.rb
index ec0d271..68c7c79 100644
--- a/factories/contact_networks.rb
+++ b/factories/contact_networks.rb
@@ -2,7 +2,7 @@
FactoryBot.define do
factory :contact_network, class: ContactNetwork do
- nickname { Faker::Internet.username 3..36, %w[_] }
+ codename { Faker::Internet.username 3..36, %w[_] }
public_name { Faker::Company.unique.name }
end
end
diff --git a/spec/models/contact_network_spec.rb b/spec/models/contact_network_spec.rb
index 213eb9c..9711bda 100644
--- a/spec/models/contact_network_spec.rb
+++ b/spec/models/contact_network_spec.rb
@@ -5,18 +5,18 @@ require 'rails_helper'
RSpec.describe ContactNetwork do
subject { create :contact_network }
- describe '#nickname' do
+ describe '#codename' do
def allow_value(*)
- super.for :nickname
+ super.for :codename
end
- it { is_expected.to validate_presence_of :nickname }
+ it { is_expected.to validate_presence_of :codename }
it do
- is_expected.to validate_length_of(:nickname).is_at_least(3).is_at_most(36)
+ is_expected.to validate_length_of(:codename).is_at_least(3).is_at_most(36)
end
- it { is_expected.to validate_uniqueness_of(:nickname).case_insensitive }
+ it { is_expected.to validate_uniqueness_of(:codename).case_insensitive }
it { is_expected.not_to allow_value nil }
it { is_expected.not_to allow_value '' }