rspec-expectations 2.9.0 → 2.9.1
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/Changelog.md +12 -1
- data/lib/rspec/expectations/differ.rb +13 -8
- data/lib/rspec/expectations/fail_with.rb +2 -1
- data/lib/rspec/expectations/version.rb +1 -1
- data/lib/rspec/matchers/block_aliases.rb +1 -0
- data/lib/rspec/matchers/dsl.rb +4 -3
- data/lib/rspec/matchers/matcher.rb +6 -5
- data/spec/rspec/expectations/differ_spec.rb +84 -75
- data/spec/rspec/matchers/dsl_spec.rb +16 -0
- data/spec/rspec/matchers/include_spec.rb +12 -0
- metadata +75 -86
data/Changelog.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
### 2.9.1 / 2012-04-03
|
2
|
+
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.9.0...2.9.1)
|
3
|
+
|
4
|
+
Bug fixes
|
5
|
+
|
6
|
+
* Provide a helpful message if the diff between two objects is empty.
|
7
|
+
* Fix bug diffing single strings with multiline strings.
|
8
|
+
* Fix for error with using custom matchers inside other custom matchers
|
9
|
+
(mirasrael)
|
10
|
+
* Fix using execution context methods in nested DSL matchers (mirasrael)
|
11
|
+
|
1
12
|
### 2.9.0 / 2012-03-17
|
2
13
|
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.8.0...v2.9.0)
|
3
14
|
|
@@ -9,7 +20,7 @@ Enhancements
|
|
9
20
|
|
10
21
|
Bug fixes
|
11
22
|
|
12
|
-
* Align respond_to
|
23
|
+
* Align `respond_to?` and `method_missing` in DSL-defined matchers.
|
13
24
|
* Clear out user-defined instance variables between invocations of DSL-defined
|
14
25
|
matchers.
|
15
26
|
* Dup the instance of a DSL generated matcher so its state is not changed by
|
@@ -5,15 +5,12 @@ require 'pp'
|
|
5
5
|
module RSpec
|
6
6
|
module Expectations
|
7
7
|
class Differ
|
8
|
-
def initialize(ignore=nil)
|
9
|
-
end
|
10
|
-
|
11
8
|
# This is snagged from diff/lcs/ldiff.rb (which is a commandline tool)
|
12
9
|
def diff_as_string(data_new, data_old)
|
13
10
|
data_old = data_old.split(/\n/).map! { |e| e.chomp }
|
14
11
|
data_new = data_new.split(/\n/).map! { |e| e.chomp }
|
15
|
-
output = ""
|
16
12
|
diffs = Diff::LCS.diff(data_old, data_new)
|
13
|
+
output = ""
|
17
14
|
return output if diffs.empty?
|
18
15
|
oldhunk = hunk = nil
|
19
16
|
file_length_difference = 0
|
@@ -41,10 +38,18 @@ module RSpec
|
|
41
38
|
output << oldhunk.diff(format) << "\n"
|
42
39
|
end
|
43
40
|
|
44
|
-
def diff_as_object(actual,expected)
|
45
|
-
|
46
|
-
|
47
|
-
diff_as_string(
|
41
|
+
def diff_as_object(actual, expected)
|
42
|
+
actual_as_string = object_to_string(actual)
|
43
|
+
expected_as_string = object_to_string(expected)
|
44
|
+
diff = diff_as_string(actual_as_string, expected_as_string)
|
45
|
+
|
46
|
+
if diff.empty?
|
47
|
+
"#{actual}.==(#{expected}) returned false even though the diff " \
|
48
|
+
"between #{actual} and #{expected} is empty. Check the " \
|
49
|
+
"implementation of #{actual}.==."
|
50
|
+
else
|
51
|
+
diff
|
52
|
+
end
|
48
53
|
end
|
49
54
|
|
50
55
|
protected
|
@@ -5,7 +5,7 @@ module RSpec
|
|
5
5
|
def differ
|
6
6
|
@differ ||= Differ.new
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
# Raises an RSpec::Expectations::ExpectationNotMetError with message.
|
10
10
|
# @param [String] message
|
11
11
|
# @param [Object] expected
|
@@ -22,6 +22,7 @@ module RSpec
|
|
22
22
|
if actual && expected
|
23
23
|
if all_strings?(actual, expected)
|
24
24
|
if any_multiline_strings?(actual, expected)
|
25
|
+
expected = expected.join(',') if Array === expected
|
25
26
|
message << "\nDiff:" << differ.diff_as_string(actual, expected)
|
26
27
|
end
|
27
28
|
elsif no_procs?(actual, expected) && no_numbers?(actual, expected)
|
data/lib/rspec/matchers/dsl.rb
CHANGED
@@ -4,10 +4,11 @@ module RSpec
|
|
4
4
|
# Defines a custom matcher.
|
5
5
|
# @see RSpec::Matchers
|
6
6
|
def define(name, &declarations)
|
7
|
-
|
7
|
+
matcher_template = RSpec::Matchers::DSL::Matcher.new(name, &declarations)
|
8
8
|
define_method name do |*expected|
|
9
|
-
|
10
|
-
matcher.
|
9
|
+
matcher = matcher_template.for_expected(*expected)
|
10
|
+
matcher.matcher_execution_context = @matcher_execution_context || self
|
11
|
+
matcher
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
@@ -11,6 +11,7 @@ module RSpec
|
|
11
11
|
include RSpec::Matchers
|
12
12
|
|
13
13
|
attr_reader :expected, :actual, :rescued_exception
|
14
|
+
attr_accessor :matcher_execution_context
|
14
15
|
|
15
16
|
# @api private
|
16
17
|
def initialize(name, &declarations)
|
@@ -23,7 +24,7 @@ module RSpec
|
|
23
24
|
@messages = {}
|
24
25
|
end
|
25
26
|
|
26
|
-
|
27
|
+
PERSISTENT_INSTANCE_VARIABLES = [
|
27
28
|
:@name, :@declarations, :@diffable, :@messages,
|
28
29
|
:@match_block, :@match_for_should_not_block,
|
29
30
|
:@expected_exception
|
@@ -34,7 +35,7 @@ module RSpec
|
|
34
35
|
@expected = expected
|
35
36
|
dup.instance_eval do
|
36
37
|
instance_variables.map {|ivar| ivar.intern}.each do |ivar|
|
37
|
-
instance_variable_set(ivar, nil) unless (
|
38
|
+
instance_variable_set(ivar, nil) unless (PERSISTENT_INSTANCE_VARIABLES + [:@expected]).include?(ivar)
|
38
39
|
end
|
39
40
|
making_declared_methods_public do
|
40
41
|
instance_eval_with_args(*@expected, &@declarations)
|
@@ -222,14 +223,14 @@ module RSpec
|
|
222
223
|
end
|
223
224
|
|
224
225
|
def respond_to?(method, include_private=false)
|
225
|
-
|
226
|
+
super || @matcher_execution_context.respond_to?(method, include_private)
|
226
227
|
end
|
227
228
|
|
228
229
|
private
|
229
230
|
|
230
231
|
def method_missing(method, *args, &block)
|
231
|
-
if
|
232
|
-
|
232
|
+
if @matcher_execution_context.respond_to?(method)
|
233
|
+
@matcher_execution_context.send method, *args, &block
|
233
234
|
else
|
234
235
|
super(method, *args, &block)
|
235
236
|
end
|
@@ -2,34 +2,15 @@ require 'spec_helper'
|
|
2
2
|
require 'ostruct'
|
3
3
|
|
4
4
|
module RSpec
|
5
|
-
module
|
6
|
-
|
7
|
-
|
8
|
-
@name,@species = name,species
|
9
|
-
end
|
5
|
+
module Expectations
|
6
|
+
describe Differ do
|
7
|
+
let(:differ) { RSpec::Expectations::Differ.new }
|
10
8
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
>
|
17
|
-
EOA
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
describe "Diff" do
|
24
|
-
before(:each) do
|
25
|
-
@options = OpenStruct.new(:diff_format => :unified, :context_lines => 3)
|
26
|
-
@differ = RSpec::Expectations::Differ.new(@options)
|
27
|
-
end
|
28
|
-
|
29
|
-
it "outputs unified diff of two strings" do
|
30
|
-
expected="foo\nbar\nzap\nthis\nis\nsoo\nvery\nvery\nequal\ninsert\na\nline\n"
|
31
|
-
actual="foo\nzap\nbar\nthis\nis\nsoo\nvery\nvery\nequal\ninsert\na\nanother\nline\n"
|
32
|
-
expected_diff= <<'EOD'
|
9
|
+
describe '#diff_as_string' do
|
10
|
+
it "outputs unified diff of two strings" do
|
11
|
+
expected="foo\nbar\nzap\nthis\nis\nsoo\nvery\nvery\nequal\ninsert\na\nline\n"
|
12
|
+
actual="foo\nzap\nbar\nthis\nis\nsoo\nvery\nvery\nequal\ninsert\na\nanother\nline\n"
|
13
|
+
expected_diff= <<'EOD'
|
33
14
|
|
34
15
|
|
35
16
|
@@ -1,6 +1,6 @@
|
@@ -48,15 +29,58 @@ describe "Diff" do
|
|
48
29
|
line
|
49
30
|
EOD
|
50
31
|
|
51
|
-
|
52
|
-
|
53
|
-
|
32
|
+
diff = differ.diff_as_string(expected, actual)
|
33
|
+
diff.should eql(expected_diff)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe '#diff_as_object' do
|
38
|
+
it "outputs unified diff message of two objects" do
|
39
|
+
animal_class = Class.new do
|
40
|
+
def initialize(name, species)
|
41
|
+
@name, @species = name, species
|
42
|
+
end
|
54
43
|
|
55
|
-
|
56
|
-
|
57
|
-
|
44
|
+
def inspect
|
45
|
+
<<-EOA
|
46
|
+
<Animal
|
47
|
+
name=#{@name},
|
48
|
+
species=#{@species}
|
49
|
+
>
|
50
|
+
EOA
|
51
|
+
end
|
52
|
+
end
|
58
53
|
|
59
|
-
|
54
|
+
expected = animal_class.new "bob", "giraffe"
|
55
|
+
actual = animal_class.new "bob", "tortoise"
|
56
|
+
|
57
|
+
expected_diff = <<'EOD'
|
58
|
+
|
59
|
+
@@ -1,5 +1,5 @@
|
60
|
+
<Animal
|
61
|
+
name=bob,
|
62
|
+
- species=tortoise
|
63
|
+
+ species=giraffe
|
64
|
+
>
|
65
|
+
EOD
|
66
|
+
|
67
|
+
diff = differ.diff_as_object(expected,actual)
|
68
|
+
diff.should == expected_diff
|
69
|
+
end
|
70
|
+
|
71
|
+
it "outputs a message if the diff is empty" do
|
72
|
+
diff = differ.diff_as_object('foo', 'foo')
|
73
|
+
diff.should eq(
|
74
|
+
"foo.==(foo) returned false even though the diff between " \
|
75
|
+
"foo and foo is empty. Check the implementation of foo.==."
|
76
|
+
)
|
77
|
+
end
|
78
|
+
|
79
|
+
it "outputs unified diff message of two arrays" do
|
80
|
+
expected = [ :foo, 'bar', :baz, 'quux', :metasyntactic, 'variable', :delta, 'charlie', :width, 'quite wide' ]
|
81
|
+
actual = [ :foo, 'bar', :baz, 'quux', :metasyntactic, 'variable', :delta, 'tango' , :width, 'very wide' ]
|
82
|
+
|
83
|
+
expected_diff = <<'EOD'
|
60
84
|
|
61
85
|
|
62
86
|
@@ -5,7 +5,7 @@
|
@@ -70,33 +94,15 @@ EOD
|
|
70
94
|
+ "quite wide"]
|
71
95
|
EOD
|
72
96
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
it "outputs unified diff message of two objects" do
|
78
|
-
expected = RSpec::Fixtures::Animal.new "bob", "giraffe"
|
79
|
-
actual = RSpec::Fixtures::Animal.new "bob", "tortoise"
|
80
|
-
|
81
|
-
expected_diff = <<'EOD'
|
82
|
-
|
83
|
-
@@ -1,5 +1,5 @@
|
84
|
-
<Animal
|
85
|
-
name=bob,
|
86
|
-
- species=tortoise
|
87
|
-
+ species=giraffe
|
88
|
-
>
|
89
|
-
EOD
|
90
|
-
|
91
|
-
diff = @differ.diff_as_object(expected,actual)
|
92
|
-
diff.should == expected_diff
|
93
|
-
end
|
97
|
+
diff = differ.diff_as_object(expected,actual)
|
98
|
+
diff.should == expected_diff
|
99
|
+
end
|
94
100
|
|
95
|
-
|
96
|
-
|
97
|
-
|
101
|
+
it "outputs unified diff message of two hashes" do
|
102
|
+
expected = { :foo => 'bar', :baz => 'quux', :metasyntactic => 'variable', :delta => 'charlie', :width =>'quite wide' }
|
103
|
+
actual = { :foo => 'bar', :metasyntactic => 'variable', :delta => 'charlotte', :width =>'quite wide' }
|
98
104
|
|
99
|
-
|
105
|
+
expected_diff = <<'EOD'
|
100
106
|
|
101
107
|
@@ -1,4 +1,5 @@
|
102
108
|
-:delta => "charlotte",
|
@@ -107,30 +113,30 @@ EOD
|
|
107
113
|
:width => "quite wide"
|
108
114
|
EOD
|
109
115
|
|
110
|
-
|
111
|
-
|
112
|
-
|
116
|
+
diff = differ.diff_as_object(expected,actual)
|
117
|
+
diff.should == expected_diff
|
118
|
+
end
|
113
119
|
|
114
|
-
|
115
|
-
|
116
|
-
|
120
|
+
it "outputs unified diff of single line strings" do
|
121
|
+
expected = "this is one string"
|
122
|
+
actual = "this is another string"
|
117
123
|
|
118
|
-
|
124
|
+
expected_diff = <<'EOD'
|
119
125
|
|
120
126
|
@@ -1,2 +1,2 @@
|
121
127
|
-"this is another string"
|
122
128
|
+"this is one string"
|
123
129
|
EOD
|
124
130
|
|
125
|
-
|
126
|
-
|
127
|
-
|
131
|
+
diff = differ.diff_as_object(expected,actual)
|
132
|
+
diff.should == expected_diff
|
133
|
+
end
|
128
134
|
|
129
|
-
|
130
|
-
|
131
|
-
|
135
|
+
it "outputs unified diff of multi line strings" do
|
136
|
+
expected = "this is:\n one string"
|
137
|
+
actual = "this is:\n another string"
|
132
138
|
|
133
|
-
|
139
|
+
expected_diff = <<'EOD'
|
134
140
|
|
135
141
|
@@ -1,3 +1,3 @@
|
136
142
|
this is:
|
@@ -138,7 +144,10 @@ EOD
|
|
138
144
|
+ one string
|
139
145
|
EOD
|
140
146
|
|
141
|
-
|
142
|
-
|
147
|
+
diff = differ.diff_as_object(expected,actual)
|
148
|
+
diff.should == expected_diff
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
143
152
|
end
|
144
153
|
end
|
@@ -5,6 +5,22 @@ describe "a matcher defined using the matcher DSL" do
|
|
5
5
|
:answer
|
6
6
|
end
|
7
7
|
|
8
|
+
def ok
|
9
|
+
"ok"
|
10
|
+
end
|
11
|
+
|
12
|
+
it "supports calling custom matchers from within other custom matchers" do
|
13
|
+
RSpec::Matchers.define :be_ok do
|
14
|
+
match { |actual| actual == ok }
|
15
|
+
end
|
16
|
+
|
17
|
+
RSpec::Matchers.define :be_well do
|
18
|
+
match { |actual| actual.should be_ok }
|
19
|
+
end
|
20
|
+
|
21
|
+
ok.should be_well
|
22
|
+
end
|
23
|
+
|
8
24
|
it "has access to methods available in the scope of the example" do
|
9
25
|
RSpec::Matchers::define(:ignore) {}
|
10
26
|
ignore.question?.should eq(:answer)
|
@@ -16,6 +16,18 @@ describe "#include matcher" do
|
|
16
16
|
"abc".should include("d")
|
17
17
|
}.should fail_matching("expected \"abc\" to include \"d\"")
|
18
18
|
end
|
19
|
+
|
20
|
+
it "includes a diff when actual is multiline" do
|
21
|
+
lambda {
|
22
|
+
"abc\ndef".should include("g")
|
23
|
+
}.should fail_matching("expected \"abc\\ndef\" to include \"g\"\nDiff")
|
24
|
+
end
|
25
|
+
|
26
|
+
it "includes a diff when actual is multiline and there are multiple expecteds" do
|
27
|
+
lambda {
|
28
|
+
"abc\ndef".should include("g", "h")
|
29
|
+
}.should fail_matching("expected \"abc\\ndef\" to include \"g\" and \"h\"\nDiff")
|
30
|
+
end
|
19
31
|
end
|
20
32
|
|
21
33
|
context "for an array target" do
|
metadata
CHANGED
@@ -1,96 +1,87 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-expectations
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.9.1
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 9
|
9
|
-
- 0
|
10
|
-
version: 2.9.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Steven Baker
|
14
9
|
- David Chelimsky
|
15
10
|
autorequire:
|
16
11
|
bindir: bin
|
17
12
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
13
|
+
date: 2012-04-03 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: diff-lcs
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
23
18
|
none: false
|
24
|
-
requirements:
|
19
|
+
requirements:
|
25
20
|
- - ~>
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
hash: 21
|
28
|
-
segments:
|
29
|
-
- 1
|
30
|
-
- 1
|
31
|
-
- 3
|
21
|
+
- !ruby/object:Gem::Version
|
32
22
|
version: 1.1.3
|
33
|
-
prerelease: false
|
34
|
-
requirement: *id001
|
35
|
-
name: diff-lcs
|
36
23
|
type: :runtime
|
37
|
-
|
38
|
-
version_requirements:
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
26
|
none: false
|
40
|
-
requirements:
|
27
|
+
requirements:
|
41
28
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
|
45
|
-
- 0
|
46
|
-
- 9
|
47
|
-
- 2
|
48
|
-
version: 0.9.2
|
49
|
-
prerelease: false
|
50
|
-
requirement: *id002
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 1.1.3
|
31
|
+
- !ruby/object:Gem::Dependency
|
51
32
|
name: rake
|
52
|
-
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
55
34
|
none: false
|
56
|
-
requirements:
|
35
|
+
requirements:
|
57
36
|
- - ~>
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
|
61
|
-
- 1
|
62
|
-
- 1
|
63
|
-
- 9
|
64
|
-
version: 1.1.9
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: 0.9.2
|
39
|
+
type: :development
|
65
40
|
prerelease: false
|
66
|
-
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.9.2
|
47
|
+
- !ruby/object:Gem::Dependency
|
67
48
|
name: cucumber
|
68
|
-
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
version_requirements: &id004 !ruby/object:Gem::Requirement
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
71
50
|
none: false
|
72
|
-
requirements:
|
51
|
+
requirements:
|
73
52
|
- - ~>
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
|
77
|
-
- 0
|
78
|
-
- 4
|
79
|
-
- 11
|
80
|
-
version: 0.4.11
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.1.9
|
55
|
+
type: :development
|
81
56
|
prerelease: false
|
82
|
-
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 1.1.9
|
63
|
+
- !ruby/object:Gem::Dependency
|
83
64
|
name: aruba
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ~>
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 0.4.11
|
84
71
|
type: :development
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 0.4.11
|
85
79
|
description: rspec expectations (should[_not] and matchers)
|
86
80
|
email: rspec-users@rubyforge.org
|
87
81
|
executables: []
|
88
|
-
|
89
82
|
extensions: []
|
90
|
-
|
91
83
|
extra_rdoc_files: []
|
92
|
-
|
93
|
-
files:
|
84
|
+
files:
|
94
85
|
- lib/rspec-expectations.rb
|
95
86
|
- lib/rspec/expectations.rb
|
96
87
|
- lib/rspec/expectations/deprecation.rb
|
@@ -207,39 +198,38 @@ files:
|
|
207
198
|
- spec/support/matchers.rb
|
208
199
|
- spec/support/ruby_version.rb
|
209
200
|
homepage: http://github.com/rspec/rspec-expectations
|
210
|
-
licenses:
|
201
|
+
licenses:
|
211
202
|
- MIT
|
212
203
|
post_install_message:
|
213
|
-
rdoc_options:
|
204
|
+
rdoc_options:
|
214
205
|
- --charset=UTF-8
|
215
|
-
require_paths:
|
206
|
+
require_paths:
|
216
207
|
- lib
|
217
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
208
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
218
209
|
none: false
|
219
|
-
requirements:
|
220
|
-
- -
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
|
223
|
-
segments:
|
210
|
+
requirements:
|
211
|
+
- - ! '>='
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '0'
|
214
|
+
segments:
|
224
215
|
- 0
|
225
|
-
|
226
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
|
+
hash: -382523939105044110
|
217
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
227
218
|
none: false
|
228
|
-
requirements:
|
229
|
-
- -
|
230
|
-
- !ruby/object:Gem::Version
|
231
|
-
|
232
|
-
segments:
|
219
|
+
requirements:
|
220
|
+
- - ! '>='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
segments:
|
233
224
|
- 0
|
234
|
-
|
225
|
+
hash: -382523939105044110
|
235
226
|
requirements: []
|
236
|
-
|
237
227
|
rubyforge_project: rspec
|
238
|
-
rubygems_version: 1.8.
|
228
|
+
rubygems_version: 1.8.21
|
239
229
|
signing_key:
|
240
230
|
specification_version: 3
|
241
|
-
summary: rspec-expectations-2.9.
|
242
|
-
test_files:
|
231
|
+
summary: rspec-expectations-2.9.1
|
232
|
+
test_files:
|
243
233
|
- features/README.markdown
|
244
234
|
- features/Upgrade.md
|
245
235
|
- features/built_in_matchers/README.md
|
@@ -306,4 +296,3 @@ test_files:
|
|
306
296
|
- spec/support/classes.rb
|
307
297
|
- spec/support/matchers.rb
|
308
298
|
- spec/support/ruby_version.rb
|
309
|
-
has_rdoc:
|