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.
- data/.travis.yml +1 -0
- data/Gemfile.lock +6 -1
- data/README.md +3 -0
- data/features/changelog.md +30 -22
- data/features/configuration/fake_ar_attributes.feature +3 -1
- data/features/configuration/search_modules.feature +5 -0
- data/features/contract_tests/contract_tests_mocks.feature +12 -1
- data/features/contract_tests/contract_tests_spies.feature +14 -2
- data/features/contract_tests/contract_tests_stubs.feature +13 -2
- data/features/contract_tests/return_value_contracts.feature +15 -4
- data/features/fakes/anonymous_doubles.feature +15 -1
- data/features/fakes/duck_types.feature +12 -2
- data/features/fakes/fake_objects.feature +11 -1
- data/features/fakes/global_fake_configuration.feature +4 -1
- data/features/readme.md +2 -2
- data/features/safe_stubbing/argument_matchers.feature +32 -2
- data/features/safe_stubbing/safe_mocking.feature +9 -2
- data/features/safe_stubbing/safe_stubbing.feature +11 -2
- data/features/safe_stubbing/spies.feature +52 -1
- data/features/step_definitions/rspec_steps.rb +1 -2
- data/features/support/env.rb +19 -0
- data/lib/bogus/active_record_accessors.rb +4 -4
- data/lib/bogus/adds_recording.rb +1 -0
- data/lib/bogus/any_args.rb +32 -3
- data/lib/bogus/class_methods.rb +7 -1
- data/lib/bogus/copies_classes.rb +5 -2
- data/lib/bogus/fake.rb +0 -2
- data/lib/bogus/have_received_matcher.rb +5 -0
- data/lib/bogus/interaction.rb +66 -35
- data/lib/bogus/interactions_repository.rb +1 -1
- data/lib/bogus/makes_substitute_methods.rb +3 -2
- data/lib/bogus/mocking_dsl.rb +8 -0
- data/lib/bogus/public_methods.rb +1 -1
- data/lib/bogus/rspec_extensions.rb +8 -1
- data/lib/bogus/same_class.rb +14 -0
- data/lib/bogus/shadow.rb +8 -12
- data/lib/bogus/verifies_stub_definition.rb +1 -5
- data/lib/bogus/version.rb +1 -1
- data/spec/bogus/adds_recording_spec.rb +8 -0
- data/spec/bogus/class_methods_spec.rb +8 -2
- data/spec/bogus/clean_ruby_spec.rb +15 -0
- data/spec/bogus/have_received_matcher_spec.rb +45 -27
- data/spec/bogus/instance_methods_spec.rb +1 -1
- data/spec/bogus/interaction_spec.rb +87 -83
- data/spec/bogus/interactions_repository_spec.rb +8 -11
- data/spec/bogus/shadow_spec.rb +4 -1
- metadata +81 -39
- checksums.yaml +0 -7
@@ -11,46 +11,64 @@ describe Bogus::HaveReceivedMatcher do
|
|
11
11
|
fake.foo("a", "b")
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
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
|
-
|
19
|
-
|
20
|
-
|
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
|
-
|
23
|
-
|
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
|
-
|
26
|
+
have_received(:foo, "a", "b")
|
26
27
|
|
27
|
-
|
28
|
-
|
28
|
+
have_received_matcher.matches?(fake)
|
29
|
+
end
|
29
30
|
|
30
|
-
|
31
|
-
|
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
|
-
|
34
|
+
have_received(:foo, "a", "b")
|
34
35
|
|
35
|
-
|
36
|
-
|
36
|
+
have_received_matcher.matches?(fake)
|
37
|
+
end
|
37
38
|
|
38
|
-
|
39
|
-
|
39
|
+
it "returns a readable error message for object with no shadow" do
|
40
|
+
have_received(:upcase)
|
40
41
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
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
|
-
|
47
|
-
|
47
|
+
it "returns a readable error message for fakes" do
|
48
|
+
have_received(:foo, "a", "c")
|
48
49
|
|
49
|
-
|
50
|
+
have_received_matcher.matches?(fake)
|
50
51
|
|
51
|
-
|
52
|
-
|
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
|
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
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
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
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
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
|
-
|
55
|
+
Interaction.same?(recorded: first, stubbed: second).should be_true
|
56
|
+
end
|
53
57
|
end
|
54
|
-
end
|
55
58
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
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
|
-
|
64
|
+
Interaction.same?(recorded: first, stubbed: second).should be_false
|
65
|
+
end
|
62
66
|
end
|
63
|
-
end
|
64
67
|
|
65
|
-
|
66
|
-
|
67
|
-
|
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
|
-
|
70
|
-
|
72
|
+
Interaction.same?(recorded: first, stubbed: second).should be_false
|
73
|
+
end
|
71
74
|
|
72
|
-
|
73
|
-
|
74
|
-
|
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
|
-
|
77
|
-
|
79
|
+
Interaction.same?(recorded: first, stubbed: second).should be_false
|
80
|
+
end
|
78
81
|
|
79
|
-
|
80
|
-
|
81
|
-
|
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
|
-
|
84
|
-
|
86
|
+
Interaction.same?(recorded: first, stubbed: second).should be_true
|
87
|
+
end
|
85
88
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
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
|
-
|
94
|
-
|
95
|
-
|
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
|
-
|
98
|
-
|
100
|
+
Interaction.same?(recorded: first, stubbed: second).should be_true
|
101
|
+
end
|
99
102
|
|
100
|
-
|
101
|
-
|
102
|
-
|
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
|
-
|
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)
|
49
|
-
|
50
|
-
|
51
|
-
|
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,
|
67
|
+
interactions_repository.record(:foo, :bar, 1, 2)
|
71
68
|
|
72
|
-
recorded?(:foo, :bar, 1,
|
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,
|
73
|
+
interactions_repository.record(:foo, :bar, 1, 2)
|
77
74
|
|
78
|
-
recorded?(:foo, :bar, 2,
|
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
|
data/spec/bogus/shadow_spec.rb
CHANGED
@@ -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
|
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.
|
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-
|
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:
|
446
|
+
rubygems_version: 1.8.25
|
405
447
|
signing_key:
|
406
|
-
specification_version:
|
448
|
+
specification_version: 3
|
407
449
|
summary: Create fakes to make your isolated unit tests reliable.
|
408
450
|
test_files: []
|