strip_attributes 1.4.2 → 1.4.3
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.md +3 -3
- data/lib/strip_attributes/matchers.rb +29 -7
- data/lib/strip_attributes/version.rb +1 -1
- data/test/matchers_test.rb +25 -0
- metadata +4 -4
data/README.md
CHANGED
@@ -134,7 +134,7 @@ end
|
|
134
134
|
|
135
135
|
```ruby
|
136
136
|
describe User do
|
137
|
-
it { should strip_attribute
|
137
|
+
it { should strip_attribute(:name).collapse_spaces }
|
138
138
|
it { should strip_attribute :email }
|
139
139
|
it { should_not strip_attribute :password }
|
140
140
|
end
|
@@ -144,7 +144,7 @@ end
|
|
144
144
|
|
145
145
|
```ruby
|
146
146
|
class UserTest < ActiveSupport::TestCase
|
147
|
-
should strip_attribute
|
147
|
+
should strip_attribute(:name).collapse_spaces
|
148
148
|
should strip_attribute :email
|
149
149
|
should_not strip_attribute :password
|
150
150
|
end
|
@@ -156,7 +156,7 @@ end
|
|
156
156
|
describe User do
|
157
157
|
subject { User.new }
|
158
158
|
|
159
|
-
must { strip_attribute
|
159
|
+
must { strip_attribute(:name).collapse_spaces }
|
160
160
|
must { strip_attribute :email }
|
161
161
|
wont { strip_attribute :password }
|
162
162
|
end
|
@@ -19,26 +19,48 @@ module StripAttributes
|
|
19
19
|
class StripAttributeMatcher
|
20
20
|
def initialize(attribute)
|
21
21
|
@attribute = attribute
|
22
|
+
@options = {}
|
22
23
|
end
|
23
24
|
|
24
25
|
def matches?(subject)
|
25
26
|
subject.send("#{@attribute}=", " string ")
|
26
27
|
subject.valid?
|
27
|
-
subject.send(@attribute) == "string"
|
28
|
+
subject.send(@attribute) == "string" and collapse_spaces?(subject)
|
28
29
|
end
|
29
30
|
|
30
|
-
def
|
31
|
-
|
31
|
+
def collapse_spaces
|
32
|
+
@options[:collapse_spaces] = true
|
33
|
+
self
|
32
34
|
end
|
33
35
|
|
34
|
-
def
|
35
|
-
"Expected whitespace to
|
36
|
+
def failure_message_for_should
|
37
|
+
"Expected whitespace to be #{expectation} from ##{@attribute}, but it was not"
|
36
38
|
end
|
39
|
+
alias_method :failure_message, :failure_message_for_should
|
40
|
+
|
41
|
+
def failure_message_for_should_not
|
42
|
+
"Expected whitespace to remain on ##{@attribute}, but it was #{expectation}"
|
43
|
+
end
|
44
|
+
alias_method :negative_failure_message, :failure_message_for_should_not
|
37
45
|
|
38
46
|
def description
|
39
|
-
"
|
47
|
+
"#{expectation(false)} whitespace from ##{@attribute}"
|
40
48
|
end
|
41
|
-
end
|
42
49
|
|
50
|
+
private
|
51
|
+
|
52
|
+
def collapse_spaces?(subject)
|
53
|
+
return true if !@options[:collapse_spaces]
|
54
|
+
|
55
|
+
subject.send("#{@attribute}=", " string string ")
|
56
|
+
subject.valid?
|
57
|
+
subject.send(@attribute) == "string string"
|
58
|
+
end
|
59
|
+
|
60
|
+
def expectation(past = true)
|
61
|
+
expectation = past ? "stripped" : "strip"
|
62
|
+
expectation += past ? " and collapsed" : " and collapse" if @options[:collapse_spaces]
|
63
|
+
end
|
64
|
+
end
|
43
65
|
end
|
44
66
|
end
|
data/test/matchers_test.rb
CHANGED
@@ -10,6 +10,10 @@ class SampleMockRecord < Tableless
|
|
10
10
|
attribute :unstripped2
|
11
11
|
attribute :unstripped3
|
12
12
|
strip_attributes :only => [:stripped1, :stripped2, :stripped3]
|
13
|
+
|
14
|
+
attribute :collapsed
|
15
|
+
attribute :uncollapsed
|
16
|
+
strip_attributes :only => [:collapsed], :collapse_spaces => true
|
13
17
|
end
|
14
18
|
|
15
19
|
describe SampleMockRecord do
|
@@ -24,6 +28,9 @@ describe SampleMockRecord do
|
|
24
28
|
wont { strip_attribute :unstripped2 }
|
25
29
|
wont { strip_attribute :unstripped3 }
|
26
30
|
|
31
|
+
must { strip_attribute(:collapsed).collapse_spaces }
|
32
|
+
wont { strip_attribute(:uncollapsed).collapse_spaces }
|
33
|
+
|
27
34
|
it "should fail when testing for strip on an unstripped attribute" do
|
28
35
|
begin
|
29
36
|
assert_must strip_attribute(:unstripped1)
|
@@ -41,4 +48,22 @@ describe SampleMockRecord do
|
|
41
48
|
assert true
|
42
49
|
end
|
43
50
|
end
|
51
|
+
|
52
|
+
it "should fail when testing for collapse on an uncollapsed attribute" do
|
53
|
+
begin
|
54
|
+
assert_must collapse_attribute(:uncollapsed)
|
55
|
+
assert false
|
56
|
+
rescue
|
57
|
+
assert true
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should fail when testing for no collapse on a collapsed attribute" do
|
62
|
+
begin
|
63
|
+
assert_wont collapse_attribute(:collapsed)
|
64
|
+
assert false
|
65
|
+
rescue
|
66
|
+
assert true
|
67
|
+
end
|
68
|
+
end
|
44
69
|
end
|
metadata
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
name: strip_attributes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.4.
|
5
|
+
version: 1.4.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Ryan McGeary
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
@@ -112,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
112
|
- !ruby/object:Gem::Version
|
113
113
|
segments:
|
114
114
|
- 0
|
115
|
-
hash:
|
115
|
+
hash: -2985851846884596940
|
116
116
|
version: '0'
|
117
117
|
none: false
|
118
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
segments:
|
123
123
|
- 0
|
124
|
-
hash:
|
124
|
+
hash: -2985851846884596940
|
125
125
|
version: '0'
|
126
126
|
none: false
|
127
127
|
requirements: []
|