validates_formatting_of 0.2.3 → 0.3.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/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## v0.2.1 -- v0.2.3
2
+
3
+ * Added several new methods and tests for validations.
4
+ * Fixed several spelling and English issues in the README.
5
+
1
6
  ## v0.2.0
2
7
 
3
8
  * initial release
data/README.markdown CHANGED
@@ -22,6 +22,14 @@ Using validates_formatting_of is as simple as using Rails' built-in validation m
22
22
 
23
23
  This call will ensure that the user-provided email is a valid email. This way, you will not need to find or write your own regex to validate. All of that logic is contained within `validates_formatting_of`
24
24
 
25
+ # Rails validation options still available
26
+
27
+ You can still add the following options when using `validates_formatting_of`:
28
+
29
+ * `:allow_nil`
30
+ * `:allow_blank`
31
+ * `:message` for custom validation messages
32
+
25
33
  # Available Formatting Validations
26
34
 
27
35
  `validates_formatting_of` has support for the following validations:
@@ -78,6 +86,7 @@ This call will ensure that the user-provided email is a valid email. This way, y
78
86
  class User < ActiveRecord::Base
79
87
  validates_formatting_of :ssn, :using => :ssn
80
88
  end
89
+
81
90
  # Customizable
82
91
 
83
92
  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,
@@ -13,9 +13,18 @@ module ValidatesFormattingOf
13
13
 
14
14
  regex_for_validation = opts[:regex] || validate_with(opts[:using])
15
15
 
16
- validates_format_of attribute, :with => regex_for_validation, :message => opts[:message]
16
+ # Add :allow_nil and :allow_blank options. Both are false by default.
17
+ allow_nil = opts[:allow_nil] || false
18
+ allow_blank = opts[:allow_blank] || false
19
+
20
+ validates attribute, :format => { :with => regex_for_validation,
21
+ :message => opts[:message] },
22
+ :allow_nil => allow_nil,
23
+ :allow_blank => allow_blank
17
24
  end
18
25
 
26
+ private
27
+
19
28
  def validate_with(method)
20
29
  # Actually retrieve the regex to check against
21
30
  formatting.send(method)
@@ -1,3 +1,3 @@
1
1
  module ValidatesFormattingOf
2
- VERSION = "0.2.3"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -124,4 +124,34 @@ describe ValidatesFormattingOf::ModelAdditions do
124
124
  AnotherPerson.new(:ssn => "23498.7234").should_not be_valid
125
125
  end
126
126
  end
127
+ describe "custom messages" do
128
+
129
+ class Message < SuperModel::Base
130
+ validates_formatting_of :first_name, :using => :alpha, :message => "is not a valid first name"
131
+ end
132
+
133
+ it "are allowed and can be used in displaying error messages" do
134
+ message = Message.new(:first_name => "invalid-first-name-123")
135
+ message.should_not be_valid
136
+ message.errors.keys.class.should eq Array
137
+ message.errors.full_messages.first.should =~ /is not a valid first name/
138
+ end
139
+
140
+ end
141
+ # Currently, SuperModel's validations do not detect allow_blank or allow_nil
142
+ # This functionality has been tested separately in an empty Rails app with perfect
143
+ # results.
144
+ #
145
+ # describe "nil and blank values" do
146
+ # class People < SuperModel::Base
147
+ # validates_formatting_of :last_name, :using => :alpha, :allow_blank => true
148
+ # end
149
+ # it "are allowed" do
150
+ # p = People.new(:last_name => "something")
151
+ # p.should be_valid
152
+ # p.save!
153
+ # p.last_name = ""
154
+ # p.should_not be_valid
155
+ # end
156
+ # end
127
157
  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.3
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-11-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70294270491100 !ruby/object:Gem::Requirement
16
+ requirement: &70315145764160 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70294270491100
24
+ version_requirements: *70315145764160
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70294270490520 !ruby/object:Gem::Requirement
27
+ requirement: &70315145762460 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.9.2
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70294270490520
35
+ version_requirements: *70315145762460
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70294270490000 !ruby/object:Gem::Requirement
38
+ requirement: &70315145761260 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - =
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.7.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70294270490000
46
+ version_requirements: *70315145761260
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: supermodel
49
- requirement: &70294270489500 !ruby/object:Gem::Requirement
49
+ requirement: &70315145760480 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - =
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 0.1.6
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70294270489500
57
+ version_requirements: *70315145760480
58
58
  description: Common Rails validations wrapped in a gem.
59
59
  email:
60
60
  - mbridges.91@gmail.com