ball_gag 0.0.3 → 0.0.4
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.lock +1 -1
- data/ball_gag.gemspec +2 -0
- data/lib/ball_gag/cloak.rb +10 -6
- data/lib/ball_gag/validations.rb +6 -2
- data/lib/ball_gag/version.rb +1 -1
- data/spec/cloak_spec.rb +11 -2
- metadata +25 -3
data/Gemfile.lock
CHANGED
data/ball_gag.gemspec
CHANGED
data/lib/ball_gag/cloak.rb
CHANGED
|
@@ -24,13 +24,13 @@ module BallGag
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def preterite= preterite
|
|
27
|
-
set_preterite preterite
|
|
28
27
|
@preterite_negative = false
|
|
28
|
+
set_preterite preterite
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
def negative_preterite= preterite
|
|
32
|
-
set_preterite preterite
|
|
33
32
|
@preterite_negative = true
|
|
33
|
+
set_preterite preterite
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def preterite_negative?
|
|
@@ -39,8 +39,10 @@ module BallGag
|
|
|
39
39
|
|
|
40
40
|
private
|
|
41
41
|
def set_preterite preterite
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
if defined?(ActiveModel::EachValidator)
|
|
43
|
+
undefine_old_preterite_validators @preterite
|
|
44
|
+
define_preterite_validators preterite
|
|
45
|
+
end
|
|
44
46
|
|
|
45
47
|
@preterite = preterite
|
|
46
48
|
end
|
|
@@ -48,8 +50,10 @@ module BallGag
|
|
|
48
50
|
def define_preterite_validators preterite
|
|
49
51
|
return unless preterite
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
new_validators = [ Class.new(GaggedValidator), Class.new(NotGaggedValidator) ]
|
|
54
|
+
new_validators.reverse! if BallGag.preterite_negative?
|
|
55
|
+
Kernel.const_set(validator_name(preterite), new_validators[0])
|
|
56
|
+
Kernel.const_set(not_validator_name(preterite), new_validators[1])
|
|
53
57
|
end
|
|
54
58
|
|
|
55
59
|
def undefine_old_preterite_validators preterite
|
data/lib/ball_gag/validations.rb
CHANGED
|
@@ -13,7 +13,9 @@ class GaggedValidator < ActiveModel::EachValidator
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def default_message
|
|
16
|
-
|
|
16
|
+
BallGag.preterite_negative? ?
|
|
17
|
+
"is #{BallGag.preterite}" :
|
|
18
|
+
"is not #{BallGag.preterite}"
|
|
17
19
|
end
|
|
18
20
|
|
|
19
21
|
def neg_method_name attribute
|
|
@@ -34,7 +36,9 @@ class NotGaggedValidator < GaggedValidator
|
|
|
34
36
|
end
|
|
35
37
|
|
|
36
38
|
def default_message
|
|
37
|
-
|
|
39
|
+
BallGag.preterite_negative? ?
|
|
40
|
+
"is not #{BallGag.preterite}" :
|
|
41
|
+
"is #{BallGag.preterite}"
|
|
38
42
|
end
|
|
39
43
|
end
|
|
40
44
|
|
data/lib/ball_gag/version.rb
CHANGED
data/spec/cloak_spec.rb
CHANGED
|
@@ -105,14 +105,23 @@ describe 'BallGag cloaking' do
|
|
|
105
105
|
instance.errors[:words].should include 'is censored'
|
|
106
106
|
end
|
|
107
107
|
|
|
108
|
-
specify 'negative preterite should
|
|
108
|
+
specify 'negative preterite should create inverse validator' do
|
|
109
|
+
BallGag.negative_preterite = 'acceptable'
|
|
110
|
+
ExampleActiveModel.gag(:words) { |words| false }
|
|
111
|
+
ExampleActiveModel.validates :words, acceptable: true
|
|
112
|
+
instance = ExampleActiveModel.new
|
|
113
|
+
instance.valid?
|
|
114
|
+
instance.errors[:words].should include 'is not acceptable'
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
specify 'negative preterite should alter message but not meaning of extant validators' do
|
|
109
118
|
BallGag.negative_preterite = 'acceptable'
|
|
110
119
|
|
|
111
120
|
ExampleActiveModel.gag(:words) { |words| false }
|
|
112
121
|
ExampleActiveModel.validates :words, not_gagged: true
|
|
113
122
|
instance = ExampleActiveModel.new
|
|
114
123
|
instance.valid?
|
|
115
|
-
instance.errors[:words].should include 'is acceptable'
|
|
124
|
+
instance.errors[:words].should include 'is not acceptable'
|
|
116
125
|
end
|
|
117
126
|
end
|
|
118
127
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ball_gag
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.4
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -13,7 +13,7 @@ date: 2011-11-08 00:00:00.000000000 Z
|
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rspec
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &70274670743440 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,7 +21,29 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *70274670743440
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: rake
|
|
27
|
+
requirement: &70274670742620 !ruby/object:Gem::Requirement
|
|
28
|
+
none: false
|
|
29
|
+
requirements:
|
|
30
|
+
- - ! '>='
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :development
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: *70274670742620
|
|
36
|
+
- !ruby/object:Gem::Dependency
|
|
37
|
+
name: activemodel
|
|
38
|
+
requirement: &70274670741600 !ruby/object:Gem::Requirement
|
|
39
|
+
none: false
|
|
40
|
+
requirements:
|
|
41
|
+
- - ! '>='
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: '0'
|
|
44
|
+
type: :development
|
|
45
|
+
prerelease: false
|
|
46
|
+
version_requirements: *70274670741600
|
|
25
47
|
description: Validate user input using pluggable back-ends
|
|
26
48
|
email:
|
|
27
49
|
- duncan@dweebd.com
|