stubble 0.1.1 → 0.1.2
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/Rakefile +1 -1
- data/lib/stubble.rb +6 -4
- data/test/stubble_test.rb +18 -0
- metadata +3 -3
data/Rakefile
CHANGED
@@ -34,7 +34,7 @@ spec = Gem::Specification.new do |s|
|
|
34
34
|
|
35
35
|
# Change these as appropriate
|
36
36
|
s.name = "stubble"
|
37
|
-
s.version = "0.1.
|
37
|
+
s.version = "0.1.2"
|
38
38
|
s.summary = "(experimental) simple stubbing"
|
39
39
|
s.author = "Matthew Rudy Jacobs"
|
40
40
|
s.email = "MatthewRudyJacobs@gmail.com"
|
data/lib/stubble.rb
CHANGED
@@ -87,16 +87,18 @@ module Stubble
|
|
87
87
|
|
88
88
|
def track!(method_name)
|
89
89
|
self._stubble.track!(method_name)
|
90
|
-
|
90
|
+
|
91
|
+
unstubbled_method_name = "__unstubbled__#{method_name}"
|
92
|
+
unless methods.include?(unstubbled_method_name)
|
91
93
|
class_eval <<-RUBY
|
92
|
-
|
94
|
+
alias #{unstubbled_method_name} #{method_name}
|
95
|
+
def #{method_name}(*args, &block)
|
93
96
|
if stubbed_return = self._stubble.called!(#{method_name.inspect}, args, block)
|
94
97
|
stubbed_return.perform
|
95
98
|
else
|
96
|
-
#{
|
99
|
+
#{unstubbled_method_name}(*args, &block)
|
97
100
|
end
|
98
101
|
end
|
99
|
-
alias_method_chain #{method_name.inspect}, :stubble
|
100
102
|
RUBY
|
101
103
|
end
|
102
104
|
end
|
data/test/stubble_test.rb
CHANGED
@@ -16,6 +16,10 @@ class StubbleTest < Test::Unit::TestCase
|
|
16
16
|
@hits +=1
|
17
17
|
end
|
18
18
|
|
19
|
+
def with_punctuation!
|
20
|
+
"punctuated"
|
21
|
+
end
|
22
|
+
|
19
23
|
def some_method_with_arguments(times, shout="boom")
|
20
24
|
shout * times
|
21
25
|
end
|
@@ -108,6 +112,20 @@ class StubbleTest < Test::Unit::TestCase
|
|
108
112
|
assert_equal 1, this._stubble[:some_method].length # no new
|
109
113
|
end
|
110
114
|
|
115
|
+
test "we can stub! punctuated methods" do
|
116
|
+
this = StubThis.new
|
117
|
+
assert_equal "punctuated", this.with_punctuation!
|
118
|
+
|
119
|
+
Stubble.add_stubble!(this)
|
120
|
+
this.stub!(:with_punctuation!, [:a, :b, :c])
|
121
|
+
|
122
|
+
assert_equal :a, this.with_punctuation!
|
123
|
+
assert_equal :b, this.with_punctuation!
|
124
|
+
assert_equal :c, this.with_punctuation!
|
125
|
+
|
126
|
+
assert_equal "punctuated", this.with_punctuation!
|
127
|
+
end
|
128
|
+
|
111
129
|
test "stub! - defines the next values to be returned" do
|
112
130
|
this = StubThis.new
|
113
131
|
assert_equal 1, this.some_method
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stubble
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matthew Rudy Jacobs
|