format_validators 0.0.4 → 0.0.5
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.
- data/CHANGELOG +7 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +1 -1
- data/README.rdoc +45 -2
- data/VERSION +1 -1
- data/app/validators/days_of_week_validator.rb +30 -0
- data/app/validators/phone_format_validator.rb +55 -0
- data/app/validators/zipcode_format_validator.rb +11 -0
- data/format_validators.gemspec +12 -6
- data/spec/validators/days_of_week_validator_spec.rb +47 -0
- data/spec/validators/phone_format_validator_spec.rb +119 -0
- data/spec/validators/zipcode_format_validator_spec.rb +41 -0
- metadata +10 -4
data/CHANGELOG
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -1,6 +1,49 @@
|
|
1
|
-
|
1
|
+
== format_validators
|
2
|
+
|
3
|
+
A consolidation of a few of the most common validations.
|
4
|
+
|
5
|
+
== What do we validate
|
6
|
+
|
7
|
+
* Currency
|
8
|
+
* Florida Counties (a little too custom but someone requested it so here it is)
|
9
|
+
* Phone Numbers
|
10
|
+
* Social Security Number
|
11
|
+
* ZIP code
|
12
|
+
|
13
|
+
== Install
|
14
|
+
|
15
|
+
gem install format_validators
|
16
|
+
|
17
|
+
== Examples:
|
18
|
+
|
19
|
+
Like all validations these lines go in the model.
|
20
|
+
|
21
|
+
=== Currency
|
22
|
+
|
23
|
+
validates :total, :currency_format => true
|
24
|
+
validates <field>, :currency_format => true
|
25
|
+
|
26
|
+
=== Florida Counties
|
27
|
+
|
28
|
+
validates :county, :florida_counties => true
|
29
|
+
validates <field>, :florida_counties => true
|
30
|
+
|
31
|
+
=== Phone Numbers
|
32
|
+
|
33
|
+
validates :phone_number, :phone_format => true
|
34
|
+
validates <field>, :phone_format => true
|
35
|
+
|
36
|
+
=== Social Security Number
|
37
|
+
|
38
|
+
validates :social, :ssn_format => true
|
39
|
+
validates <field>, :ssn_format => true
|
40
|
+
|
41
|
+
=== ZIP code
|
42
|
+
|
43
|
+
validates :zip, :zipcode_format => true
|
44
|
+
validates <field>, :zipcode_format => true
|
45
|
+
|
2
46
|
|
3
|
-
Description goes here.
|
4
47
|
|
5
48
|
== Contributing to format_validators
|
6
49
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
@@ -0,0 +1,30 @@
|
|
1
|
+
class DaysOfWeekValidator < ActiveModel::EachValidator
|
2
|
+
def validate_each(record, attribute, value)
|
3
|
+
value = value.to_s.downcase
|
4
|
+
record.errors[attribute] << value + " is not a valid day of the week or abbreviation" unless DAYS.include?(value)
|
5
|
+
end
|
6
|
+
DAYS = [
|
7
|
+
"monday",
|
8
|
+
"mon",
|
9
|
+
"m",
|
10
|
+
"tuesday",
|
11
|
+
"tues",
|
12
|
+
"tu",
|
13
|
+
"t",
|
14
|
+
"wednesday",
|
15
|
+
"wed",
|
16
|
+
"w",
|
17
|
+
"thursday",
|
18
|
+
"thurs",
|
19
|
+
"th",
|
20
|
+
"friday",
|
21
|
+
"fri",
|
22
|
+
"f",
|
23
|
+
"saturday",
|
24
|
+
"sat",
|
25
|
+
"s",
|
26
|
+
"sunday",
|
27
|
+
"sun",
|
28
|
+
"su"
|
29
|
+
]
|
30
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# Custom Validations for Phone Number format
|
2
|
+
#
|
3
|
+
# Currently only has support for north american phone numbers. Additional support will be added later
|
4
|
+
#
|
5
|
+
# e.g. validates :home_phone, :phone_format => true
|
6
|
+
# e.g. validates :cell_phone, :phone_format => { :allow_blank => true, :if => :method_returns_true }
|
7
|
+
#
|
8
|
+
# Validates 7, 10, and 11 digit hone numbers to the NANP standard
|
9
|
+
# Handles parentheses, +, - and white space in the phone number
|
10
|
+
class PhoneFormatValidator < ActiveModel::EachValidator
|
11
|
+
|
12
|
+
# validates the phone number
|
13
|
+
# defaults to north america region
|
14
|
+
#
|
15
|
+
# removes parens, dash, space, and plus from numbers
|
16
|
+
# checks for non digit characters in the number
|
17
|
+
# checks against regional format validator
|
18
|
+
# adds errors if necessary
|
19
|
+
def validate_each record, attribute, value
|
20
|
+
region = options[:region] || :north_america
|
21
|
+
|
22
|
+
formatted_value = value.gsub(/[\s\.\+\(\)-]*/, "")
|
23
|
+
is_number = !(formatted_value =~ /^[-+]?[0-9]+$/).nil? # it returns 0 if it is a number with digits 0-9 or nil if not
|
24
|
+
unless is_number && validate_by_region(region, formatted_value)
|
25
|
+
message = attribute.to_s.humanize + ' doesn\'t match an acceptable format.'
|
26
|
+
record.errors[attribute] << (options[:message] || message )
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# @param [Symbol] region The phone number region to check against
|
31
|
+
# @param [String] formatted_value Formatted phone number, guaranteed to be all digits
|
32
|
+
# @return [Boolean] Whether the formatted value passes region validations
|
33
|
+
def validate_by_region(region, formatted_value)
|
34
|
+
if region == :north_america
|
35
|
+
valid_eleven_digit?(formatted_value) || valid_ten_digit?(formatted_value) || valid_seven_digit?(formatted_value)
|
36
|
+
else
|
37
|
+
false
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# @return [Boolean] True if it is seven digits long and the first digit is not 1 or 0
|
42
|
+
def valid_seven_digit?(input)
|
43
|
+
input.length == 7 && input[0] != "0" && input[0] != "1"
|
44
|
+
end
|
45
|
+
|
46
|
+
# @return [Boolean] True if it is 10 digits long, first digit not 1 or 0 and the last 7 digits validate
|
47
|
+
def valid_ten_digit?(input)
|
48
|
+
input.length == 10 && input[0] != "0" && input[0] != "1" && valid_seven_digit?(input.slice(-7, 7))
|
49
|
+
end
|
50
|
+
|
51
|
+
# @return [Boolean] Same as the ten digit with a 1 in front
|
52
|
+
def valid_eleven_digit?(input)
|
53
|
+
input.length == 11 && input[0] == "1" && valid_ten_digit?(input.slice(-10, 10))
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Custom Validations for Zip Code format
|
2
|
+
|
3
|
+
# e.g. validates :zip, :zipcode_format => true
|
4
|
+
# e.g. validates :zip, :zipcode_format => { :allow_blank => true, :if => :method_returns_true }
|
5
|
+
class ZipcodeFormatValidator < ActiveModel::EachValidator
|
6
|
+
def validate_each record, attribute, value
|
7
|
+
format = /^\A[\d]{5}(?:[-|\s][\d]{4})?\Z$/
|
8
|
+
message = attribute.to_s.humanize + ' doesn\'t match an acceptable format.'
|
9
|
+
record.errors[attribute] << (options[:message] || message ) unless value =~ format
|
10
|
+
end
|
11
|
+
end
|
data/format_validators.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "format_validators"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jeremiah Hemphill"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-04-04"
|
13
13
|
s.description = "Complex format validators"
|
14
14
|
s.email = "jeremiah@cloudspace.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -27,8 +27,11 @@ Gem::Specification.new do |s|
|
|
27
27
|
"Rakefile",
|
28
28
|
"VERSION",
|
29
29
|
"app/validators/currency_format_validator.rb",
|
30
|
+
"app/validators/days_of_week_validator.rb",
|
30
31
|
"app/validators/florida_counties_validator.rb",
|
32
|
+
"app/validators/phone_format_validator.rb",
|
31
33
|
"app/validators/ssn_format_validator.rb",
|
34
|
+
"app/validators/zipcode_format_validator.rb",
|
32
35
|
"format_validators.gemspec",
|
33
36
|
"lib/format_validators.rb",
|
34
37
|
"lib/format_validators/engine.rb",
|
@@ -73,9 +76,12 @@ Gem::Specification.new do |s|
|
|
73
76
|
"spec/spec_helper.rb",
|
74
77
|
"spec/support/basic_record.rb",
|
75
78
|
"spec/validators/currency_format_validator_spec.rb",
|
79
|
+
"spec/validators/days_of_week_validator_spec.rb",
|
76
80
|
"spec/validators/florida_counties_integration_spec.rb",
|
77
81
|
"spec/validators/florida_counties_spec.rb",
|
78
|
-
"spec/validators/
|
82
|
+
"spec/validators/phone_format_validator_spec.rb",
|
83
|
+
"spec/validators/ssn_format_validator_spec.rb",
|
84
|
+
"spec/validators/zipcode_format_validator_spec.rb"
|
79
85
|
]
|
80
86
|
s.homepage = "http://github.com/jeremiahishere/format_validators"
|
81
87
|
s.licenses = ["MIT"]
|
@@ -87,7 +93,7 @@ Gem::Specification.new do |s|
|
|
87
93
|
s.specification_version = 3
|
88
94
|
|
89
95
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
90
|
-
s.add_runtime_dependency(%q<rails>, ["
|
96
|
+
s.add_runtime_dependency(%q<rails>, [">= 3.0.7"])
|
91
97
|
s.add_development_dependency(%q<capybara>, [">= 0.4.0"])
|
92
98
|
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
93
99
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -100,7 +106,7 @@ Gem::Specification.new do |s|
|
|
100
106
|
s.add_development_dependency(%q<ZenTest>, [">= 0"])
|
101
107
|
s.add_development_dependency(%q<autotest-rails>, [">= 0"])
|
102
108
|
else
|
103
|
-
s.add_dependency(%q<rails>, ["
|
109
|
+
s.add_dependency(%q<rails>, [">= 3.0.7"])
|
104
110
|
s.add_dependency(%q<capybara>, [">= 0.4.0"])
|
105
111
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
106
112
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -114,7 +120,7 @@ Gem::Specification.new do |s|
|
|
114
120
|
s.add_dependency(%q<autotest-rails>, [">= 0"])
|
115
121
|
end
|
116
122
|
else
|
117
|
-
s.add_dependency(%q<rails>, ["
|
123
|
+
s.add_dependency(%q<rails>, [">= 3.0.7"])
|
118
124
|
s.add_dependency(%q<capybara>, [">= 0.4.0"])
|
119
125
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
120
126
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe DaysOfWeekValidator do
|
4
|
+
|
5
|
+
describe ".validate_each" do
|
6
|
+
before(:all) do
|
7
|
+
@options = {:attributes => {}}
|
8
|
+
@validator = DaysOfWeekValidator.new(@options)
|
9
|
+
@record = BasicRecord.new(:days)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should return true for valid day names" do
|
13
|
+
@record.errors[:days].should_not_receive("<<")
|
14
|
+
@validator.validate_each(@record, :days, "MONDAY")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should return true for valid day abbreviation" do
|
18
|
+
@record.errors[:days].should_not_receive("<<")
|
19
|
+
@validator.validate_each(@record, :days, "WED")
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return true for valid day abbreviation" do
|
23
|
+
@record.errors[:days].should_not_receive("<<")
|
24
|
+
@validator.validate_each(@record, :days, "TU")
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should return false for invalid days" do
|
28
|
+
@record.errors[:days].should_receive("<<")
|
29
|
+
@validator.validate_each(@record, :days, "kajhef")
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should return false for invalid days" do
|
33
|
+
@record.errors[:days].should_receive("<<")
|
34
|
+
@validator.validate_each(@record, :days, "GDHSKFBF HGVHEHJF 5636464 FHFGGG")
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should return false for blank string" do
|
38
|
+
@record.errors[:days].should_receive("<<")
|
39
|
+
@validator.validate_each(@record, :days, "")
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should return false for nil" do
|
43
|
+
@record.errors[:days].should_receive("<<")
|
44
|
+
@validator.validate_each(@record, :days, nil)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,119 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe PhoneFormatValidator do
|
4
|
+
before(:each) do
|
5
|
+
@options = {:attributes => {}}
|
6
|
+
@validator = PhoneFormatValidator.new(@options)
|
7
|
+
end
|
8
|
+
|
9
|
+
describe ".validate_seven_digit?" do
|
10
|
+
it "should return false if the length isn't 7" do
|
11
|
+
@validator.valid_seven_digit?("4321").should be_false
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should return false if the first digit is 0" do
|
15
|
+
@validator.valid_seven_digit?("0123456").should be_false
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should return false if the first digit is 1" do
|
19
|
+
@validator.valid_seven_digit?("1234567").should be_false
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return true if all requirements are met" do
|
23
|
+
@validator.valid_seven_digit?("2345678").should be_true
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe ".validate_ten_digit?" do
|
28
|
+
before(:each) do
|
29
|
+
@validator.stub!(:valid_seven_digit?).and_return(true)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should return false if the length isn't 10" do
|
33
|
+
@validator.valid_ten_digit?("4321").should be_false
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should return false if the first digit is 0" do
|
37
|
+
@validator.valid_ten_digit?("0123456789").should be_false
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should return false if the first digit is 1" do
|
41
|
+
@validator.valid_ten_digit?("1234567890").should be_false
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should return false if it fails seven digit validation" do
|
45
|
+
@validator.should_receive(:valid_seven_digit?).and_return(false)
|
46
|
+
@validator.valid_ten_digit?("2345678901").should be_false
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should return true if all requirements are met" do
|
50
|
+
@validator.valid_ten_digit?("2345678901").should be_true
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe ".validate_ten_digit?" do
|
55
|
+
before(:each) do
|
56
|
+
@validator.stub!(:valid_ten_digit?).and_return(true)
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should return false if the length isn't 11" do
|
60
|
+
@validator.valid_eleven_digit?("4321").should be_false
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should return false if the first digit is not 1" do
|
64
|
+
@validator.valid_eleven_digit?("22234567890")
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should return false if it fails ten digit validation" do
|
68
|
+
@validator.should_receive(:valid_ten_digit?).and_return(false)
|
69
|
+
@validator.valid_eleven_digit?("12234567890").should be_false
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should return true if all requirements are met" do
|
73
|
+
@validator.valid_eleven_digit?("12234567890").should be_true
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe ".validate_by_region" do
|
78
|
+
it "it should call the three north american methods" do
|
79
|
+
@validator.should_receive(:valid_seven_digit?)
|
80
|
+
@validator.should_receive(:valid_ten_digit?)
|
81
|
+
@validator.should_receive(:valid_eleven_digit?)
|
82
|
+
@validator.validate_by_region(:north_america, "2345678901")
|
83
|
+
end
|
84
|
+
it "should return false if the region does not match any known region" do
|
85
|
+
@validator.validate_by_region(:other_region, "2345678901").should be_false
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
describe ".validate_each" do
|
90
|
+
before(:each) do
|
91
|
+
@record = BasicRecord.new(:phone)
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should call validate_by_region with north america by default" do
|
95
|
+
@validator.should_receive(:validate_by_region).with(:north_america, "123456789")
|
96
|
+
@validator.validate_each(@record, :phone, "123-45-6789")
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should not validate_by_region if number is not numeric" do
|
100
|
+
@validator.should_not_receive(:validate_by_region)
|
101
|
+
@validator.validate_each(@record, :phone, "123-xyz-6789")
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should not add an error due to allowed special characters" do
|
105
|
+
@record.errors[:phone].should_not_receive("<<")
|
106
|
+
@validator.validate_each(@record, :phone, "()+.- 12345678901")
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should add an error on a bad phone number" do
|
110
|
+
@record.errors[:phone].should_receive("<<")
|
111
|
+
@validator.validate_each(@record, :phone, "123abc")
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should not add an error on a good phone number" do
|
115
|
+
@record.errors[:phone].should_not_receive("<<")
|
116
|
+
@validator.validate_each(@record, :phone, "555-555-5555")
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ZipcodeFormatValidator do
|
4
|
+
describe ".validate_each" do
|
5
|
+
before(:each) do
|
6
|
+
@options = {:attributes => {}}
|
7
|
+
@validator = ZipcodeFormatValidator.new(@options)
|
8
|
+
@record = BasicRecord.new(:zip_code)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should validate 5 digit zip codes" do
|
12
|
+
@record.errors[:zip_code].should_not_receive("<<")
|
13
|
+
@validator.validate_each(@record, :zip_code, "12345")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should validate 9 digit zip codes with a space"do
|
17
|
+
@record.errors[:zip_code].should_not_receive("<<")
|
18
|
+
@validator.validate_each(@record, :zip_code, "12345 6789")
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should validate 9 digit zip codes with a dash"do
|
22
|
+
@record.errors[:zip_code].should_not_receive("<<")
|
23
|
+
@validator.validate_each(@record, :zip_code, "12345-6789")
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should not validate 9 digit zip codes with nothing between the first 5 and last 4"do
|
27
|
+
@record.errors[:zip_code].should_receive("<<")
|
28
|
+
@validator.validate_each(@record, :zip_code, "123456789")
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should not validate zip codes of other lengths"do
|
32
|
+
@record.errors[:zip_code].should_receive("<<")
|
33
|
+
@validator.validate_each(@record, :zip_code, "123456")
|
34
|
+
end
|
35
|
+
|
36
|
+
it "does not have support for canadian zip codes"do
|
37
|
+
@record.errors[:zip_code].should_receive("<<")
|
38
|
+
@validator.validate_each(@record, :zip_code, "K1A OB1")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: format_validators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jeremiah Hemphill
|
@@ -10,14 +10,14 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-04-04 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
17
|
requirement: &id001 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
|
-
- -
|
20
|
+
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 3.0.7
|
23
23
|
type: :runtime
|
@@ -164,8 +164,11 @@ files:
|
|
164
164
|
- Rakefile
|
165
165
|
- VERSION
|
166
166
|
- app/validators/currency_format_validator.rb
|
167
|
+
- app/validators/days_of_week_validator.rb
|
167
168
|
- app/validators/florida_counties_validator.rb
|
169
|
+
- app/validators/phone_format_validator.rb
|
168
170
|
- app/validators/ssn_format_validator.rb
|
171
|
+
- app/validators/zipcode_format_validator.rb
|
169
172
|
- format_validators.gemspec
|
170
173
|
- lib/format_validators.rb
|
171
174
|
- lib/format_validators/engine.rb
|
@@ -210,9 +213,12 @@ files:
|
|
210
213
|
- spec/spec_helper.rb
|
211
214
|
- spec/support/basic_record.rb
|
212
215
|
- spec/validators/currency_format_validator_spec.rb
|
216
|
+
- spec/validators/days_of_week_validator_spec.rb
|
213
217
|
- spec/validators/florida_counties_integration_spec.rb
|
214
218
|
- spec/validators/florida_counties_spec.rb
|
219
|
+
- spec/validators/phone_format_validator_spec.rb
|
215
220
|
- spec/validators/ssn_format_validator_spec.rb
|
221
|
+
- spec/validators/zipcode_format_validator_spec.rb
|
216
222
|
homepage: http://github.com/jeremiahishere/format_validators
|
217
223
|
licenses:
|
218
224
|
- MIT
|
@@ -226,7 +232,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
226
232
|
requirements:
|
227
233
|
- - ">="
|
228
234
|
- !ruby/object:Gem::Version
|
229
|
-
hash:
|
235
|
+
hash: 2589333216613871779
|
230
236
|
segments:
|
231
237
|
- 0
|
232
238
|
version: "0"
|