activevalidators 3.0.0 → 3.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog.md +8 -1
- data/README.md +5 -1
- data/activevalidators.gemspec +1 -16
- data/lib/active_model/validations/barcode_validator.rb +10 -4
- data/lib/activevalidators.rb +0 -3
- data/test/validations/barcode_test.rb +17 -1
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adf039c3ae7e345db0269ff8495f4125dabb9816
|
4
|
+
data.tar.gz: 9fd34dd568a845762a29134badb745a48bc6e0b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bcc06c8016bd48391ca41556b371a88630694d0f7372455cfa9d25871aa4b64e3723c2a3658a4db4cdbe2ea0f07f2ac4adb84a4b196be45a4f465b94eb6805f0
|
7
|
+
data.tar.gz: 0c232fbf6d0dbb28e93663266ba400753397a86be0fa350df708fa4280763185a7fe1e52d225c89d0fa202e69adb398745feb0a65303c728ccb3718b8fe2f63b
|
data/ChangeLog.md
CHANGED
data/README.md
CHANGED
@@ -10,6 +10,10 @@ ActiveValidators is a collection of off-the-shelf and tested ActiveModel/ActiveR
|
|
10
10
|
|
11
11
|
This projects follows [Semantic Versioning a.k.a SemVer](http://semver.org). If you use Bundler, you can use the stabby specifier `~>` safely.
|
12
12
|
|
13
|
+
What it means is that you should specify an ActiveValidators version like this :
|
14
|
+
|
15
|
+
gem 'activevalidators', '~> 3.0.0' # <-- mind the patch version
|
16
|
+
|
13
17
|
Once you have `require`'d the gem, you will have to activate the validators you
|
14
18
|
want to use as ActiveValidators doesn't force you to use them all :
|
15
19
|
|
@@ -95,7 +99,7 @@ Exhaustive list of supported validators and their implementation:
|
|
95
99
|
* `tracking_number`: based on a set of predefined masks
|
96
100
|
* `twitter` : based on a regular expression
|
97
101
|
* `url` : based on a regular expression
|
98
|
-
* `barcode` : based on known formats (
|
102
|
+
* `barcode` : based on known formats (:ean13 only for now)
|
99
103
|
|
100
104
|
## Todo
|
101
105
|
|
data/activevalidators.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = 'activevalidators'
|
4
|
-
s.version = '3.
|
4
|
+
s.version = '3.1.1'
|
5
5
|
s.platform = Gem::Platform::RUBY
|
6
6
|
s.authors = ['Franck Verrot', 'Paco Guzmán', 'Oriol Gual', 'Garrett Bjerkhoel', 'Renato Riccieri Santos Zannon', 'Brian Moseley', 'Serj L aka Loremaster']
|
7
7
|
s.email = ['franck@verrot.fr']
|
@@ -21,19 +21,4 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
s.files = `git ls-files`.split("\n")
|
23
23
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
24
|
-
|
25
|
-
s.post_install_message = """
|
26
|
-
######################################################################
|
27
|
-
# ActiveValidators v3.0.0 #
|
28
|
-
######################################################################
|
29
|
-
# #
|
30
|
-
# Version 3 of ActiveValidators stopped requiring all the validators #
|
31
|
-
# for you. So you will have to use `ActiveValidators.activate`. #
|
32
|
-
# #
|
33
|
-
# By default, v3.0.0 does `ActiveValidators.activate(:all)` to help #
|
34
|
-
# transitioning to v3, but 3.0.1 won't do that anymore. #
|
35
|
-
# #
|
36
|
-
# Thanks for using ActiveValidators ! #
|
37
|
-
# #
|
38
|
-
######################################################################"""
|
39
24
|
end
|
@@ -1,11 +1,17 @@
|
|
1
1
|
module ActiveModel
|
2
2
|
module Validations
|
3
3
|
class BarcodeValidator < EachValidator
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
# We check the validity of :format option
|
5
|
+
# More at https://github.com/rails/rails/blob/aa7fdfb859d8a73f58460a7aba7174a47b5101d5/activemodel/lib/active_model/validator.rb#L180
|
6
|
+
def check_validity!
|
7
|
+
format = options.fetch(:format)
|
8
|
+
raise ArgumentError, ":format cannot be blank!" if format.blank?
|
7
9
|
method = "valid_#{format.to_s}?"
|
8
|
-
raise "Barcode format
|
10
|
+
raise ArgumentError, "Barcode format (#{format}) not supported" unless self.respond_to?(method)
|
11
|
+
end
|
12
|
+
|
13
|
+
def validate_each(record, attribute, value)
|
14
|
+
method = "valid_#{options[:format].to_s}?"
|
9
15
|
record.errors.add(attribute) if value.blank? || !self.send(method, value)
|
10
16
|
end
|
11
17
|
|
data/lib/activevalidators.rb
CHANGED
@@ -22,7 +22,7 @@ describe "Barcode Validation" do
|
|
22
22
|
subject.errors.size.must_equal 1
|
23
23
|
end
|
24
24
|
|
25
|
-
it "rejects
|
25
|
+
it "rejects EAN13s with invalid value (not only integers)" do
|
26
26
|
subject = build_barcode_record :ean13, :barcode => "502392de872e4"
|
27
27
|
subject.valid?.must_equal false
|
28
28
|
subject.errors.size.must_equal 1
|
@@ -30,6 +30,22 @@ describe "Barcode Validation" do
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
describe "Invalid options given to the validator" do
|
34
|
+
it "raises an error when format is not supported" do
|
35
|
+
error = assert_raises ArgumentError do
|
36
|
+
build_barcode_record :format_not_supported, :barcode => "9782940199617"
|
37
|
+
end
|
38
|
+
error.message.must_equal "Barcode format (format_not_supported) not supported"
|
39
|
+
end
|
40
|
+
|
41
|
+
it "raises an error when you omit format option" do
|
42
|
+
error = assert_raises ArgumentError do
|
43
|
+
build_barcode_record nil, :barcode => "9782940199617"
|
44
|
+
end
|
45
|
+
error.message.must_equal ":format cannot be blank!"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
33
49
|
def build_barcode_record(type, attrs = {})
|
34
50
|
TestRecord.reset_callbacks(:validate)
|
35
51
|
TestRecord.validates :barcode, :barcode => { :format => type }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activevalidators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Franck Verrot
|
@@ -185,21 +185,7 @@ homepage: http://github.com/franckverrot/activevalidators
|
|
185
185
|
licenses:
|
186
186
|
- MIT
|
187
187
|
metadata: {}
|
188
|
-
post_install_message:
|
189
|
-
|
190
|
-
######################################################################
|
191
|
-
# ActiveValidators v3.0.0 #
|
192
|
-
######################################################################
|
193
|
-
# #
|
194
|
-
# Version 3 of ActiveValidators stopped requiring all the validators #
|
195
|
-
# for you. So you will have to use `ActiveValidators.activate`. #
|
196
|
-
# #
|
197
|
-
# By default, v3.0.0 does `ActiveValidators.activate(:all)` to help #
|
198
|
-
# transitioning to v3, but 3.0.1 won't do that anymore. #
|
199
|
-
# #
|
200
|
-
# Thanks for using ActiveValidators ! #
|
201
|
-
# #
|
202
|
-
######################################################################
|
188
|
+
post_install_message:
|
203
189
|
rdoc_options: []
|
204
190
|
require_paths:
|
205
191
|
- lib
|