bogus 0.1.0 → 0.1.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.
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: []