bogus 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/.travis.yml +1 -0
  2. data/Gemfile.lock +6 -1
  3. data/README.md +3 -0
  4. data/features/changelog.md +30 -22
  5. data/features/configuration/fake_ar_attributes.feature +3 -1
  6. data/features/configuration/search_modules.feature +5 -0
  7. data/features/contract_tests/contract_tests_mocks.feature +12 -1
  8. data/features/contract_tests/contract_tests_spies.feature +14 -2
  9. data/features/contract_tests/contract_tests_stubs.feature +13 -2
  10. data/features/contract_tests/return_value_contracts.feature +15 -4
  11. data/features/fakes/anonymous_doubles.feature +15 -1
  12. data/features/fakes/duck_types.feature +12 -2
  13. data/features/fakes/fake_objects.feature +11 -1
  14. data/features/fakes/global_fake_configuration.feature +4 -1
  15. data/features/readme.md +2 -2
  16. data/features/safe_stubbing/argument_matchers.feature +32 -2
  17. data/features/safe_stubbing/safe_mocking.feature +9 -2
  18. data/features/safe_stubbing/safe_stubbing.feature +11 -2
  19. data/features/safe_stubbing/spies.feature +52 -1
  20. data/features/step_definitions/rspec_steps.rb +1 -2
  21. data/features/support/env.rb +19 -0
  22. data/lib/bogus/active_record_accessors.rb +4 -4
  23. data/lib/bogus/adds_recording.rb +1 -0
  24. data/lib/bogus/any_args.rb +32 -3
  25. data/lib/bogus/class_methods.rb +7 -1
  26. data/lib/bogus/copies_classes.rb +5 -2
  27. data/lib/bogus/fake.rb +0 -2
  28. data/lib/bogus/have_received_matcher.rb +5 -0
  29. data/lib/bogus/interaction.rb +66 -35
  30. data/lib/bogus/interactions_repository.rb +1 -1
  31. data/lib/bogus/makes_substitute_methods.rb +3 -2
  32. data/lib/bogus/mocking_dsl.rb +8 -0
  33. data/lib/bogus/public_methods.rb +1 -1
  34. data/lib/bogus/rspec_extensions.rb +8 -1
  35. data/lib/bogus/same_class.rb +14 -0
  36. data/lib/bogus/shadow.rb +8 -12
  37. data/lib/bogus/verifies_stub_definition.rb +1 -5
  38. data/lib/bogus/version.rb +1 -1
  39. data/spec/bogus/adds_recording_spec.rb +8 -0
  40. data/spec/bogus/class_methods_spec.rb +8 -2
  41. data/spec/bogus/clean_ruby_spec.rb +15 -0
  42. data/spec/bogus/have_received_matcher_spec.rb +45 -27
  43. data/spec/bogus/instance_methods_spec.rb +1 -1
  44. data/spec/bogus/interaction_spec.rb +87 -83
  45. data/spec/bogus/interactions_repository_spec.rb +8 -11
  46. data/spec/bogus/shadow_spec.rb +4 -1
  47. metadata +81 -39
  48. checksums.yaml +0 -7
@@ -11,46 +11,64 @@ describe Bogus::HaveReceivedMatcher do
11
11
  fake.foo("a", "b")
12
12
  end
13
13
 
14
- it "matches when the spy has received the message" do
15
- fake.should have_received.foo("a", "b")
16
- end
14
+ shared_examples_for "have_received_matcher" do
15
+ it "matches when the spy has received the message" do
16
+ fake.should have_received(:foo, "a", "b")
17
+ end
17
18
 
18
- it "does not match if the spy hasn't received the message" do
19
- fake.should_not have_received.foo("a", "c")
20
- end
19
+ it "does not match if the spy hasn't received the message" do
20
+ fake.should_not have_received(:foo, "a", "c")
21
+ end
21
22
 
22
- it "verifies that the method call has the right signature" do
23
- mock(verifies_stub_definition).verify!(fake, :foo, ["a", "b"])
23
+ it "verifies that the method call has the right signature" do
24
+ mock(verifies_stub_definition).verify!(fake, :foo, ["a", "b"])
24
25
 
25
- have_received.foo("a", "b")
26
+ have_received(:foo, "a", "b")
26
27
 
