From a4b24c2889affacb1a328d165076c89ccf71b154 Mon Sep 17 00:00:00 2001 From: esteres Date: Mon, 20 Jan 2025 09:08:19 -0500 Subject: [PATCH 1/4] Add support for some gems in new platform type --- Gemfile.lock | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Gemfile.lock b/Gemfile.lock index 8aaae9a..23c8493 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -141,6 +141,8 @@ GEM nio4r (2.7.4) nokogiri (1.16.7-arm64-darwin) racc (~> 1.4) + nokogiri (1.16.7-x86_64-darwin) + racc (~> 1.4) nokogiri (1.16.7-x86_64-linux) racc (~> 1.4) pry (0.15.0) @@ -247,6 +249,7 @@ GEM activesupport (>= 6.1) sprockets (>= 3.0.0) sqlite3 (1.7.3-arm64-darwin) + sqlite3 (1.7.3-x86_64-darwin) sqlite3 (1.7.3-x86_64-linux) stimulus-rails (1.3.4) railties (>= 6.0.0) @@ -279,6 +282,7 @@ GEM PLATFORMS arm64-darwin-23 + x86_64-darwin-22 x86_64-linux DEPENDENCIES From 81eb4aed00150f465cf5a8281507cdc83b7a72a3 Mon Sep 17 00:00:00 2001 From: esteres Date: Mon, 20 Jan 2025 09:13:25 -0500 Subject: [PATCH 2/4] Fix people saving, so when a phone number is enter, its saved --- app/controllers/people_controller.rb | 2 +- app/views/people/index.html.slim | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb index 6559b9e..f8e3668 100644 --- a/app/controllers/people_controller.rb +++ b/app/controllers/people_controller.rb @@ -19,7 +19,7 @@ def create private def person_attributes - params.require(:person).permit(:name, :email, :phone) + params.require(:person).permit(:name, :email, :phone_number) end end diff --git a/app/views/people/index.html.slim b/app/views/people/index.html.slim index ddbf52f..5afea0f 100644 --- a/app/views/people/index.html.slim +++ b/app/views/people/index.html.slim @@ -13,7 +13,7 @@ table.table tr th[scope="row"]= person&.id td= person.try(:name) - td= person.try(:phone) + td= person.try(:phone_number) td= person.try(:email) td= person.try(:company).try(:name) From fc37e0fb46d35fc0841aba4543a76c85204ab5d2 Mon Sep 17 00:00:00 2001 From: esteres Date: Mon, 20 Jan 2025 09:17:15 -0500 Subject: [PATCH 3/4] Add validation for phone number field --- app/models/person.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/models/person.rb b/app/models/person.rb index f935e46..a08273a 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -14,4 +14,9 @@ class Person < ApplicationRecord belongs_to :company, optional: true + + validates :phone_number, presence: true, format: { + with: /\A\(?\d{3}\)?[ .-]?\d{3}[ .-]?\d{4}\z/, + message: "must be a valid phone number format" + } end From 37e9f4c65795e7d6756ee2c34ca6c54e69e9d76a Mon Sep 17 00:00:00 2001 From: esteres Date: Mon, 20 Jan 2025 23:21:43 -0500 Subject: [PATCH 4/4] Fix specs after adding phone number validation --- spec/controllers/people_controller_spec.rb | 4 ++-- spec/features/people/index_spec.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/controllers/people_controller_spec.rb b/spec/controllers/people_controller_spec.rb index 82220e8..3ca39c6 100644 --- a/spec/controllers/people_controller_spec.rb +++ b/spec/controllers/people_controller_spec.rb @@ -16,11 +16,11 @@ describe 'POST create' do it 'Creates a record' do - expect{ post :create, params: { person: { name: 'foo', phone_number: '123', email: 'foo' } } }.to change{ Person.count }.by(1) + expect{ post :create, params: { person: { name: 'foo', phone_number: '1234567890', email: 'foo' } } }.to change{ Person.count }.by(1) end it 'has status found' do - expect(post :create, params: { person: { name: 'foo', phone_number: '123', email: 'foo' } }).to have_http_status(:found) + expect(post :create, params: { person: { name: 'foo', phone_number: '(123) 456-7650', email: 'foo' } }).to have_http_status(:found) end end end diff --git a/spec/features/people/index_spec.rb b/spec/features/people/index_spec.rb index d9936a9..266e528 100644 --- a/spec/features/people/index_spec.rb +++ b/spec/features/people/index_spec.rb @@ -4,7 +4,7 @@ before do Person.create( name: 'Foo Bar', - phone_number: 'Biz', + phone_number: '(123) 456 7890', email: 'Baz' ) end