assert2 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/assert2.rb +32 -0
  2. data/lib/ruby_reflector.rb +9 -3
  3. metadata +41 -48
data/lib/assert2.rb CHANGED
@@ -156,6 +156,38 @@ module Assert_2_0
156
156
  end
157
157
  end
158
158
 
159
+ # wrap this common idiom:
160
+ # foo = assemble()
161
+ # deny{ foo.bar() }
162
+ # foo.activate()
163
+ # assert{ foo.bar() }
164
+ #
165
+ # that becomes:
166
+ # foo = assemble()
167
+ # assert_yin_yang proc{ foo.bar() } do
168
+ # foo.activate()
169
+ # end
170
+ #
171
+ def assert_yin_yang(prock, diagnostic = nil, &block)
172
+ source = reflect_source(&block)
173
+ fuss = [diagnostic, "fault before calling:", source].compact.join("\n")
174
+ deny fuss, &prock
175
+ block.call
176
+ fuss = [diagnostic, "fault after calling:", source].compact.join("\n")
177
+ assert fuss, &prock
178
+ end
179
+
180
+ # the prock assertion must pass on both sides of the called block
181
+ #
182
+ def deny_yin_yang(prock, diagnostic = nil, &block)
183
+ source = reflect_source(&block)
184
+ fuss = [diagnostic, "fault before calling:", source].compact.join("\n")
185
+ assert fuss, &prock
186
+ block.call
187
+ fuss = [diagnostic, "fault after calling:", source].compact.join("\n")
188
+ assert fuss, &prock
189
+ end
190
+
159
191
  private
160
192
  def build_message_(diagnostic, reflection)
161
193
  diagnostic = nil if diagnostic == ''
@@ -130,7 +130,7 @@ module RubyNodeReflector
130
130
  if e.message.index('syntax error, unexpected \',\'') and expression !~ /\[ /
131
131
  return eval_intermediate_guarded('[ ' + expression + ' ]')
132
132
  end # faint prayer to infinite recursion diety here! (-;
133
-
133
+
134
134
  @evaluations << [expression, nil, e.message]
135
135
  rescue => e
136
136
  @evaluations << [expression, nil, e.message]
@@ -151,7 +151,7 @@ module RubyNodeReflector
151
151
  return prettier
152
152
  end
153
153
  private :short_inspect
154
-
154
+
155
155
  # ERGO spew the backrefs (?) any regular expression matchers may emit!
156
156
  # ERGO don't eval the caller of a block without its block!
157
157
 
@@ -208,6 +208,11 @@ module RubyNodeReflector
208
208
  "\nend\n"
209
209
  end
210
210
 
211
+ def _method(node)
212
+ p node
213
+ return ''
214
+ end
215
+
211
216
  def _class(node); _module(node, 'class'); end
212
217
  def _self(node); 'self'; end
213
218
  def _defn(node); _defs(node); end
@@ -265,7 +270,8 @@ module RubyNodeReflector
265
270
  @rest = @args[:rest] if @args
266
271
  @opt = @args[:opt] if @args
267
272
 
268
- @node[:tbl].each_with_index do |@n, @index|
273
+ @node[:tbl].each_with_index do |_n, _index|
274
+ @n, @index = _n, _index
269
275
  render_argument
270
276
  break if @block_arg
271
277
  end
metadata CHANGED
@@ -1,62 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.4
3
+ specification_version: 1
2
4
  name: assert2
3
5
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
6
+ version: 0.3.1
7
+ date: 2008-04-18 00:00:00 -07:00
8
+ summary: An assertion that reflects its block, with all intermediate values
9
+ require_paths:
10
+ - lib
11
+ email: phlip2005@gmail.com
12
+ homepage: http://assert2.rubyforge.org/
13
+ rubyforge_project: assert2
14
+ description:
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: false
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
5
25
  platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
6
29
  authors:
7
30
  - Phlip
8
- autorequire:
9
- bindir: bin
10
- cert_chain: []
31
+ files:
32
+ - lib/ruby_reflector.rb
33
+ - lib/assert2.rb
34
+ test_files: []
35
+
36
+ rdoc_options: []
37
+
38
+ extra_rdoc_files: []
39
+
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ requirements: []
11
45
 
12
- date: 2008-03-08 00:00:00 -08:00
13
- default_executable:
14
46
  dependencies:
15
47
  - !ruby/object:Gem::Dependency
16
48
  name: rubynode
17
49
  version_requirement:
18
- version_requirements: !ruby/object:Gem::Requirement
50
+ version_requirements: !ruby/object:Gem::Version::Requirement
19
51
  requirements:
20
- - - ">="
52
+ - - ">"
21
53
  - !ruby/object:Gem::Version
22
- version: "0"
54
+ version: 0.0.0
23
55
  version:
24
- description:
25
- email: phlip2005@gmail.com
26
- executables: []
27
-
28
- extensions: []
29
-
30
- extra_rdoc_files: []
31
-
32
- files:
33
- - lib/ruby_reflector.rb
34
- - lib/assert2.rb
35
- has_rdoc: false
36
- homepage: http://assert2.rubyforge.org/
37
- post_install_message:
38
- rdoc_options: []
39
-
40
- require_paths:
41
- - lib
42
- required_ruby_version: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
47
- version:
48
- required_rubygems_version: !ruby/object:Gem::Requirement
49
- requirements:
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: "0"
53
- version:
54
- requirements: []
55
-
56
- rubyforge_project: assert2
57
- rubygems_version: 1.0.1
58
- signing_key:
59
- specification_version: 2
60
- summary: An assertion that reflects its block, with all intermediate values
61
- test_files: []
62
-