crazy_validators 0.2.1 → 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/Gemfile +1 -1
- data/VERSION +1 -1
- data/crazy_validators.gemspec +10 -7
- data/lib/crazy_validators/o_embed_url_validator.rb +5 -2
- data/test/fixtures/alpha_num_model.rb +5 -0
- data/test/fixtures/slug_model.rb +5 -0
- data/test/fixtures/word_count_model.rb +7 -0
- data/test/test_alpha_numericality.rb +18 -0
- data/test/test_slug_validator.rb +4 -5
- data/test/test_word_count_validator.rb +39 -0
- metadata +10 -7
- data/test/fixtures/string_model.rb +0 -4
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/crazy_validators.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "crazy_validators"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Cyril Picard"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-10-15"
|
13
13
|
s.description = " CrazyValidators enables easy validation of attributs of an ActiveModel class, such as alphanumericality, presence in a Blacklist. "
|
14
14
|
s.email = "Cyril@picard.ch"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -36,10 +36,13 @@ Gem::Specification.new do |s|
|
|
36
36
|
"lib/crazy_validators/word_count_validator.rb",
|
37
37
|
"locales/en.yml",
|
38
38
|
"locales/fr.yml",
|
39
|
+
"test/fixtures/alpha_num_model.rb",
|
39
40
|
"test/fixtures/boolean_model.rb",
|
40
41
|
"test/fixtures/simple_model.rb",
|
41
|
-
"test/fixtures/
|
42
|
+
"test/fixtures/slug_model.rb",
|
43
|
+
"test/fixtures/word_count_model.rb",
|
42
44
|
"test/helper.rb",
|
45
|
+
"test/test_alpha_numericality.rb",
|
43
46
|
"test/test_boolean_validator.rb",
|
44
47
|
"test/test_crazy_validators.rb",
|
45
48
|
"test/test_slug_validator.rb",
|
@@ -48,7 +51,7 @@ Gem::Specification.new do |s|
|
|
48
51
|
s.homepage = "http://github.com/cyrilpic/crazy_validators"
|
49
52
|
s.licenses = ["MIT"]
|
50
53
|
s.require_paths = ["lib"]
|
51
|
-
s.rubygems_version = "1.8.
|
54
|
+
s.rubygems_version = "1.8.24"
|
52
55
|
s.summary = "Adds some validation methods for ActiveModel models"
|
53
56
|
|
54
57
|
if s.respond_to? :specification_version then
|
@@ -58,7 +61,7 @@ Gem::Specification.new do |s|
|
|
58
61
|
s.add_runtime_dependency(%q<activemodel>, [">= 0"])
|
59
62
|
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
60
63
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
61
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.
|
64
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.2.0"])
|
62
65
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.0"])
|
63
66
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
64
67
|
s.add_development_dependency(%q<to_slug>, [">= 0"])
|
@@ -67,7 +70,7 @@ Gem::Specification.new do |s|
|
|
67
70
|
s.add_dependency(%q<activemodel>, [">= 0"])
|
68
71
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
69
72
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
70
|
-
s.add_dependency(%q<bundler>, ["~> 1.
|
73
|
+
s.add_dependency(%q<bundler>, ["~> 1.2.0"])
|
71
74
|
s.add_dependency(%q<jeweler>, ["~> 1.8.0"])
|
72
75
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
73
76
|
s.add_dependency(%q<to_slug>, [">= 0"])
|
@@ -77,7 +80,7 @@ Gem::Specification.new do |s|
|
|
77
80
|
s.add_dependency(%q<activemodel>, [">= 0"])
|
78
81
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
79
82
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
80
|
-
s.add_dependency(%q<bundler>, ["~> 1.
|
83
|
+
s.add_dependency(%q<bundler>, ["~> 1.2.0"])
|
81
84
|
s.add_dependency(%q<jeweler>, ["~> 1.8.0"])
|
82
85
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
83
86
|
s.add_dependency(%q<to_slug>, [">= 0"])
|
@@ -3,7 +3,7 @@ require 'oembed'
|
|
3
3
|
module CrazyValidators
|
4
4
|
class OEmbedUrlValidator < ActiveModel::EachValidator
|
5
5
|
|
6
|
-
RESERVED_OPTIONS = [:type, :success]
|
6
|
+
RESERVED_OPTIONS = [:type, :success, :maxwidth, :maxheight]
|
7
7
|
AUTHORIZED_TYPES = ['video', 'link', 'photo', 'rich']
|
8
8
|
|
9
9
|
def initialize(options)
|
@@ -15,10 +15,13 @@ module CrazyValidators
|
|
15
15
|
type = [options[:type]].flatten.map(&:to_s).keep_if do |e|
|
16
16
|
AUTHORIZED_TYPES.include? e
|
17
17
|
end
|
18
|
+
oembed_options = options.extract!(:maxwidth, :maxheight).keep_if do |k,v|
|
19
|
+
v.is_a? Fixnum
|
20
|
+
end
|
18
21
|
if record.send(attribute.to_s + "_changed?")
|
19
22
|
OEmbed::Providers.register_all
|
20
23
|
begin
|
21
|
-
res = OEmbed::Providers.get(value)
|
24
|
+
res = OEmbed::Providers.get(value, oembed_options)
|
22
25
|
if type.any? { |t| res.send(t+'?') }
|
23
26
|
unless options[:success].nil?
|
24
27
|
if options[:success].is_a? Proc
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'fixtures/alpha_num_model'
|
3
|
+
|
4
|
+
class TestAlphaNumericalityValidator < Test::Unit::TestCase
|
5
|
+
include ActiveModel::Lint::Tests
|
6
|
+
def setup
|
7
|
+
@model = AlphaNumModel.new
|
8
|
+
end
|
9
|
+
|
10
|
+
should "only validate alpha numerical values" do
|
11
|
+
model.attri = "Hello world"
|
12
|
+
assert !model.valid?, model.errors[:attri].first
|
13
|
+
model.attri = "hello"
|
14
|
+
assert model.valid?
|
15
|
+
model.attri = "hello45"
|
16
|
+
assert model.valid?
|
17
|
+
end
|
18
|
+
end
|
data/test/test_slug_validator.rb
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
require 'helper'
|
2
|
-
require 'fixtures/
|
2
|
+
require 'fixtures/slug_model'
|
3
3
|
|
4
4
|
class TestSlugValidator < Test::Unit::TestCase
|
5
5
|
include ActiveModel::Lint::Tests
|
6
6
|
def setup
|
7
|
-
|
8
|
-
@model = StringModel.new
|
7
|
+
@model = SlugModel.new
|
9
8
|
end
|
10
9
|
should "only accept valid slug" do
|
11
|
-
model.
|
10
|
+
model.slug = "This is @ regular sentance !"
|
12
11
|
assert !model.valid?, "Provided a sentance instead of a slug"
|
13
|
-
model.
|
12
|
+
model.slug = "This is @ regular sentance !".to_slug
|
14
13
|
assert model.valid?
|
15
14
|
end
|
16
15
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'fixtures/word_count_model'
|
3
|
+
|
4
|
+
class TestWordCountValidator < Test::Unit::TestCase
|
5
|
+
include ActiveModel::Lint::Tests
|
6
|
+
def setup
|
7
|
+
@model = WordCountModel.new
|
8
|
+
end
|
9
|
+
|
10
|
+
should "only validate valid input between 5 and 10 words" do
|
11
|
+
text2 = "Hello World"
|
12
|
+
text4 = "Hello World from home."
|
13
|
+
text5 = "Hello World from my home."
|
14
|
+
text11 = "Hello World from my very sweet home in Switzerland, Geneva Lake."
|
15
|
+
|
16
|
+
model.minmax = text5
|
17
|
+
model.exact = text2
|
18
|
+
assert !model.valid?
|
19
|
+
|
20
|
+
model.exact = text11
|
21
|
+
assert !model.valid?
|
22
|
+
|
23
|
+
model.exact = text4
|
24
|
+
assert !model.valid?
|
25
|
+
|
26
|
+
model.exact = text5
|
27
|
+
assert model.valid?
|
28
|
+
|
29
|
+
model.minmax = text2
|
30
|
+
assert !model.valid?
|
31
|
+
|
32
|
+
model.minmax = text4
|
33
|
+
assert !model.valid?
|
34
|
+
|
35
|
+
model.minmax = text11
|
36
|
+
assert !model.valid?
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crazy_validators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
requirements:
|
67
67
|
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 1.
|
69
|
+
version: 1.2.0
|
70
70
|
type: :development
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -74,7 +74,7 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 1.
|
77
|
+
version: 1.2.0
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
79
|
name: jeweler
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -167,10 +167,13 @@ files:
|
|
167
167
|
- lib/crazy_validators/word_count_validator.rb
|
168
168
|
- locales/en.yml
|
169
169
|
- locales/fr.yml
|
170
|
+
- test/fixtures/alpha_num_model.rb
|
170
171
|
- test/fixtures/boolean_model.rb
|
171
172
|
- test/fixtures/simple_model.rb
|
172
|
-
- test/fixtures/
|
173
|
+
- test/fixtures/slug_model.rb
|
174
|
+
- test/fixtures/word_count_model.rb
|
173
175
|
- test/helper.rb
|
176
|
+
- test/test_alpha_numericality.rb
|
174
177
|
- test/test_boolean_validator.rb
|
175
178
|
- test/test_crazy_validators.rb
|
176
179
|
- test/test_slug_validator.rb
|
@@ -190,7 +193,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
190
193
|
version: '0'
|
191
194
|
segments:
|
192
195
|
- 0
|
193
|
-
hash:
|
196
|
+
hash: 1647732643492294825
|
194
197
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
195
198
|
none: false
|
196
199
|
requirements:
|
@@ -199,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
202
|
version: '0'
|
200
203
|
requirements: []
|
201
204
|
rubyforge_project:
|
202
|
-
rubygems_version: 1.8.
|
205
|
+
rubygems_version: 1.8.24
|
203
206
|
signing_key:
|
204
207
|
specification_version: 3
|
205
208
|
summary: Adds some validation methods for ActiveModel models
|