Class: Bacon::Context
Instance Attribute Summary collapse
Instance Method Summary
collapse
-
#after(&block) ⇒ Object
-
#before(&block) ⇒ Object
-
#behaves_like(*names) ⇒ Object
-
#change?(*args, &block) ⇒ Boolean
-
#current_specification ⇒ Object
-
#describe(*args, &block) ⇒ Object
-
#initialize(name, before = nil, after = nil, &block) ⇒ Context
constructor
A new instance of Context.
-
#it(description, &block) ⇒ Object
-
#raise?(*args, &block) ⇒ Boolean
-
#run ⇒ Object
-
#should(*args, &block) ⇒ Object
-
#specification_did_finish(spec) ⇒ Object
-
#throw?(*args, &block) ⇒ Boolean
-
#wait(seconds, &block) ⇒ Object
Methods included from Helpers
converted_xibs, ensure_nib, #load_nib
Constructor Details
#initialize(name, before = nil, after = nil, &block) ⇒ Context
Returns a new instance of Context.
253
254
255
256
257
258
259
260
261
262
263
|
# File 'lib/mac_bacon.rb', line 253
def initialize(name, before = nil, after = nil, &block)
@name = name
@before, @after = (before ? before.dup : []), (after ? after.dup : [])
@block = block
@specifications = []
@current_specification_index = 0
Bacon.add_context(self)
instance_eval(&block)
end
|
Instance Attribute Details
Returns the value of attribute block.
251
252
253
|
# File 'lib/mac_bacon.rb', line 251
def block
@block
end
|
Returns the value of attribute name.
251
252
253
|
# File 'lib/mac_bacon.rb', line 251
def name
@name
end
|
Instance Method Details
#after(&block) ⇒ Object
289
|
# File 'lib/mac_bacon.rb', line 289
def after(&block); @after << block; end
|
#before(&block) ⇒ Object
288
|
# File 'lib/mac_bacon.rb', line 288
def before(&block); @before << block; end
|
#behaves_like(*names) ⇒ Object
291
292
293
|
# File 'lib/mac_bacon.rb', line 291
def behaves_like(*names)
names.each { |name| instance_eval(&Shared[name]) }
end
|
#change?(*args, &block) ⇒ Boolean
324
|
# File 'lib/mac_bacon.rb', line 324
def change?(*args, &block); block.change?(*args); end
|
#current_specification ⇒ Object
275
276
277
|
# File 'lib/mac_bacon.rb', line 275
def current_specification
@specifications[@current_specification_index]
end
|
#describe(*args, &block) ⇒ Object
310
311
312
313
314
315
316
|
# File 'lib/mac_bacon.rb', line 310
def describe(*args, &block)
context = Bacon::Context.new(args.join(' '), @before, @after, &block)
(parent_context = self).methods(false).each {|e|
class<<context; self end.send(:define_method, e) {|*args| parent_context.send(e, *args)}
}
context
end
|
#it(description, &block) ⇒ Object
295
296
297
298
299
300
|
# File 'lib/mac_bacon.rb', line 295
def it(description, &block)
return unless description =~ RestrictName
block ||= lambda { should.flunk "not implemented" }
Counter[:specifications] += 1
@specifications << Specification.new(self, description, block, @before, @after)
end
|
#raise?(*args, &block) ⇒ Boolean
322
|
# File 'lib/mac_bacon.rb', line 322
def raise?(*args, &block); block.raise?(*args); end
|
265
266
267
268
269
270
271
272
273
|
# File 'lib/mac_bacon.rb', line 265
def run
if spec = current_specification
spec.performSelector("run", withObject:nil, afterDelay:0)
else
Bacon.context_did_finish(self)
end
end
|
#should(*args, &block) ⇒ Object
302
303
304
305
306
307
308
|
# File 'lib/mac_bacon.rb', line 302
def should(*args, &block)
if Counter[:depth]==0
it('should '+args.first,&block)
else
super(*args,&block)
end
end
|
#specification_did_finish(spec) ⇒ Object
279
280
281
282
283
284
285
286
|
# File 'lib/mac_bacon.rb', line 279
def specification_did_finish(spec)
if (@current_specification_index + 1) < @specifications.size
@current_specification_index += 1
run
else
Bacon.context_did_finish(self)
end
end
|
#throw?(*args, &block) ⇒ Boolean
323
|
# File 'lib/mac_bacon.rb', line 323
def throw?(*args, &block); block.throw?(*args); end
|
#wait(seconds, &block) ⇒ Object
318
319
320
|
# File 'lib/mac_bacon.rb', line 318
def wait(seconds, &block)
current_specification.postpone_block(seconds, &block)
end
|