mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-05-18 21:56:55 -04:00
Simplify garden.name validation regexp
This commit is contained in:
@@ -22,23 +22,16 @@ class Garden < ApplicationRecord
|
|||||||
|
|
||||||
validates :location, length: { maximum: 255 }
|
validates :location, length: { maximum: 255 }
|
||||||
validates :slug, uniqueness: true
|
validates :slug, uniqueness: true
|
||||||
|
|
||||||
|
before_validation :strip_blanks
|
||||||
validates :name, uniqueness: { scope: :owner_id }
|
validates :name, uniqueness: { scope: :owner_id }
|
||||||
|
|
||||||
validates :name,
|
validates :name,
|
||||||
format: {
|
format: { without: /\n/, message: "must contain no newlines" },
|
||||||
with: /\A((?!\\n)(?!\R)[\p{L}\p{M}\d\s[:ascii:](?!\\n)])*\z/
|
allow_nil: false, allow_blank: false, presence: true,
|
||||||
},
|
length: { maximum: 255 }
|
||||||
allow_nil: false,
|
|
||||||
allow_blank: false,
|
|
||||||
presence: true,
|
|
||||||
length: { maximum: 255 }
|
|
||||||
|
|
||||||
|
|
||||||
validates :area,
|
validates :area,
|
||||||
numericality: {
|
numericality: {only_integer: false, greater_than_or_equal_to: 0 },
|
||||||
only_integer: false,
|
|
||||||
greater_than_or_equal_to: 0
|
|
||||||
},
|
|
||||||
allow_nil: true
|
allow_nil: true
|
||||||
|
|
||||||
AREA_UNITS_VALUES = {
|
AREA_UNITS_VALUES = {
|
||||||
@@ -76,4 +69,10 @@ class Garden < ApplicationRecord
|
|||||||
p.save
|
p.save
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
protected
|
||||||
|
|
||||||
|
def strip_blanks
|
||||||
|
self.name = self.name.strip unless name.nil?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -37,21 +37,21 @@ describe Garden do
|
|||||||
garden.should be_valid
|
garden.should be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "allows some punctuation" do
|
||||||
|
garden = FactoryBot.build(:garden, name: "best-garden-eva!")
|
||||||
|
garden.should be_valid
|
||||||
|
end
|
||||||
|
|
||||||
it "doesn't allow a name with only spaces" do
|
it "doesn't allow a name with only spaces" do
|
||||||
garden = FactoryBot.build(:garden, name: " ")
|
garden = FactoryBot.build(:garden, name: " ")
|
||||||
garden.should_not be_valid
|
garden.should_not be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't allow a new line chars in garden names" do
|
it "doesn't allow new line chars in garden names" do
|
||||||
garden = FactoryBot.build(:garden, name: "My garden\nI am a 1337 hacker")
|
garden = FactoryBot.build(:garden, name: "My garden\nI am a 1337 hacker")
|
||||||
garden.should_not be_valid
|
garden.should_not be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't allow a new lines in garden names" do
|
|
||||||
garden = FactoryBot.build(:garden, name: 'My garden\nI am a 1337 hacker')
|
|
||||||
garden.should_not be_valid
|
|
||||||
end
|
|
||||||
|
|
||||||
it "has an owner" do
|
it "has an owner" do
|
||||||
garden.owner.should be_an_instance_of Member
|
garden.owner.should be_an_instance_of Member
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user