exemplor 2.7.0 → 2.9.0
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/TODO +1 -0
- data/VERSION +1 -1
- data/examples.rb +4 -3
- data/examples/check_parsing.rb +22 -0
- data/examples/checking_nil.rb +9 -3
- data/exemplor.gemspec +2 -2
- data/lib/exemplor.rb +17 -4
- metadata +2 -2
data/TODO
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.9.0
|
data/examples.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
#
|
2
|
-
require '
|
1
|
+
# uses the gem version, not the one being tested
|
2
|
+
require 'exemplor'
|
3
3
|
|
4
4
|
# slow because each test runs in a subshell
|
5
5
|
|
@@ -25,7 +25,8 @@ eg.helpers do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
eg "version matches file" do
|
28
|
-
|
28
|
+
version = `ruby -Ilib -e "require 'exemplor' ; print Exemplor.version"`
|
29
|
+
Check(version).is(File.read(__FILE__.sub('examples.rb','VERSION')))
|
29
30
|
end
|
30
31
|
|
31
32
|
eg "errors are caught and nicely displayed" do
|
data/examples/check_parsing.rb
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
require 'exemplor'
|
2
2
|
|
3
|
+
eg.helpers do
|
4
|
+
def foo() 'bar' end
|
5
|
+
end
|
6
|
+
|
7
|
+
eg "plain call" do
|
8
|
+
Check(foo)
|
9
|
+
end
|
10
|
+
|
11
|
+
eg "whitespace after the call (seriously)" do
|
12
|
+
Check(foo)
|
13
|
+
end
|
14
|
+
|
15
|
+
eg "comment after the call" do
|
16
|
+
Check(foo) # comment!
|
17
|
+
end
|
18
|
+
|
3
19
|
eg "with brackets" do
|
4
20
|
Check(String.new('test'))
|
5
21
|
end
|
@@ -10,6 +26,12 @@ end
|
|
10
26
|
|
11
27
|
__END__
|
12
28
|
|
29
|
+
(I) plain call:
|
30
|
+
(i) foo: bar
|
31
|
+
(I) whitespace after the call (seriously):
|
32
|
+
(i) foo: bar
|
33
|
+
(I) comment after the call:
|
34
|
+
(i) foo: bar
|
13
35
|
(I) with brackets:
|
14
36
|
(i) String.new('test'): test
|
15
37
|
(s) with brackets and is:
|
data/examples/checking_nil.rb
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
require 'exemplor'
|
2
2
|
|
3
|
-
eg "checking
|
3
|
+
eg "checking nil works correctly" do
|
4
|
+
Check(nil)
|
5
|
+
end
|
6
|
+
|
7
|
+
eg "asserting for nil works correctly" do
|
4
8
|
Check(nil).is(nil)
|
5
9
|
end
|
6
10
|
|
7
11
|
__END__
|
8
12
|
|
9
|
-
(
|
10
|
-
(
|
13
|
+
(I) checking nil works correctly:
|
14
|
+
(i) nil:
|
15
|
+
(s) asserting for nil works correctly:
|
16
|
+
(s) nil:
|
data/exemplor.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{exemplor}
|
8
|
-
s.version = "2.
|
8
|
+
s.version = "2.9.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Myles Byrne"]
|
12
|
-
s.date = %q{2009-10-
|
12
|
+
s.date = %q{2009-10-29}
|
13
13
|
s.email = %q{myles@myles.id.au}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"README"
|
data/lib/exemplor.rb
CHANGED
@@ -71,7 +71,7 @@ module Exemplor
|
|
71
71
|
def Check(value)
|
72
72
|
file, line_number = caller.first.match(/^(.+):(\d+)/).captures
|
73
73
|
line = File.read(file).map[line_number.to_i - 1]
|
74
|
-
name = line[/Check\((.+?)\)(
|
74
|
+
name = line[/Check\((.+?)\)\s*($|#|\[|\.is.+)/,1]
|
75
75
|
check = Check.new(name, value)
|
76
76
|
_checks << check
|
77
77
|
check
|
@@ -96,8 +96,9 @@ module Exemplor
|
|
96
96
|
patterns = Regexp.new(patterns.join('|'))
|
97
97
|
@examples.each do |name, body|
|
98
98
|
if name =~ patterns
|
99
|
-
status, out = run_example(body)
|
99
|
+
status, out, stderr = run_example(body)
|
100
100
|
print_yaml("#{status_icon(status)} #{name}" => out)
|
101
|
+
print_stderr stderr
|
101
102
|
end
|
102
103
|
end
|
103
104
|
end
|
@@ -114,6 +115,12 @@ module Exemplor
|
|
114
115
|
print(out)
|
115
116
|
end
|
116
117
|
|
118
|
+
def print_stderr(stderr)
|
119
|
+
unless stderr.empty?
|
120
|
+
$stdout.tty? ? $stdout.puts("#{Term::ANSIColor.reset}(STDERR):\n#{stderr}") : $stderr.puts(stderr)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
117
124
|
# hacky
|
118
125
|
def colorize(out)
|
119
126
|
require 'term/ansicolor'
|
@@ -127,7 +134,7 @@ module Exemplor
|
|
127
134
|
start_color(line, :red)
|
128
135
|
when /^(?:\s{2})?(\(i\))/i
|
129
136
|
start_color(line, :blue)
|
130
|
-
else
|
137
|
+
else
|
131
138
|
line
|
132
139
|
end
|
133
140
|
end.join("\n") + "\n#{Term::ANSIColor.reset}"
|
@@ -140,7 +147,11 @@ module Exemplor
|
|
140
147
|
def run_example(code)
|
141
148
|
status = :info
|
142
149
|
env = Example.new
|
150
|
+
stderr = StringIO.new
|
143
151
|
out = begin
|
152
|
+
real_stderr = $stderr
|
153
|
+
$stderr = stderr
|
154
|
+
|
144
155
|
env.instance_eval(&Example.setup_block) if Example.setup_block
|
145
156
|
value = env.instance_eval(&code)
|
146
157
|
if env._checks.empty?
|
@@ -154,8 +165,10 @@ module Exemplor
|
|
154
165
|
rescue Object => error
|
155
166
|
status = :error
|
156
167
|
render_error(error)
|
168
|
+
ensure
|
169
|
+
$stderr = real_stderr
|
157
170
|
end
|
158
|
-
[status, out]
|
171
|
+
[status, out, stderr.rewind && stderr.read]
|
159
172
|
end
|
160
173
|
|
161
174
|
def render_checks(checks)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exemplor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Myles Byrne
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-29 00:00:00 +11:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|