27
- have_received_matcher.matches?(fake)
28
- end
28
+ have_received_matcher.matches?(fake)
29
+ end
29
30
 
30
- it "records the interaction so that it can be checked by contract tests" do
31
- mock(records_double_interactions).record(fake, :foo, ["a", "b"])
31
+ it "records the interaction so that it can be checked by contract tests" do
32
+ mock(records_double_interactions).record(fake, :foo, ["a", "b"])
32
33
 
33
- have_received.foo("a", "b")
34
+ have_received(:foo, "a", "b")
34
35
 
35
- have_received_matcher.matches?(fake)
36
- end
36
+ have_received_matcher.matches?(fake)
37
+ end
37
38
 
38
- it "returns a readable error message for object with no shadow" do
39
- have_received.upcase
39
+ it "returns a readable error message for object with no shadow" do
40
+ have_received(:upcase)
40
41
 
41
- have_received_matcher.matches?("foo").should be_false
42
- have_received_matcher.failure_message_for_should.should == Bogus::HaveReceivedMatcher::NO_SHADOW
43
- have_received_matcher.failure_message_for_should_not.should == Bogus::HaveReceivedMatcher::NO_SHADOW
44
- end
42
+ have_received_matcher.matches?("foo").should be_false
43
+ have_received_matcher.failure_message_for_should.should == Bogus::HaveReceivedMatcher::NO_SHADOW
44
+ have_received_matcher.failure_message_for_should_not.should == Bogus::HaveReceivedMatcher::NO_SHADOW
45
+ end
45
46
 
46
- it "returns a readable error message for fakes" do
47
- have_received.foo("a", "c")
47
+ it "returns a readable error message for fakes" do
48
+ have_received(:foo, "a", "c")
48
49
 
49
- have_received_matcher.matches?(fake)
50
+ have_received_matcher.matches?(fake)
50
51
 
