validates_phone_number 0.1.4 → 0.9.0
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/README.markdown +4 -39
- data/Rakefile +0 -11
- data/lib/validates_phone_number/railtie.rb +0 -0
- data/lib/validates_phone_number/validator.rb +1 -5
- data/lib/validates_phone_number/version.rb +1 -1
- data/lib/validates_phone_number.rb +6 -1
- data/test/test_helper.rb +1 -17
- data/test/validates_phone_number/validator_test.rb +4 -12
- data/test/validates_phone_number_test.rb +3 -0
- data/validates_phone_number.gemspec +6 -7
- metadata +23 -22
- data/.travis.yml +0 -7
- data/lib/validates_phone_number/message.rb +0 -12
data/README.markdown
CHANGED
@@ -1,47 +1,12 @@
|
|
1
|
-
[](http://travis-ci.org/travisjeffery/validates_phone_number)
|
2
|
-
|
3
1
|
# Validates Phone Number
|
4
2
|
|
5
|
-
|
6
|
-
phone numbers.
|
7
|
-
|
8
|
-
### Basic Usage
|
3
|
+
Validate phone numbers in your Rails project.
|
9
4
|
|
10
|
-
|
5
|
+
For example, given a User model with a phone number attribute of `phone number`
|
11
6
|
that's a string, see if a given record has a valid phone number like so:
|
12
7
|
|
13
|
-
```
|
14
|
-
class Person < ActiveRecord::Base
|
15
|
-
validates :mobile, :phone_number => true
|
16
|
-
end
|
17
|
-
```
|
18
|
-
|
19
|
-
### Message
|
20
|
-
|
21
|
-
Specify the message that's added to the errors collection by using the
|
22
|
-
`message` option:
|
23
|
-
|
24
|
-
```
|
25
8
|
class Person < ActiveRecord::Base
|
26
|
-
validates :
|
9
|
+
validates :phone_number, :phone_number => true
|
27
10
|
end
|
28
|
-
```
|
29
|
-
|
30
|
-
### Format/Match by Regular Expression
|
31
11
|
|
32
|
-
You can specify
|
33
|
-
`format` option:
|
34
|
-
|
35
|
-
```
|
36
|
-
class Person < ActiveRecord::Base
|
37
|
-
validates :mobile, :phone_number => {:format => /\d{3}-\d{3}-\d{4}/}
|
38
|
-
end
|
39
|
-
```
|
40
|
-
|
41
|
-
### Allow Nil
|
42
|
-
|
43
|
-
```
|
44
|
-
class Person < ActiveRecord::Base
|
45
|
-
validates :mobile, :phone_number => {:allow_nil => true}
|
46
|
-
end
|
47
|
-
```
|
12
|
+
You can also specify the usual options like `allow_nil`, and `format`.
|
data/Rakefile
CHANGED
File without changes
|
@@ -2,13 +2,10 @@ require 'active_model/validator'
|
|
2
2
|
|
3
3
|
module ValidatesPhoneNumber
|
4
4
|
class Validator < ActiveModel::EachValidator
|
5
|
-
include ValidatesPhoneNumber::Message
|
6
|
-
|
7
5
|
def initialize options
|
8
6
|
@type = options.delete(:type) || :string
|
9
7
|
@allow_nil = options.delete(:allow_nil)
|
10
8
|
@format = options.delete(:format)
|
11
|
-
@message = options.delete(:message)
|
12
9
|
super
|
13
10
|
end
|
14
11
|
|
@@ -16,8 +13,7 @@ module ValidatesPhoneNumber
|
|
16
13
|
return if @allow_nil && value.nil?
|
17
14
|
return if Phoner::Phone.valid? value
|
18
15
|
return if value =~ @format
|
19
|
-
|
20
|
-
record.errors.add attr_name, message
|
16
|
+
record.errors.add attr_name, "'#{value}' is not a valid"
|
21
17
|
end
|
22
18
|
end
|
23
19
|
end
|
@@ -1,5 +1,10 @@
|
|
1
1
|
require 'phone'
|
2
2
|
Phoner::Phone.default_country_code = '1'
|
3
3
|
require_relative "validates_phone_number/version"
|
4
|
-
require_relative "validates_phone_number/message"
|
5
4
|
require_relative "validates_phone_number/validator"
|
5
|
+
require 'phone'
|
6
|
+
|
7
|
+
|
8
|
+
module ValidatesPhoneNumber
|
9
|
+
# Your code goes here...
|
10
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,25 +1,9 @@
|
|
1
|
-
unless Kernel.respond_to?(:require_relative)
|
2
|
-
module Kernel
|
3
|
-
def require_relative(path)
|
4
|
-
require File.join(File.dirname(caller[0]), path.to_str)
|
5
|
-
end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
1
|
ENV['RAILS_ENV'] = 'minitest'
|
10
|
-
|
11
|
-
require 'minitest/autorun'
|
12
|
-
rescue LoadError
|
13
|
-
require 'rubygems'
|
14
|
-
require 'minitest/unit'
|
15
|
-
MiniTest::Unit.autorun
|
16
|
-
end
|
17
|
-
|
2
|
+
require 'minitest/autorun'
|
18
3
|
require 'active_model'
|
19
4
|
require 'active_model/validations'
|
20
5
|
require 'active_record'
|
21
6
|
require 'action_view'
|
22
|
-
|
23
7
|
require_relative '../lib/validates_phone_number'
|
24
8
|
|
25
9
|
ActiveRecord::Base.establish_connection({:adapter => 'sqlite3', :database => ':memory:'})
|
@@ -23,36 +23,28 @@ class TestValidator < MiniTest::Unit::TestCase
|
|
23
23
|
assert @person.valid?
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
26
|
+
def test_allow_nil_option_off
|
27
27
|
Person.validates :phone_number, :phone_number => true
|
28
28
|
@person.phone_number = nil
|
29
29
|
assert !@person.valid?
|
30
30
|
end
|
31
31
|
|
32
|
-
def
|
32
|
+
def test_allow_nil_option_on
|
33
33
|
Person.validates :phone_number, :phone_number => {:allow_nil => true}
|
34
34
|
@person.phone_number = nil
|
35
35
|
assert @person.valid?
|
36
36
|
end
|
37
37
|
|
38
|
-
def
|
38
|
+
def test_valid_record_by_format_option_off
|
39
39
|
Person.validates :phone_number, :phone_number => true
|
40
40
|
@person.phone_number = "555^555^555^5555"
|
41
41
|
assert !@person.valid?
|
42
42
|
end
|
43
43
|
|
44
|
-
def
|
44
|
+
def test_valid_record_by_format_option_on
|
45
45
|
Person.validates :phone_number, :phone_number => {:format => /(\d+\^){3}\d+/}
|
46
46
|
@person.phone_number = "555^555^555^5555"
|
47
47
|
assert @person.valid?
|
48
48
|
end
|
49
|
-
|
50
|
-
def test_specify_message
|
51
|
-
Person.validates :phone_number, :phone_number => {:message => "invalid and can only be attributable to human error"}
|
52
|
-
@person.phone_number = nil
|
53
|
-
@person.valid?
|
54
|
-
assert_equal 1, @person.errors.size
|
55
|
-
assert_match /invalid and can only be attributable to human error/, @person.errors.full_messages.first
|
56
|
-
end
|
57
49
|
end
|
58
50
|
|
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.authors = ["Travis Jeffery"]
|
9
9
|
s.email = ["t@travisjeffery.com"]
|
10
10
|
s.homepage = ""
|
11
|
-
s.summary = %q{Adds validation methods to ActiveModel for validating
|
12
|
-
s.description = %q{Adds validation methods to ActiveModel for validating
|
11
|
+
s.summary = %q{Adds validation methods to ActiveModel for validating dates and times.}
|
12
|
+
s.description = %q{Adds validation methods to ActiveModel for validating dates and times.}
|
13
13
|
|
14
14
|
s.rubyforge_project = "validates_phone_number"
|
15
15
|
|
@@ -18,9 +18,8 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
|
-
s.add_development_dependency "minitest"
|
22
|
-
s.add_development_dependency "rails"
|
23
|
-
s.add_development_dependency "phone"
|
24
|
-
|
25
|
-
s.add_runtime_dependency "phone", '1.1'
|
21
|
+
s.add_development_dependency "minitest"
|
22
|
+
s.add_development_dependency "rails"
|
23
|
+
s.add_development_dependency "phone"
|
24
|
+
s.add_runtime_dependency "phone"
|
26
25
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validates_phone_number
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,53 +9,53 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-02 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
16
|
-
requirement: &
|
16
|
+
requirement: &70106801756540 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70106801756540
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rails
|
27
|
-
requirement: &
|
27
|
+
requirement: &70106801756060 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
|
-
- -
|
30
|
+
- - ! '>='
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70106801756060
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: phone
|
38
|
-
requirement: &
|
38
|
+
requirement: &70106801755240 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
|
-
- -
|
41
|
+
- - ! '>='
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
43
|
+
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70106801755240
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: phone
|
49
|
-
requirement: &
|
49
|
+
requirement: &70106801754640 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ! '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
58
|
-
description: Adds validation methods to ActiveModel for validating
|
57
|
+
version_requirements: *70106801754640
|
58
|
+
description: Adds validation methods to ActiveModel for validating dates and times.
|
59
59
|
email:
|
60
60
|
- t@travisjeffery.com
|
61
61
|
executables: []
|
@@ -63,16 +63,16 @@ extensions: []
|
|
63
63
|
extra_rdoc_files: []
|
64
64
|
files:
|
65
65
|
- .gitignore
|
66
|
-
- .travis.yml
|
67
66
|
- Gemfile
|
68
67
|
- README.markdown
|
69
68
|
- Rakefile
|
70
69
|
- lib/validates_phone_number.rb
|
71
|
-
- lib/validates_phone_number/
|
70
|
+
- lib/validates_phone_number/railtie.rb
|
72
71
|
- lib/validates_phone_number/validator.rb
|
73
72
|
- lib/validates_phone_number/version.rb
|
74
73
|
- test/test_helper.rb
|
75
74
|
- test/validates_phone_number/validator_test.rb
|
75
|
+
- test/validates_phone_number_test.rb
|
76
76
|
- validates_phone_number.gemspec
|
77
77
|
homepage: ''
|
78
78
|
licenses: []
|
@@ -97,7 +97,8 @@ rubyforge_project: validates_phone_number
|
|
97
97
|
rubygems_version: 1.8.10
|
98
98
|
signing_key:
|
99
99
|
specification_version: 3
|
100
|
-
summary: Adds validation methods to ActiveModel for validating
|
100
|
+
summary: Adds validation methods to ActiveModel for validating dates and times.
|
101
101
|
test_files:
|
102
102
|
- test/test_helper.rb
|
103
103
|
- test/validates_phone_number/validator_test.rb
|
104
|
+
- test/validates_phone_number_test.rb
|
data/.travis.yml
DELETED