yard-doctest 0.1.8 → 0.1.9
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +1 -2
- data/features/yard-doctest.feature +20 -0
- data/lib/yard/doctest/example.rb +16 -9
- data/lib/yard/doctest/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47ff35130e3241348736458652887da1bca96512
|
4
|
+
data.tar.gz: 76d18f3e48943bab0d1058082291d98fc3167477
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00f1a7d01a6f625d858f275e6356f223d7af8487fe4faaafdd36f1e98fcd4193f8b20754ee332196a9df8878f1005cf269ef41ca634dbf16bba53437517a4711
|
7
|
+
data.tar.gz: 4f29c14960eb13d008ae1ef5ab97dbe763441c7d38b6bfee8064c529d160083d832f3b78c8548e0fc329773ab88eae0efee6e984c908d3c10960fcbf29c05845
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## 0.1.9
|
2
|
+
|
3
|
+
* Allow to have `doctest_helper.rb` in `spec/` directory [#4](https://github.com/p0deje/yard-doctest/pull/4)
|
4
|
+
* Allow to use local context in doctest (i.e. not type full path to object) [#5](https://github.com/p0deje/yard-doctest/pull/5)
|
5
|
+
|
1
6
|
## 0.1.8
|
2
7
|
|
3
8
|
* Fixed a bug when test was passing even though exception was raised in example
|
data/README.md
CHANGED
@@ -99,8 +99,7 @@ Next, you'll need to create test helper, which will be required before each of y
|
|
99
99
|
|
100
100
|
```bash
|
101
101
|
$ touch doctest_helper.rb
|
102
|
-
# or
|
103
|
-
$ touch support/doctest_helper.rb
|
102
|
+
# or move it into either the `support` or `spec` directory
|
104
103
|
```
|
105
104
|
|
106
105
|
```ruby
|
@@ -425,6 +425,7 @@ Feature: yard doctest
|
|
425
425
|
| directory |
|
426
426
|
| . |
|
427
427
|
| support |
|
428
|
+
| spec |
|
428
429
|
|
429
430
|
Scenario: shares binding between asserts
|
430
431
|
Given a file named "doctest_helper.rb" with:
|
@@ -595,3 +596,22 @@ Feature: yard doctest
|
|
595
596
|
"""
|
596
597
|
When I run `bundle exec yard doctest`
|
597
598
|
Then the output should contain "0 runs, 0 assertions, 0 failures, 0 errors, 0 skips"
|
599
|
+
|
600
|
+
Scenario: allow binding to local context
|
601
|
+
Given a file named "doctest_helper.rb" with:
|
602
|
+
"""
|
603
|
+
require 'app/app'
|
604
|
+
"""
|
605
|
+
And a file named "app/app.rb" with:
|
606
|
+
"""
|
607
|
+
class App
|
608
|
+
# @example
|
609
|
+
# a, b = 1, 2
|
610
|
+
# sum(a, b) #=> 3
|
611
|
+
def self.sum(one, two)
|
612
|
+
one + two
|
613
|
+
end
|
614
|
+
end
|
615
|
+
"""
|
616
|
+
When I run `bundle exec yard doctest`
|
617
|
+
Then the output should contain "1 runs, 1 assertions, 0 failures, 0 errors, 0 skips"
|
data/lib/yard/doctest/example.rb
CHANGED
@@ -20,11 +20,18 @@ module YARD
|
|
20
20
|
Class.new(this.class).class_eval do
|
21
21
|
require 'minitest/autorun'
|
22
22
|
|
23
|
-
%w[. support].each do |dir|
|
23
|
+
%w[. support spec].each do |dir|
|
24
24
|
require "#{dir}/doctest_helper" if File.exist?("#{dir}/doctest_helper.rb")
|
25
25
|
end
|
26
26
|
|
27
27
|
return if YARD::Doctest.skips.any? { |skip| this.definition.include?(skip) }
|
28
|
+
|
29
|
+
begin
|
30
|
+
object_name = this.definition.split(/#|\./).first
|
31
|
+
scope = Object.const_get(object_name) if const_defined?(object_name)
|
32
|
+
rescue NameError
|
33
|
+
end
|
34
|
+
|
28
35
|
describe this.definition do
|
29
36
|
# Append this.name to this.definition if YARD's @example tag is followed by
|
30
37
|
# descriptive text, to support hooks for multiple examples per code object.
|
@@ -40,9 +47,9 @@ module YARD
|
|
40
47
|
this.asserts.each do |assert|
|
41
48
|
expected, actual = assert[:expected], assert[:actual]
|
42
49
|
if expected.empty?
|
43
|
-
evaluate_example(this, actual)
|
50
|
+
evaluate_example(this, actual, scope)
|
44
51
|
else
|
45
|
-
assert_example(this, expected, actual)
|
52
|
+
assert_example(this, expected, actual, scope)
|
46
53
|
end
|
47
54
|
end
|
48
55
|
end
|
@@ -52,22 +59,22 @@ module YARD
|
|
52
59
|
|
53
60
|
protected
|
54
61
|
|
55
|
-
def evaluate_example(example, actual)
|
56
|
-
context.eval
|
62
|
+
def evaluate_example(example, actual, bind)
|
63
|
+
(bind || context).send(:eval, actual)
|
57
64
|
rescue StandardError => error
|
58
65
|
add_filepath_to_backtrace(error, example.filepath)
|
59
66
|
raise error
|
60
67
|
end
|
61
68
|
|
62
|
-
def assert_example(example, expected, actual)
|
63
|
-
assert_equal evaluate(expected), evaluate(actual)
|
69
|
+
def assert_example(example, expected, actual, bind)
|
70
|
+
assert_equal evaluate(expected, bind), evaluate(actual, bind)
|
64
71
|
rescue Minitest::Assertion => error
|
65
72
|
add_filepath_to_backtrace(error, example.filepath)
|
66
73
|
raise error
|
67
74
|
end
|
68
75
|
|
69
|
-
def evaluate(code)
|
70
|
-
context.eval
|
76
|
+
def evaluate(code, bind)
|
77
|
+
(bind || context).send(:eval, code)
|
71
78
|
rescue StandardError => error
|
72
79
|
"#<#{error.class}: #{error}>"
|
73
80
|
end
|
data/lib/yard/doctest/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yard-doctest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Rodionov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yard
|
@@ -121,11 +121,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
123
|
rubyforge_project:
|
124
|
-
rubygems_version: 2.
|
124
|
+
rubygems_version: 2.5.2
|
125
125
|
signing_key:
|
126
126
|
specification_version: 4
|
127
127
|
summary: Doctests from YARD examples
|
128
128
|
test_files:
|
129
129
|
- features/support/env.rb
|
130
130
|
- features/yard-doctest.feature
|
131
|
-
has_rdoc:
|