51
- have_received_matcher.failure_message_for_should.should ==
52
- %Q{Expected #{fake.inspect} to have received foo("a", "c"), but it didn't.\n\n}+
52
+ have_received_matcher.failure_message_for_should.should ==
53
+ %Q{Expected #{fake.inspect} to have received foo("a", "c"), but it didn't.\n\n}+
53
54
  %Q{The recorded interactions were:\n} +
54
55
  %Q{ - foo("a", "b")\n}
56
+ end
57
+ end
58
+
59
+ context "with method_missing builder" do
60
+ def have_received(method, *args)
61
+ have_received_matcher.build.__send__(method, *args)
62
+ end
63
+
64
+ include_examples "have_received_matcher"
65
+ end
66
+
67
+ context "with method call builder" do
68
+ def have_received(*args)
69
+ have_received_matcher.build(*args)
70
+ end
71
+
72
+ include_examples "have_received_matcher"
55
73
  end
56
74
  end
@@ -16,7 +16,7 @@ module Bogus
16
16
  let(:instance_methods) { InstanceMethods.new(SampleClass) }
17
17
 
18
18
  it "lists the instance methods" do
19
- instance_methods.all.should == [:foo, :hello]
19
+ instance_methods.all.should =~ [:foo, :hello]
20
20
  end
21
21
 
22
22
  it "returns the instance methods by name" do
@@ -1,107 +1,111 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Bogus::Interaction do
4
- class SomeError < StandardError; end
5
-
6
- same = [
7
- [[:foo, [:bar], "value"], [:foo, [:bar], "value"]],
8
- [[:foo, [:bar, Bogus::DefaultValue], "value"], [:foo, [:bar], "value"]],
9
- [[:foo, [:bar, {foo: Bogus::DefaultValue}], "value"], [:foo, [:bar], "value"]],
10
- [[:foo, [:bar, {foo: Bogus::DefaultValue}], "value"], [:foo, [:bar, {}], "value"]],
11
- [[:foo, [:bar, {foo: Bogus::DefaultValue, bar: 1}], "value"], [:foo, [:bar, {bar: 1}], "value"]],
12
- [[:foo, [:bar]], [:foo, [:bar], "value"]],
13
- [[:foo, [:bar], "value"], [:foo, [:bar]]],
14
- [[:foo, [:bar]], [:foo, [:bar]]],
15
- [[:foo, [Bogus::AnyArgs]], [:foo, [:bar]]],
16
- [[:foo, [:bar]], [:foo, [Bogus::AnyArgs]]],
17
- [[:foo, [Bogus::AnyArgs], "same value"], [:foo, [:bar], "same value"]],
18
- [[:foo, [:bar], "same value"], [:foo, [Bogus::AnyArgs], "same value"]],
19
- [[:foo, [:bar, Bogus::Anything]], [:foo, [:bar, :baz]]],
20
- [[:foo, [:bar, :baz]], [:foo, [:bar, Bogus::Anything]]],
21
- [[:foo, [:bar, Bogus::Anything]], [:foo, [Bogus::Anything, :baz]]]
22
- ]
23
-
24
- different = [
25
- [[:foo, [:bar], "value"], [:foo, [:bar], "value2"]],
26
- [[:foo, [:bar], "value"], [:baz, [:bar], "value"]],
27
- [[:foo, [:baz], "value"], [:foo, [:bar], "value"]],
28
- [[:foo, [Bogus::DefaultValue, :baz], "value"], [:foo, [:bar, :bar], "value"]],
29
- [[:foo, [:bar, {foo: Bogus::DefaultValue, bar: 1}], "value"], [:foo, [:bar, {bar: 2}], "value"]],
30
- [[:foo, [Bogus::AnyArgs]], [:bar, [:bar]]],
31
- [[:foo, [:bar]], [:bar, [Bogus::AnyArgs]]],
32
- [[:foo, [Bogus::AnyArgs], "some value"], [:foo, [:bar], "other value"]],
33
- [[:foo, [:bar], "some value"], [:foo, [Bogus::AnyArgs], "other value"]],
34
- [[:foo, [:bar]], [:foo, [:baz]]],
35
- [[:baz, [:bar]], [:foo, [:bar]]]
36
- ]
37
-
38
- def create_interaction(interaction)
39
- method_name, args, return_value = interaction
40
- if return_value
41
- Bogus::Interaction.new(method_name, args) { return_value }
42
- else
43
- Bogus::Interaction.new(method_name, args)
3
+ module Bogus
4
+ describe Interaction do
5
+ class SomeError < StandardError; end
6
+
7
+ same = [
8
+ [[:foo, [:bar], "value"], [:foo, [:bar], "value"]],
9
+ [[:foo, [:bar, DefaultValue], "value"], [:foo, [:bar], "value"]],
10
+ [[:foo, [:bar, {foo: DefaultValue}], "value"], [:foo, [:bar], "value"]],
11
+ [[:foo, [:bar, {foo: DefaultValue, bar: 1}], "value"], [:foo, [:bar, {bar: 1}], "value"]],
12
+ [[:foo, [DefaultValue, {foo: DefaultValue}], "value"], [:foo, [], "value"]],
13
+ [[:foo, [:bar]], [:foo, [:bar], "value"]],
14
+ [[:foo, [:bar], "value"], [:foo, [:bar]]],
15
+ [[:foo, [:bar]], [:foo, [:bar]]],
16
+ [[:foo, [:bar]], [:foo, [AnyArgs]]],
17
+ [[:foo, [:bar], "same value"], [:foo, [AnyArgs], "same value"]],
18
+ [[:foo, [:bar, :baz]], [:foo, [:bar, Anything]]],
19
+ [[:foo, [1], "same value"], [:foo, [WithArguments.new{|n| n.odd?}], "same value"]],
20
+ [[:foo, [1]], [:foo, [SameClass.new(Integer)]]]
21
+ ]
22
+
23
+ different = [
24
+ [[:foo, [:bar], "value"], [:foo, [:bar], "value2"]],
25
+ [[:foo, [:bar, :baz], "value"], [:foo, [:baz, Anything], "value"]],
26
+ [[:foo, [nil, {foo: DefaultValue}], "value"], [:foo, [], "value"]],
27
+ [[:foo, [DefaultValue, {foo: DefaultValue}], "value"], [:foo, [{}], "value"]],
28
+ [[:foo, [:bar], "value"], [:baz, [:bar], "value"]],
29
+ [[:foo, [{}], "value"], [:foo, [], "value"]],
30
+ [[:foo, [:baz], "value"], [:foo, [:bar], "value"]],
31
+ [[:foo, [DefaultValue, :baz], "value"], [:foo, [:bar, :bar], "value"]],
32
+ [[:foo, [:bar, {foo: DefaultValue, bar: 1}], "value"], [:foo, [:bar, {bar: 2}], "value"]],
33
+ [[:foo, [:bar]], [:bar, [AnyArgs]]],
34
+ [[:foo, [:bar], "some value"], [:foo, [AnyArgs], "other value"]],
35
+ [[:foo, [:bar]], [:foo, [:baz]]],
36
+ [[:baz, [:bar]], [:foo, [:bar]]],
37
+ [[:foo, [2], "same value"], [:foo, [WithArguments.new{|n| n.odd?}], "same value"]],
38
+ [[:foo, [1]], [:foo, [SameClass.new(Symbol)]]]
39
+ ]
40
+
41
+ def create_interaction(interaction)
42
+ method_name, args, return_value = interaction
43
+ if return_value
44
+ Interaction.new(method_name, args) { return_value }
45
+ else
46
+ Interaction.new(method_name, args)
47
+ end
44
48
  end
45
- end
46
49
 
47
- same.each do |first_interaction, second_interaction|
48
- it "returns true for #{first_interaction.inspect} and #{second_interaction.inspect}" do
49
- first = create_interaction(first_interaction)
50
- second = create_interaction(second_interaction)
50
+ same.each do |first_interaction, second_interaction|
51
+ it "returns true for #{first_interaction.inspect} and #{second_interaction.inspect}" do
52
+ first = create_interaction(first_interaction)
53
+ second = create_interaction(second_interaction)
51
54
 
52
- first.should == second
55
+ Interaction.same?(recorded: first, stubbed: second).should be_true
56
+ end
53
57
  end
54
- end
55
58
 
56
- different.each do |first_interaction, second_interaction|
57
- it "returns false for #{first_interaction.inspect} and #{second_interaction.inspect}" do
58
- first = create_interaction(first_interaction)
59
- second = create_interaction(second_interaction)
59
+ different.each do |first_interaction, second_interaction|
60
+ it "returns false for #{first_interaction.inspect} and #{second_interaction.inspect}" do
61
+ first = create_interaction(first_interaction)
62
+ second = create_interaction(second_interaction)
60
63
 
61
- first.should_not == second
64
+ Interaction.same?(recorded: first, stubbed: second).should be_false
65
+ end
62
66
  end
63
- end
64
67
 
65
- it "differs exceptions from empty return values" do
66
- first = Bogus::Interaction.new(:foo, [:bar]) { raise SomeError }
67
- second = Bogus::Interaction.new(:foo, [:bar]) { nil }
68
+ it "differs exceptions from empty return values" do
69
+ first = Interaction.new(:foo, [:bar]) { raise SomeError }
70
+ second = Interaction.new(:foo, [:bar]) { nil }
68
71
 
69
- first.should_not == second
70
- end
72
+ Interaction.same?(recorded: first, stubbed: second).should be_false
73
+ end
71
74
 
72
- it "differs raised exceptions from ones just returned from the block" do
73
- first = Bogus::Interaction.new(:foo, [:bar]) { raise SomeError }
74
- second = Bogus::Interaction.new(:foo, [:bar]) { SomeError }
75
+ it "differs raised exceptions from ones just returned from the block" do
76
+ first = Interaction.new(:foo, [:bar]) { raise SomeError }
77
+ second = Interaction.new(:foo, [:bar]) { SomeError }
75
78
 
76
- first.should_not == second
77
- end
79
+ Interaction.same?(recorded: first, stubbed: second).should be_false
80
+ end
78
81
 
79
- it "considers exceptions of the same type as equal" do
80
- first = Bogus::Interaction.new(:foo, [:bar]) { raise SomeError }
81
- second = Bogus::Interaction.new(:foo, [:bar]) { raise SomeError }
82
+ it "considers exceptions of the same type as equal" do
83
+ first = Interaction.new(:foo, [:bar]) { raise SomeError }
84
+ second = Interaction.new(:foo, [:bar]) { raise SomeError }
82
85
 
83
- first.should == second
84
- end
86
+ Interaction.same?(recorded: first, stubbed: second).should be_true
87
+ end
85
88
 
86
- context 'when comparing arguments with custom #== implementations' do
87
- Dev = Struct.new(:login) do
88
- def ==(other)
89
- login == other.login
89
+ context 'when comparing arguments with custom #== implementations' do
90
+ Dev = Struct.new(:login) do
91
+ def ==(other)
92
+ login == other.login
93
+ end
90
94
  end
91
- end
92
95
 
93
- it "considers two interactions == when the arguments are ==" do
94
- first = Bogus::Interaction.new(:with, [Dev.new(:psyho)])
95
- second = Bogus::Interaction.new(:with, [Dev.new(:psyho)])
96
+ it "considers two interactions == when the arguments are ==" do
97
+ first = Interaction.new(:with, [Dev.new(:psyho)])
98
+ second = Interaction.new(:with, [Dev.new(:psyho)])
96
99
 
97
- first.should == second
98
- end
100
+ Interaction.same?(recorded: first, stubbed: second).should be_true
101
+ end
99
102
 
100
- it "considers two interactions != when the arguments are !=" do
101
- first = Bogus::Interaction.new(:with, [Dev.new(:wrozka)])
102
- second = Bogus::Interaction.new(:with, [Dev.new(:yundt)])
103
+ it "considers two interactions != when the arguments are !=" do
104
+ first = Interaction.new(:with, [Dev.new(:wrozka)])
105
+ second = Interaction.new(:with, [Dev.new(:yundt)])
103
106
 
104
- first.should_not == second
107
+ Interaction.same?(recorded: first, stubbed: second).should be_false
108
+ end
105
109
  end
106
110
  end
107
111
  end
@@ -45,13 +45,10 @@ describe Bogus::InteractionsRepository do
45
45
  it "returns a list of interactions for given fake" do
46
46
  interactions_repository.record(:foo, :bar, 1, 2)
47
47
 
48
- interactions_repository.for_fake(:foo).should == [Bogus::Interaction.new(:bar, [1, 2])]
49
- end
50
-
51
- it "ignores arguments if the recorded interaction was recorded with any_args" do
52
- interactions_repository.record(:foo, :bar, Bogus::AnyArgs)
53
-
54
- recorded?(:foo, :bar, 1).should be_true
48
+ interactions = interactions_repository.for_fake(:foo)
49
+ interactions.should have(1).item
50
+ interactions.first.method.should == :bar
51
+ interactions.first.args.should == [1, 2]
55
52
  end
56
53
 
57
54
  it "ignores arguments if the checked interaction has any_args" do
@@ -67,15 +64,15 @@ describe Bogus::InteractionsRepository do
67
64
  end
68
65
 
69
66
  it "ignores arguments if the recorded interaction was recorded with wildcard argument" do
70
- interactions_repository.record(:foo, :bar, 1, Bogus::Anything)
67
+ interactions_repository.record(:foo, :bar, 1, 2)
71
68
 
72
- recorded?(:foo, :bar, 1, 2).should be_true
69
+ recorded?(:foo, :bar, 1, Bogus::Anything).should be_true
73
70
  end
74
71
 
75
72
  it "takes other arguments into account when matching interactions with wildcards" do
76
- interactions_repository.record(:foo, :bar, 1, Bogus::Anything)
73
+ interactions_repository.record(:foo, :bar, 1, 2)
77
74
 
78
- recorded?(:foo, :bar, 2, 1).should be_false
75
+ recorded?(:foo, :bar, 2, Bogus::Anything).should be_false
79
76
  end
80
77
 
81
78
  it "ignores arguments if the checked interaction has any_args" do
@@ -176,7 +176,10 @@ describe Bogus::Shadow do
176
176
  end
177
177
 
178
178
  it "contributes towards unsatisfied interactions" do
179
- shadow.unsatisfied_interactions.should =~ [Bogus::Interaction.new(:foo, ["a", "b"])]
179
+ interactions = shadow.unsatisfied_interactions
180
+ interactions.should have(1).item
181
+ interactions.first.method.should == :foo
182
+ interactions.first.args.should == ["a", "b"]
180
183
  end
181
184
 
182
185
  it "removes the staisfied expectations from unsatisfied interactions" do
metadata CHANGED
@@ -1,237 +1,270 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bogus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Adam Pohorecki
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-06-12 00:00:00.000000000 Z
12
+ date: 2013-07-02 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: dependor
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: 0.0.4
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - '>='
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: 0.0.4
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: rake
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rspec
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: cucumber
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ! '>='
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: aruba
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
- - - '>='
83
+ - - ! '>='
74
84
  - !ruby/object:Gem::Version
75
85
  version: '0'
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
- - - '>='
91
+ - - ! '>='
81
92
  - !ruby/object:Gem::Version
82
93
  version: '0'
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: guard
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
- - - '>='
99
+ - - ! '>='
88
100
  - !ruby/object:Gem::Version
89
101
  version: '0'
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
- - - '>='
107
+ - - ! '>='
95
108
  - !ruby/object:Gem::Version
96
109
  version: '0'
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: guard-rspec
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
- - - '>='
115
+ - - ! '>='
102
116
  - !ruby/object:Gem::Version
103
117
  version: '0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
- - - '>='
123
+ - - ! '>='
109
124
  - !ruby/object:Gem::Version
110
125
  version: '0'
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: guard-cucumber
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
- - - '>='
131
+ - - ! '>='
116
132
  - !ruby/object:Gem::Version
117
133
  version: '0'
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
- - - '>='
139
+ - - ! '>='
123
140
  - !ruby/object:Gem::Version
124
141
  version: '0'
125
142
  - !ruby/object:Gem::Dependency
126
143
  name: guard-ctags-bundler
127
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
128
146
  requirements:
129
- - - '>='
147
+ - - ! '>='
130
148
  - !ruby/object:Gem::Version
131
149
  version: '0'
132
150
  type: :development
133
151
  prerelease: false
134
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
135
154
  requirements:
136
- - - '>='
155
+ - - ! '>='
137
156
  - !ruby/object:Gem::Version
138
157
  version: '0'
139
158
  - !ruby/object:Gem::Dependency
140
159
  name: growl
141
160
  requirement: !ruby/object:Gem::Requirement
161
+ none: false
142
162
  requirements:
143
- - - '>='
163
+ - - ! '>='
144
164
  - !ruby/object:Gem::Version
145
165
  version: '0'
146
166
  type: :development
147
167
  prerelease: false
148
168
  version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
149
170
  requirements:
150
- - - '>='
171
+ - - ! '>='
151
172
  - !ruby/object:Gem::Version
152
173
  version: '0'
153
174
  - !ruby/object:Gem::Dependency
154
175
  name: libnotify
155
176
  requirement: !ruby/object:Gem::Requirement
177
+ none: false
156
178
  requirements:
157
- - - '>='
179
+ - - ! '>='
158
180
  - !ruby/object:Gem::Version
159
181
  version: '0'
160
182
  type: :development
161
183
  prerelease: false
162
184
  version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
163
186
  requirements:
164
- - - '>='
187
+ - - ! '>='
165
188
  - !ruby/object:Gem::Version
166
189
  version: '0'
167
190
  - !ruby/object:Gem::Dependency
168
191
  name: rr
169
192
  requirement: !ruby/object:Gem::Requirement
193
+ none: false
170
194
  requirements:
171
- - - '>='
195
+ - - ! '>='
172
196
  - !ruby/object:Gem::Version
173
197
  version: '0'
174
198
  type: :development
175
199
  prerelease: false
176
200
  version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
177
202
  requirements:
178
- - - '>='
203
+ - - ! '>='
179
204
  - !ruby/object:Gem::Version
180
205
  version: '0'
181
206
  - !ruby/object:Gem::Dependency
182
207
  name: relish
183
208
  requirement: !ruby/object:Gem::Requirement
209
+ none: false
184
210
  requirements:
185
- - - '>='
211
+ - - ! '>='
186
212
  - !ruby/object:Gem::Version
187
213
  version: '0'
188
214
  type: :development
189
215
  prerelease: false
190
216
  version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
191
218
  requirements:
192
- - - '>='
219
+ - - ! '>='
193
220
  - !ruby/object:Gem::Version
194
221
  version: '0'
195
222
  - !ruby/object:Gem::Dependency
196
223
  name: coveralls
197
224
  requirement: !ruby/object:Gem::Requirement
225
+ none: false
198
226
  requirements:
199
- - - '>='
227
+ - - ! '>='
200
228
  - !ruby/object:Gem::Version
201
229
  version: '0'
202
230
  type: :development
203
231
  prerelease: false
204
232
  version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
205
234
  requirements:
206
- - - '>='
235
+ - - ! '>='
207
236
  - !ruby/object:Gem::Version
208
237
  version: '0'
209
238
  - !ruby/object:Gem::Dependency
210
239
  name: activerecord
211
240
  requirement: !ruby/object:Gem::Requirement
241
+ none: false
212
242
  requirements:
213
- - - '>='
243
+ - - ! '>='
214
244
  - !ruby/object:Gem::Version
215
245
  version: '0'
216
246
  type: :development
217
247
  prerelease: false
218
248
  version_requirements: !ruby/object:Gem::Requirement
249
+ none: false
219
250
  requirements:
220
- - - '>='
251
+ - - ! '>='
221
252
  - !ruby/object:Gem::Version
222
253
  version: '0'
223
254
  - !ruby/object:Gem::Dependency
224
255
  name: activerecord-nulldb-adapter
225
256
  requirement: !ruby/object:Gem::Requirement
257
+ none: false
226
258
  requirements:
227
- - - '>='
259
+ - - ! '>='
228
260
  - !ruby/object:Gem::Version
229
261
  version: '0'
230
262
  type: :development
231
263
  prerelease: false
232
264
  version_requirements: !ruby/object:Gem::Requirement
265
+ none: false
233
266
  requirements:
234
- - - '>='
267
+ - - ! '>='
235
268
  - !ruby/object:Gem::Version
236
269
  version: '0'
237
270
  description: Decreases the need to write integration tests by ensuring that the things
@@ -330,6 +363,7 @@ files:
330
363
  - lib/bogus/rspec.rb
331
364
  - lib/bogus/rspec_adapter.rb
332
365
  - lib/bogus/rspec_extensions.rb
366
+ - lib/bogus/same_class.rb
333
367
  - lib/bogus/shadow.rb
334
368
  - lib/bogus/takes.rb
335
369
  - lib/bogus/tracks_existence_of_test_doubles.rb
@@ -342,6 +376,7 @@ files:
342
376
  - spec/bogus/adds_recording_spec.rb
343
377
  - spec/bogus/anything_spec.rb
344
378
  - spec/bogus/class_methods_spec.rb
379
+ - spec/bogus/clean_ruby_spec.rb
345
380
  - spec/bogus/configuration_spec.rb
346
381
  - spec/bogus/converts_name_to_class_spec.rb
347
382
  - spec/bogus/copies_classes_spec.rb
@@ -384,25 +419,32 @@ files:
384
419
  - spec/support/sample_fake.rb
385
420
  homepage: https://github.com/psyho/bogus
386
421
  licenses: []
387
- metadata: {}
388
422
  post_install_message:
389
423
  rdoc_options: []
390
424
  require_paths:
391
425
  - lib
392
426
  required_ruby_version: !ruby/object:Gem::Requirement
427
+ none: false
393
428
  requirements:
394
- - - '>='
429
+ - - ! '>='
395
430
  - !ruby/object:Gem::Version
396
431
  version: '0'
432
+ segments:
433
+ - 0
434
+ hash: 77072787
397
435
  required_rubygems_version: !ruby/object:Gem::Requirement
436
+ none: false
398
437
  requirements:
399
- - - '>='
438
+ - - ! '>='
400
439
  - !ruby/object:Gem::Version
401
440
  version: '0'
441
+ segments:
442
+ - 0
443
+ hash: 77072787
402
444
  requirements: []
403
445
  rubyforge_project: bogus
404
- rubygems_version: 2.0.0.rc.2
446
+ rubygems_version: 1.8.25
405
447
  signing_key:
406
- specification_version: 4
448
+ specification_version: 3
407
449
  summary: Create fakes to make your isolated unit tests reliable.
408
450
  test_files: []