validates_formatting_of 0.2.0 → 0.2.1

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 CHANGED
@@ -1,10 +1,10 @@
1
- # validates_formatting_of
1
+ # validates_formatting_of [![Build Status](https://secure.travis-ci.org/mattdbridges/validates_formatting_of.png)](http://travis-ci.org/mattdbridges/validates_formatting_of)
2
2
 
3
- The *validates_formatting_of" gem addess several convenient methods to validating things such as emails, urls, and phones in a Rails application.
3
+ The `validates_formatting_of` gem addess several convenient methods to validating things such as emails, urls, and phones in a Rails application.
4
4
 
5
5
  # Installation
6
6
 
7
- To install *validates_formatting_of*, add the following to your `Gemfile`:
7
+ To install `validates_formatting_of`, add the following to your `Gemfile`:
8
8
 
9
9
  gem 'validates_formatting_of'
10
10
 
@@ -26,11 +26,64 @@ This call will ensure that the user-provided email is a valid email. This way, y
26
26
 
27
27
  `validates_formatting_of` has support for the following validations:
28
28
 
29
- * Email
30
- * URL
31
- * Alpha-only
32
- * Alphanumeric
33
- * Credit Card (Visa, Mastercard, Discver, and American Express)
34
- * US Zipcodes
35
- * US Phone numbers
36
- * IP Address
29
+ ### Email
30
+
31
+ class User < ActiveRecord::Base
32
+ validates_formatting_of :email, :using => :email
33
+ end
34
+
35
+ ### URL
36
+
37
+ class Sites < ActiveRecord::Base
38
+ validates_formatting_of :website, :using => :url
39
+ end
40
+
41
+ ### Alpha
42
+
43
+ class Name < ActiveRecord::Base
44
+ validates_formatting_of :first_name, :using => :alpha
45
+ end
46
+
47
+ ### Alphanumeric
48
+
49
+ class Sites < ActiveRecord::Base
50
+ validates_formatting_of :text, :using => :alphanum
51
+ end
52
+
53
+ ### Credit Card (Visa, Mastercard, Discver, and American Express)
54
+
55
+ class Purchases < ActiveRecord::Base
56
+ validates_formatting_of :cc, :using => :credit_card
57
+ end
58
+
59
+ ### US Zipcodes
60
+
61
+ class Location < ActiveRecord::Base
62
+ validates_formatting_of :zipcode, :using => :us_zip
63
+ end
64
+
65
+ ### US Phone numbers
66
+
67
+ class Phones < ActiveRecord::Base
68
+ validates_formatting_of :phone, :using => :us_phone
69
+ end
70
+
71
+ ### IP Address
72
+
73
+ class Location < ActiveRecord::Base
74
+ validates_formatting_of :website, :using => :url
75
+ end
76
+
77
+ # Customizable
78
+
79
+ If, for any reason, you want to use your own regex instead of Rail's built-in methods, you can specify what you want to use with the `:regex` option. For example,
80
+
81
+
82
+ class Person < ActiveRecord::Base
83
+ validates_formatting_of :first_name, :regex => /[A-Z]/i
84
+ end
85
+
86
+ # Development and Contribution
87
+
88
+ It is very easy to contribute to this gem. Full documentation to do so will be added in the near future.
89
+
@@ -16,13 +16,13 @@ module ValidatesFormattingOf
16
16
  validates_format_of attribute, :with => regex_for_validation, :message => opts[:message]
17
17
  end
18
18
 
19
- # Actually retrieve the regex to check against
20
19
  def validate_with(method)
20
+ # Actually retrieve the regex to check against
21
21
  formatting.send(method)
22
22
  end
23
23
 
24
- # Grab the validating methods
25
24
  def formatting
25
+ # Grab the validating methods
26
26
  @formatting ||= ValidatingMethods.new
27
27
  end
28
28
  end
@@ -1,3 +1,3 @@
1
1
  module ValidatesFormattingOf
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -81,4 +81,49 @@ describe ValidatesFormattingOf::ModelAdditions do
81
81
  end
82
82
 
83
83
  end
84
+ describe "us_phone" do
85
+
86
+ class IPAddress < SuperModel::Base
87
+ validates_formatting_of :ip, :using => :ip_address
88
+ end
89
+ it "validates that the email provided is valid" do
90
+ IPAddress.new(:ip => '10.10.10').should_not be_valid
91
+ IPAddress.new(:ip => '999.10.10.20').should_not be_valid
92
+ IPAddress.new(:ip => '2222.22.22.22').should_not be_valid
93
+ IPAddress.new(:ip => '22.2222.22.2').should_not be_valid
94
+ IPAddress.new(:ip => '127.0.0.1').should be_valid
95
+ IPAddress.new(:ip => '132.254.111.10').should be_valid
96
+ end
97
+
98
+ end
99
+ describe "us_phone" do
100
+
101
+ class IPAddress < SuperModel::Base
102
+ validates_formatting_of :ip, :using => :ip_address
103
+ end
104
+ it "validates that the email provided is valid" do
105
+ IPAddress.new(:ip => '10.10.10').should_not be_valid
106
+ IPAddress.new(:ip => '999.10.10.20').should_not be_valid
107
+ IPAddress.new(:ip => '2222.22.22.22').should_not be_valid
108
+ IPAddress.new(:ip => '22.2222.22.2').should_not be_valid
109
+ IPAddress.new(:ip => '127.0.0.1').should be_valid
110
+ IPAddress.new(:ip => '132.254.111.10').should be_valid
111
+ end
112
+
113
+ end
114
+ # For clarification, NONE of the following numbers are real credit card numbers.
115
+ # They only match the pattern. These were randomly made for testing.
116
+ describe "credit_card" do
117
+
118
+ class Client < SuperModel::Base
119
+ validates_formatting_of :cc, :using => :credit_card
120
+ end
121
+ it "validates that the email provided is valid" do
122
+ Client.new(:cc => '4264-2879-1230-0000').should be_valid # Visa style
123
+ Client.new(:cc => '6011-1111-0000-2391').should be_valid # Discover style
124
+ Client.new(:cc => '5422434400828888').should be_valid # Mastercard style
125
+ Client.new(:cc => '1233444444444444').should_not be_valid # fake
126
+ end
127
+
128
+ end
84
129
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validates_formatting_of
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-29 00:00:00.000000000 Z
12
+ date: 2011-11-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70227849493380 !ruby/object:Gem::Requirement
16
+ requirement: &70104641807780 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70227849493380
24
+ version_requirements: *70104641807780
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70227849492920 !ruby/object:Gem::Requirement
27
+ requirement: &70104641807320 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70227849492920
35
+ version_requirements: *70104641807320
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: supermodel
38
- requirement: &70227849492420 !ruby/object:Gem::Requirement
38
+ requirement: &70104641806840 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70227849492420
46
+ version_requirements: *70104641806840
47
47
  description: Common Rails validations for different types of data
48
48
  email:
49
49
  - mbridges.91@gmail.com