shoulda-matchers 3.0.0 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +3 -1
- data/Gemfile +1 -2
- data/Gemfile.lock +8 -2
- data/NEWS.md +29 -1
- data/README.md +3 -11
- data/doc_config/yard/templates/default/fulldoc/html/css/global.css +17 -0
- data/doc_config/yard/templates/default/fulldoc/html/css/style.css +3 -4
- data/doc_config/yard/templates/default/layout/html/breadcrumb.erb +1 -1
- data/doc_config/yard/templates/default/layout/html/footer.erb +6 -0
- data/docs/errors/NonCaseSwappableValueError.md +111 -0
- data/gemfiles/4.0.0.gemfile +1 -2
- data/gemfiles/4.0.0.gemfile.lock +5 -2
- data/gemfiles/4.0.1.gemfile +1 -2
- data/gemfiles/4.0.1.gemfile.lock +5 -2
- data/gemfiles/4.1.gemfile +1 -2
- data/gemfiles/4.1.gemfile.lock +5 -2
- data/gemfiles/4.2.gemfile +1 -2
- data/gemfiles/4.2.gemfile.lock +5 -2
- data/lib/shoulda/matchers/action_controller/respond_with_matcher.rb +1 -5
- data/lib/shoulda/matchers/active_model/allow_value_matcher.rb +26 -4
- data/lib/shoulda/matchers/active_model/numericality_matchers/comparison_matcher.rb +9 -8
- data/lib/shoulda/matchers/active_model/numericality_matchers/even_number_matcher.rb +14 -8
- data/lib/shoulda/matchers/active_model/numericality_matchers/numeric_type_matcher.rb +47 -12
- data/lib/shoulda/matchers/active_model/numericality_matchers/odd_number_matcher.rb +15 -9
- data/lib/shoulda/matchers/active_model/numericality_matchers/only_integer_matcher.rb +14 -7
- data/lib/shoulda/matchers/active_model/validate_inclusion_of_matcher.rb +16 -4
- data/lib/shoulda/matchers/active_model/validate_numericality_of_matcher.rb +67 -5
- data/lib/shoulda/matchers/active_record/validate_uniqueness_of_matcher.rb +35 -0
- data/lib/shoulda/matchers/util.rb +2 -0
- data/lib/shoulda/matchers/util/word_wrap.rb +178 -0
- data/lib/shoulda/matchers/version.rb +1 -1
- data/lib/shoulda/matchers/warn.rb +1 -10
- data/spec/acceptance_spec_helper.rb +2 -10
- data/spec/doublespeak_spec_helper.rb +1 -17
- data/spec/spec_helper.rb +23 -0
- data/spec/unit/shoulda/matchers/active_model/numericality_matchers/comparison_matcher_spec.rb +1 -1
- data/spec/unit/shoulda/matchers/active_model/numericality_matchers/even_number_matcher_spec.rb +5 -2
- data/spec/unit/shoulda/matchers/active_model/numericality_matchers/odd_number_matcher_spec.rb +5 -2
- data/spec/unit/shoulda/matchers/active_model/numericality_matchers/only_integer_matcher_spec.rb +5 -1
- data/spec/unit/shoulda/matchers/active_model/validate_inclusion_of_matcher_spec.rb +91 -4
- data/spec/unit/shoulda/matchers/active_model/validate_numericality_of_matcher_spec.rb +292 -2
- data/spec/unit/shoulda/matchers/active_record/validate_uniqueness_of_matcher_spec.rb +16 -2
- data/spec/unit/shoulda/matchers/util/word_wrap_spec.rb +197 -0
- data/spec/unit_spec_helper.rb +1 -16
- data/tasks/documentation.rb +10 -17
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2fe80273c48fdbadb3d479406470fa875abfcf61
|
4
|
+
data.tar.gz: 3cac554e34d73023e1e3cd5a65bc23291159ff87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df7679b9a7384f93e221a7a9a07411bd6e6f93cd3dc267e262e803b3c7359b3272b4adb037039e09662bf7bb6e9b31d094748109dec3e9050967df8d3691f8f8
|
7
|
+
data.tar.gz: f5c6cea2751c9cf331b96447af1d8f70c6ecd1edae2aac4c587361e438a14caa8cd8da563873135b0421450f28663e1c1b7c4f542182b9a5311cee1480d29520
|
data/.yardopts
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -30,11 +30,18 @@ GEM
|
|
30
30
|
yajl-ruby (~> 1.1.0)
|
31
31
|
rake (10.4.2)
|
32
32
|
redcarpet (3.0.0)
|
33
|
+
rspec (3.3.0)
|
34
|
+
rspec-core (~> 3.3.0)
|
35
|
+
rspec-expectations (~> 3.3.0)
|
36
|
+
rspec-mocks (~> 3.3.0)
|
33
37
|
rspec-core (3.3.2)
|
34
38
|
rspec-support (~> 3.3.0)
|
35
39
|
rspec-expectations (3.3.1)
|
36
40
|
diff-lcs (>= 1.2.0, < 2.0)
|
37
41
|
rspec-support (~> 3.3.0)
|
42
|
+
rspec-mocks (3.3.2)
|
43
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
44
|
+
rspec-support (~> 3.3.0)
|
38
45
|
rspec-support (3.3.0)
|
39
46
|
slop (3.6.0)
|
40
47
|
thor (0.19.1)
|
@@ -53,8 +60,7 @@ DEPENDENCIES
|
|
53
60
|
pygments.rb
|
54
61
|
rake (~> 10.0)
|
55
62
|
redcarpet
|
56
|
-
rspec
|
57
|
-
rspec-expectations (>= 3.2.0, < 4)
|
63
|
+
rspec (~> 3.2)
|
58
64
|
yard
|
59
65
|
|
60
66
|
BUNDLED WITH
|
data/NEWS.md
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
# 3.0.1
|
2
|
+
|
3
|
+
### Bug fixes
|
4
|
+
|
5
|
+
* Fix `validate_inclusion_of` + `in_array` when used against a date or datetime
|
6
|
+
column/attribute so that it does not raise a CouldNotSetAttributeError.
|
7
|
+
([#783], [8fa97b4])
|
8
|
+
|
9
|
+
* Fix `validate_numericality_of` when used against a numeric column so that it
|
10
|
+
no longer raises a CouldNotSetAttributeError if the matcher has been qualified
|
11
|
+
in any way (`only_integer`, `greater_than`, `odd`, etc.). ([#784], [#812])
|
12
|
+
|
13
|
+
### Improvements
|
14
|
+
|
15
|
+
* `validate_uniqueness_of` now raises a NonCaseSwappableValueError if the value
|
16
|
+
the matcher is using to test uniqueness cannot be case-swapped -- in other
|
17
|
+
words, if it doesn't contain any alpha characters. When this is the case, the
|
18
|
+
matcher cannot work effectively. ([#789], [ada9bd3])
|
19
|
+
|
20
|
+
[#783]: https://github.com/thoughtbot/shoulda-matchers/pull/783
|
21
|
+
[8fa97b4]: https://github.com/thoughtbot/shoulda-matchers/commit/8fa97b4ff33b57ce16dfb96be1ec892502f2aa9e
|
22
|
+
[#784]: https://github.com/thoughtbot/shoulda-matchers/pull/784
|
23
|
+
[#789]: https://github.com/thoughtbot/shoulda-matchers/pull/789
|
24
|
+
[ada9bd3]: https://github.com/thoughtbot/shoulda-matchers/commit/ada9bd3a1b9f2bb9fa74d0dfe1f8f7080314298c
|
25
|
+
[#812]: https://github.com/thoughtbot/shoulda-matchers/pull/812
|
26
|
+
|
1
27
|
# 3.0.0
|
2
28
|
|
3
29
|
### Backward-incompatible changes
|
@@ -150,7 +176,7 @@
|
|
150
176
|
|
151
177
|
([9d9dc4e])
|
152
178
|
|
153
|
-
* `validate_uniqueness_of` is now properly case-
|
179
|
+
* `validate_uniqueness_of` is now properly case-sensitive by default, to match
|
154
180
|
the default behavior of the validation itself. This is a backward-incompatible
|
155
181
|
change because this test which incorrectly passed before will now fail:
|
156
182
|
|
@@ -215,6 +241,8 @@
|
|
215
241
|
[#752]: https://github.com/thoughtbot/shoulda-matchers/pull/752
|
216
242
|
[9d9dc4e]: https://github.com/thoughtbot/shoulda-matchers/commit/9d9dc4e6b9cf2c19df66a1b4ba432ad8d3e5dded
|
217
243
|
[32c0e62]: https://github.com/thoughtbot/shoulda-matchers/commit/32c0e62596b87e37a301f87bbe21cfcc77750552
|
244
|
+
[af98a23]: https://github.com/thoughtbot/shoulda-matchers/commit/af98a23091551fb40aded5a8d4f9e5be926f53a9
|
245
|
+
[8cf449b]: https://github.com/thoughtbot/shoulda-matchers/commit/8cf449b4ca37d0d7446d2cabbfa5a1582358256d
|
218
246
|
|
219
247
|
### Bug fixes
|
220
248
|
|
data/README.md
CHANGED
@@ -4,10 +4,7 @@ Shoulda Matchers provides RSpec- and Minitest-compatible one-liners that test
|
|
4
4
|
common Rails functionality. These tests would otherwise be much longer, more
|
5
5
|
complex, and error-prone.
|
6
6
|
|
7
|
-
[View the official documentation for the latest version (
|
8
|
-
|
9
|
-
**Heads up! This is the README for the master branch. [You might be more
|
10
|
-
interested in the README for 2.8.0 instead.][2.8.0-README]**
|
7
|
+
[View the official documentation for the latest version (3.0.0).][rubydocs]
|
11
8
|
|
12
9
|
----
|
13
10
|
|
@@ -108,7 +105,7 @@ Include `shoulda-matchers` in your Gemfile:
|
|
108
105
|
|
109
106
|
``` ruby
|
110
107
|
group :test do
|
111
|
-
gem 'shoulda-matchers'
|
108
|
+
gem 'shoulda-matchers', '~> 3.0'
|
112
109
|
end
|
113
110
|
```
|
114
111
|
|
@@ -144,7 +141,7 @@ gem in your Gemfile instead:
|
|
144
141
|
|
145
142
|
```ruby
|
146
143
|
group :test do
|
147
|
-
gem 'shoulda'
|
144
|
+
gem 'shoulda', '~> 3.5'
|
148
145
|
end
|
149
146
|
```
|
150
147
|
|
@@ -161,10 +158,6 @@ end
|
|
161
158
|
|
162
159
|
### Configuration
|
163
160
|
|
164
|
-
**NOTE: The new configuration syntax isn't available in a public release just
|
165
|
-
yet -- please refer to the [README for 2.8.0][2.8.0-README] for the current
|
166
|
-
installation instructions.**
|
167
|
-
|
168
161
|
Before you can use Shoulda Matchers, you'll need to tell it a couple of things:
|
169
162
|
|
170
163
|
* Which test framework you're using
|
@@ -255,4 +248,3 @@ We are [available for hire][hire].
|
|
255
248
|
[contributors]: https://github.com/thoughtbot/shoulda-matchers/contributors
|
256
249
|
[shoulda]: http://github.com/thoughtbot/shoulda
|
257
250
|
[shoulda-context]: http://github.com/thoughtbot/shoulda-context
|
258
|
-
[2.8.0-README]: https://github.com/thoughtbot/shoulda-matchers/tree/v2.8.0#shoulda-matchers---
|
@@ -43,3 +43,20 @@ ul, ol {
|
|
43
43
|
margin-left: 1em;
|
44
44
|
padding-left: 1em;
|
45
45
|
}
|
46
|
+
|
47
|
+
p, blockquote {
|
48
|
+
margin-bottom: 1.25em;
|
49
|
+
}
|
50
|
+
|
51
|
+
blockquote {
|
52
|
+
font-style: italic;
|
53
|
+
padding-top: 0;
|
54
|
+
padding-bottom: 0;
|
55
|
+
padding-left: 1em;
|
56
|
+
}
|
57
|
+
|
58
|
+
blockquote p {
|
59
|
+
font-size: inherit;
|
60
|
+
font-weight: inherit;
|
61
|
+
line-height: inherit;
|
62
|
+
}
|
@@ -91,7 +91,7 @@ h4 + h5 {
|
|
91
91
|
#menu, #search {
|
92
92
|
height: 6rem;
|
93
93
|
line-height: 6rem;
|
94
|
-
|
94
|
+
font-size: 1.1em;
|
95
95
|
}
|
96
96
|
#main {
|
97
97
|
top: 6rem;
|
@@ -99,10 +99,9 @@ h4 + h5 {
|
|
99
99
|
|
100
100
|
#menu {
|
101
101
|
float: left;
|
102
|
-
letter-spacing: 1px;
|
103
102
|
padding-left: 2em;
|
104
103
|
position: relative;
|
105
|
-
width:
|
104
|
+
width: 45em;
|
106
105
|
}
|
107
106
|
|
108
107
|
#menu .noframes {
|
@@ -111,7 +110,6 @@ h4 + h5 {
|
|
111
110
|
|
112
111
|
#search {
|
113
112
|
float: right;
|
114
|
-
font-size: 0.9em;
|
115
113
|
}
|
116
114
|
|
117
115
|
#search ul {
|
@@ -201,6 +199,7 @@ h4 + h5 {
|
|
201
199
|
padding: 10px;
|
202
200
|
text-align: center;
|
203
201
|
text-shadow: 0 1px 1px rgba(0,0,0,0.4);
|
202
|
+
font-size: 0.9em;
|
204
203
|
}
|
205
204
|
|
206
205
|
#footer a {
|
@@ -5,7 +5,7 @@
|
|
5
5
|
</span> »
|
6
6
|
<% end %>
|
7
7
|
<% if @contents || @file %>
|
8
|
-
<span class="title"><%= @breadcrumb_title %></span>
|
8
|
+
<span class="title"><%= @breadcrumb_title.sub(/\AFile: /, "") %></span>
|
9
9
|
<% elsif object.is_a?(CodeObjects::Base) %>
|
10
10
|
<%= @breadcrumb.map {|obj| "<span class='title'>" + linkify(obj, obj.name) + "</span>" }.join(" » ") %>
|
11
11
|
<%= @breadcrumb.size > 0 ? " » " : "" %>
|
@@ -0,0 +1,111 @@
|
|
1
|
+
# @title NonCaseSwappableValueError
|
2
|
+
|
3
|
+
# NonCaseSwappableValueError
|
4
|
+
|
5
|
+
This error is raised when using `validate_uniqueness_of`. This matcher, of
|
6
|
+
course, tests that an attribute disallows a non-unique value -- and what
|
7
|
+
constitutes as "unique" depends on whether the case-sensitivity of that value
|
8
|
+
matters. If it does matter -- meaning that the uniqueness validation in your
|
9
|
+
model isn't using `case_sensitive: false` and you haven't qualified the matcher
|
10
|
+
with `case_insensitive` -- then the matcher will run the following test:
|
11
|
+
|
12
|
+
> Creating first a record with a value of "A":
|
13
|
+
>
|
14
|
+
> * A new record with a value of "A" should not be valid (failing the uniqueness
|
15
|
+
> validation)
|
16
|
+
> * A new record with a value of "a" should be valid
|
17
|
+
|
18
|
+
The test value we're using is in this case "A", and this is what the matcher
|
19
|
+
will use if an existing record is not already present in the database. But if
|
20
|
+
a record already exists, then the matcher will use it as comparison -- it will
|
21
|
+
read the attribute under test off of the record and use its value. So a better
|
22
|
+
example might be:
|
23
|
+
|
24
|
+
> Given an existing record with a value:
|
25
|
+
>
|
26
|
+
> * A new record with the same value should not be valid (failing the uniqueness
|
27
|
+
> validation)
|
28
|
+
> * A new record with the same value, but where the case is swapped (using
|
29
|
+
> String#swapcase), should be valid
|
30
|
+
|
31
|
+
Now, what happens if an existing record is there, but the value being used is
|
32
|
+
not one whose case can be swapped, such as `"123"` or `"{-#%}"`? Then the second
|
33
|
+
assertion cannot be made effectively.
|
34
|
+
|
35
|
+
So this is why you're getting this exception. What can you do about it? As the
|
36
|
+
error message explains, you have two options:
|
37
|
+
|
38
|
+
1. If you want the uniqueness validation in the model to operate
|
39
|
+
case-sensitively and you didn't mean to use a non-case-swappable value,
|
40
|
+
then you need to provide an existing record with a different value, one that
|
41
|
+
contains alpha characters. Here's an example:
|
42
|
+
|
43
|
+
# Model
|
44
|
+
class User < ActiveRecord::Base
|
45
|
+
validates_uniqueness_of :username
|
46
|
+
end
|
47
|
+
|
48
|
+
# RSpec
|
49
|
+
describe User do
|
50
|
+
context "validations" do
|
51
|
+
subject do
|
52
|
+
# Note that "123" == "123".swapcase. This is a problem!
|
53
|
+
User.new(username: "123")
|
54
|
+
end
|
55
|
+
|
56
|
+
it do
|
57
|
+
# So you can either override it like this, or just fix the subject.
|
58
|
+
user = User.create!(username: "john123")
|
59
|
+
expect(user).to validate_uniqueness_of(:username)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
# Minitest (Shoulda)
|
65
|
+
class UserTest < ActiveSupport::TestCase
|
66
|
+
context "validations" do
|
67
|
+
subject do
|
68
|
+
# Note that "123" == "123".swapcase. This is a problem!
|
69
|
+
User.new(username: "123")
|
70
|
+
end
|
71
|
+
|
72
|
+
should "validate uniqueness of :username" do
|
73
|
+
# So you can either override it like this, or just fix the subject.
|
74
|
+
user = User.create!(username: "john123")
|
75
|
+
assert_accepts validate_uniqueness_of(:username), record
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
2. If you don't want the uniqueness validation to operate case-sensitively,
|
81
|
+
then you need to add `case_sensitive: false` to the validation and add
|
82
|
+
`case_insensitive` to the matcher:
|
83
|
+
|
84
|
+
# Model
|
85
|
+
class User < ActiveRecord::Base
|
86
|
+
validates_uniqueness_of :username, case_sensitive: false
|
87
|
+
end
|
88
|
+
|
89
|
+
# RSpec
|
90
|
+
describe User do
|
91
|
+
context "validations" do
|
92
|
+
subject do
|
93
|
+
# Note that "123" == "123".swapcase, but it's okay
|
94
|
+
User.new(username: "123")
|
95
|
+
end
|
96
|
+
|
97
|
+
it { should validate_uniqueness_of(:username).case_insensitive }
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
# Minitest (Shoulda)
|
102
|
+
class UserTest < ActiveSupport::TestCase
|
103
|
+
context "validations" do
|
104
|
+
subject do
|
105
|
+
# Note that "123" == "123".swapcase, but it's okay
|
106
|
+
User.new(username: "123")
|
107
|
+
end
|
108
|
+
|
109
|
+
should validate_uniqueness_of(:username).case_insensitive
|
110
|
+
end
|
111
|
+
end
|
data/gemfiles/4.0.0.gemfile
CHANGED
@@ -7,8 +7,7 @@ gem "bundler", "~> 1.1"
|
|
7
7
|
gem "pry", :github => "pry/pry"
|
8
8
|
gem "pry-byebug"
|
9
9
|
gem "rake", "~> 10.0"
|
10
|
-
gem "rspec
|
11
|
-
gem "rspec-expectations", ">= 3.2.0", "< 4"
|
10
|
+
gem "rspec", "~> 3.2"
|
12
11
|
gem "yard"
|
13
12
|
gem "redcarpet"
|
14
13
|
gem "pygments.rb"
|
data/gemfiles/4.0.0.gemfile.lock
CHANGED
@@ -118,6 +118,10 @@ GEM
|
|
118
118
|
rake (10.4.2)
|
119
119
|
rdoc (4.2.0)
|
120
120
|
redcarpet (3.3.2)
|
121
|
+
rspec (3.3.0)
|
122
|
+
rspec-core (~> 3.3.0)
|
123
|
+
rspec-expectations (~> 3.3.0)
|
124
|
+
rspec-mocks (~> 3.3.0)
|
121
125
|
rspec-core (3.3.2)
|
122
126
|
rspec-support (~> 3.3.0)
|
123
127
|
rspec-expectations (3.3.1)
|
@@ -199,8 +203,7 @@ DEPENDENCIES
|
|
199
203
|
rails (= 4.0.0)
|
200
204
|
rake (~> 10.0)
|
201
205
|
redcarpet
|
202
|
-
rspec
|
203
|
-
rspec-expectations (>= 3.2.0, < 4)
|
206
|
+
rspec (~> 3.2)
|
204
207
|
rspec-rails (>= 3.2.0, < 4)
|
205
208
|
sass-rails (~> 4.0.0)
|
206
209
|
sdoc
|
data/gemfiles/4.0.1.gemfile
CHANGED
@@ -7,8 +7,7 @@ gem "bundler", "~> 1.1"
|
|
7
7
|
gem "pry", :github => "pry/pry"
|
8
8
|
gem "pry-byebug"
|
9
9
|
gem "rake", "~> 10.0"
|
10
|
-
gem "rspec
|
11
|
-
gem "rspec-expectations", ">= 3.2.0", "< 4"
|
10
|
+
gem "rspec", "~> 3.2"
|
12
11
|
gem "yard"
|
13
12
|
gem "redcarpet"
|
14
13
|
gem "pygments.rb"
|
data/gemfiles/4.0.1.gemfile.lock
CHANGED
@@ -120,6 +120,10 @@ GEM
|
|
120
120
|
rake (10.4.2)
|
121
121
|
rdoc (4.2.0)
|
122
122
|
redcarpet (3.3.2)
|
123
|
+
rspec (3.3.0)
|
124
|
+
rspec-core (~> 3.3.0)
|
125
|
+
rspec-expectations (~> 3.3.0)
|
126
|
+
rspec-mocks (~> 3.3.0)
|
123
127
|
rspec-core (3.3.2)
|
124
128
|
rspec-support (~> 3.3.0)
|
125
129
|
rspec-expectations (3.3.1)
|
@@ -201,8 +205,7 @@ DEPENDENCIES
|
|
201
205
|
rails (= 4.0.1)
|
202
206
|
rake (~> 10.0)
|
203
207
|
redcarpet
|
204
|
-
rspec
|
205
|
-
rspec-expectations (>= 3.2.0, < 4)
|
208
|
+
rspec (~> 3.2)
|
206
209
|
rspec-rails (>= 3.2.0, < 4)
|
207
210
|
sass-rails (~> 4.0.0)
|
208
211
|
sdoc
|
data/gemfiles/4.1.gemfile
CHANGED
@@ -7,8 +7,7 @@ gem "bundler", "~> 1.1"
|
|
7
7
|
gem "pry", :github => "pry/pry"
|
8
8
|
gem "pry-byebug"
|
9
9
|
gem "rake", "~> 10.0"
|
10
|
-
gem "rspec
|
11
|
-
gem "rspec-expectations", ">= 3.2.0", "< 4"
|
10
|
+
gem "rspec", "~> 3.2"
|
12
11
|
gem "yard"
|
13
12
|
gem "redcarpet"
|
14
13
|
gem "pygments.rb"
|
data/gemfiles/4.1.gemfile.lock
CHANGED
@@ -116,6 +116,10 @@ GEM
|
|
116
116
|
rake (10.4.2)
|
117
117
|
rdoc (4.2.0)
|
118
118
|
redcarpet (3.3.2)
|
119
|
+
rspec (3.3.0)
|
120
|
+
rspec-core (~> 3.3.0)
|
121
|
+
rspec-expectations (~> 3.3.0)
|
122
|
+
rspec-mocks (~> 3.3.0)
|
119
123
|
rspec-core (3.3.2)
|
120
124
|
rspec-support (~> 3.3.0)
|
121
125
|
rspec-expectations (3.3.1)
|
@@ -196,8 +200,7 @@ DEPENDENCIES
|
|
196
200
|
rails (~> 4.1.0)
|
197
201
|
rake (~> 10.0)
|
198
202
|
redcarpet
|
199
|
-
rspec
|
200
|
-
rspec-expectations (>= 3.2.0, < 4)
|
203
|
+
rspec (~> 3.2)
|
201
204
|
rspec-rails (>= 3.2.0, < 4)
|
202
205
|
sass-rails (~> 4.0.3)
|
203
206
|
sdoc (~> 0.4.0)
|