Skip to content

Commit 3597237

Browse files
authored
Merge pull request #35 from clarkedb/develop
v1.0.2
2 parents dd455b5 + 792765a commit 3597237

18 files changed

+73
-27
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
88

99
N/A
1010

11+
## [1.0.2](https://github.com/clarkedb/grift/releases/tag/v1.0.2) - 2021-11-11
12+
13+
This version fixes a bug that prevented the mocking of methods defined by a class's super class.
14+
15+
### Fixed
16+
17+
* Allow mocks of inherited methods
18+
1119
## [1.0.1](https://github.com/clarkedb/grift/releases/tag/v1.0.1) - 2021-11-10
1220

1321
This version fixes a bug that prevented most mocking features in Grift from functioning as expected.

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
grift (1.0.1)
4+
grift (1.0.2)
55

66
GEM
77
remote: https://rubygems.org/

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ class Minitest::Test
3636
end
3737
```
3838

39+
Or for Ruby on Rails:
40+
41+
```ruby
42+
class ActiveSupport::TestCase
43+
include Grift::MinitestPlugin
44+
end
45+
```
46+
3947
## Usage
4048

4149
For complete usage guide, see the [docs](https://clarkedb.github.io/grift/).

docs/Grift.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ <h2>
131131

132132
</div>
133133
</dt>
134-
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>1.0.1</span><span class='tstring_end'>&#39;</span></span></pre></dd>
134+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>1.0.2</span><span class='tstring_end'>&#39;</span></span></pre></dd>
135135

136136
</dl>
137137

@@ -1494,7 +1494,7 @@ <h3 class="signature " id="spy_on-class_method">
14941494
</div>
14951495

14961496
<div id="footer">
1497-
Generated on Wed Nov 10 20:07:38 2021 by
1497+
Generated on Thu Nov 11 08:39:35 2021 by
14981498
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
14991499
0.9.26 (ruby-2.7.1).
15001500
</div>

docs/Grift/Config.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ <h3 class="signature first" id="restricted_methods-class_method">
215215
</div>
216216

217217
<div id="footer">
218-
Generated on Wed Nov 10 20:07:38 2021 by
218+
Generated on Thu Nov 11 08:39:35 2021 by
219219
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
220220
0.9.26 (ruby-2.7.1).
221221
</div>

docs/Grift/Error.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ <h2>Overview</h2><div class="docstring">
125125
</div>
126126

127127
<div id="footer">
128-
Generated on Wed Nov 10 20:07:38 2021 by
128+
Generated on Thu Nov 11 08:39:35 2021 by
129129
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
130130
0.9.26 (ruby-2.7.1).
131131
</div>

docs/Grift/MinitestPlugin.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ <h3 class="signature first" id="after_teardown-instance_method">
210210
</div>
211211

212212
<div id="footer">
213-
Generated on Wed Nov 10 20:07:38 2021 by
213+
Generated on Thu Nov 11 08:39:35 2021 by
214214
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
215215
0.9.26 (ruby-2.7.1).
216216
</div>

docs/Grift/MockMethod.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,7 @@ <h3 class="signature first" id="initialize-instance_method">
590590

591591
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_klass'>klass</span><span class='comma'>,</span> <span class='id identifier rubyid_method_name'>method_name</span><span class='comma'>,</span> <span class='label'>watch:</span> <span class='kw'>true</span><span class='rparen'>)</span>
592592
<span class='kw'>if</span> <span class='const'><span class='object_link'><a href="../Grift.html" title="Grift (module)">Grift</a></span></span><span class='period'>.</span><span class='id identifier rubyid_restricted_method?'><span class='object_link'><a href="../Grift.html#restricted_method%3F-class_method" title="Grift.restricted_method? (method)">restricted_method?</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_klass'>klass</span><span class='comma'>,</span> <span class='id identifier rubyid_method_name'>method_name</span><span class='rparen'>)</span>
593-
<span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="../Grift.html" title="Grift (module)">Grift</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error.html" title="Grift::Error (class)">Error</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cannont mock restricted method </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_method_name'>method_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> for class </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_klass'>klass</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
593+
<span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="../Grift.html" title="Grift (module)">Grift</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error.html" title="Grift::Error (class)">Error</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cannot mock restricted method </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_method_name'>method_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> for class </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_klass'>klass</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
594594
<span class='kw'>end</span>
595595

596596
<span class='ivar'>@klass</span> <span class='op'>=</span> <span class='id identifier rubyid_klass'>klass</span>
@@ -602,8 +602,8 @@ <h3 class="signature first" id="initialize-instance_method">
602602
<span class='comment'># class methods are really instance methods of the singleton class
603603
</span> <span class='ivar'>@class_method</span> <span class='op'>=</span> <span class='id identifier rubyid_klass'>klass</span><span class='period'>.</span><span class='id identifier rubyid_singleton_class'>singleton_class</span><span class='period'>.</span><span class='id identifier rubyid_instance_methods'>instance_methods</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_method_name'>method_name</span><span class='rparen'>)</span>
604604

605-
<span class='kw'>unless</span> <span class='id identifier rubyid_class_instance'>class_instance</span><span class='period'>.</span><span class='id identifier rubyid_instance_methods'>instance_methods</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_method_name'>method_name</span><span class='rparen'>)</span>
606-
<span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="../Grift.html" title="Grift (module)">Grift</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error.html" title="Grift::Error (class)">Error</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cannont mock unknown method </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_method_name'>method_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> for class </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_klass'>klass</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
605+
<span class='kw'>unless</span> <span class='ivar'>@class_method</span> <span class='op'>||</span> <span class='id identifier rubyid_class_instance'>class_instance</span><span class='period'>.</span><span class='id identifier rubyid_instance_methods'>instance_methods</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_method_name'>method_name</span><span class='rparen'>)</span>
606+
<span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="../Grift.html" title="Grift (module)">Grift</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Error.html" title="Grift::Error (class)">Error</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cannot mock unknown method </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_method_name'>method_name</span><span class='embexpr_end'>}</span><span class='tstring_content'> for class </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_klass'>klass</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
607607
<span class='kw'>end</span>
608608

609609
<span class='kw'>if</span> <span class='id identifier rubyid_class_instance'>class_instance</span><span class='period'>.</span><span class='id identifier rubyid_instance_methods'>instance_methods</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='ivar'>@cache_method_name</span><span class='rparen'>)</span>
@@ -1076,7 +1076,7 @@ <h3 class="signature " id="mock_implementation-instance_method">
10761076
<span class='id identifier rubyid_premock_setup'>premock_setup</span>
10771077
<span class='id identifier rubyid_mock_executions'>mock_executions</span> <span class='op'>=</span> <span class='ivar'>@mock_executions</span> <span class='comment'># required to access inside class instance block
10781078
</span>
1079-
<span class='id identifier rubyid_class_instance'>class_instance</span><span class='period'>.</span><span class='id identifier rubyid_remove_method'>remove_method</span><span class='lparen'>(</span><span class='ivar'>@method_name</span><span class='rparen'>)</span>
1079+
<span class='id identifier rubyid_class_instance'>class_instance</span><span class='period'>.</span><span class='id identifier rubyid_remove_method'>remove_method</span><span class='lparen'>(</span><span class='ivar'>@method_name</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_class_instance'>class_instance</span><span class='period'>.</span><span class='id identifier rubyid_instance_methods'>instance_methods</span><span class='lparen'>(</span><span class='kw'>false</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='ivar'>@method_name</span><span class='rparen'>)</span>
10801080
<span class='id identifier rubyid_class_instance'>class_instance</span><span class='period'>.</span><span class='id identifier rubyid_define_method'>define_method</span> <span class='ivar'>@method_name</span> <span class='kw'>do</span> <span class='op'>|</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='op'>|</span>
10811081
<span class='id identifier rubyid_return_value'>return_value</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
10821082

@@ -1336,7 +1336,7 @@ <h3 class="signature " id="mock_return_value-instance_method">
13361336
<span class='id identifier rubyid_premock_setup'>premock_setup</span>
13371337
<span class='id identifier rubyid_mock_executions'>mock_executions</span> <span class='op'>=</span> <span class='ivar'>@mock_executions</span> <span class='comment'># required to access inside class instance block
13381338
</span>
1339-
<span class='id identifier rubyid_class_instance'>class_instance</span><span class='period'>.</span><span class='id identifier rubyid_remove_method'>remove_method</span><span class='lparen'>(</span><span class='ivar'>@method_name</span><span class='rparen'>)</span>
1339+
<span class='id identifier rubyid_class_instance'>class_instance</span><span class='period'>.</span><span class='id identifier rubyid_remove_method'>remove_method</span><span class='lparen'>(</span><span class='ivar'>@method_name</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_method_defined?'>method_defined?</span>
13401340
<span class='id identifier rubyid_class_instance'>class_instance</span><span class='period'>.</span><span class='id identifier rubyid_define_method'>define_method</span> <span class='ivar'>@method_name</span> <span class='kw'>do</span> <span class='op'>|</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='op'>|</span>
13411341
<span class='comment'># record the args passed in the call to the method and the result
13421342
</span> <span class='id identifier rubyid_mock_executions'>mock_executions</span><span class='period'>.</span><span class='id identifier rubyid_store'>store</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_return_value'>return_value</span><span class='rparen'>)</span>
@@ -1416,7 +1416,7 @@ <h3 class="signature " id="to_s-instance_method">
14161416
</div>
14171417

14181418
<div id="footer">
1419-
Generated on Wed Nov 10 20:07:38 2021 by
1419+
Generated on Thu Nov 11 08:39:35 2021 by
14201420
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
14211421
0.9.26 (ruby-2.7.1).
14221422
</div>

docs/Grift/MockMethod/MockExecutions.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,7 @@ <h3 class="signature " id="store-instance_method">
692692
</div>
693693

694694
<div id="footer">
695-
Generated on Wed Nov 10 20:07:38 2021 by
695+
Generated on Thu Nov 11 08:39:35 2021 by
696696
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
697697
0.9.26 (ruby-2.7.1).
698698
</div>

docs/Grift/MockStore.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -946,7 +946,7 @@ <h3 class="signature " id="store-instance_method">
946946
</div>
947947

948948
<div id="footer">
949-
Generated on Wed Nov 10 20:07:38 2021 by
949+
Generated on Thu Nov 11 08:39:35 2021 by
950950
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
951951
0.9.26 (ruby-2.7.1).
952952
</div>

0 commit comments

Comments
 (0)