Class Bacon::TestUnitOutput::TapOutput::Context
In: lib/bacon.rb
Parent: Object

Methods

after   before   behaves_like   change?   it   new   raise?   run_requirement   should   throw?  

Public Class methods

[Source]

     # File lib/bacon.rb, line 108
108:     def initialize(name, &block)
109:       @name = name
110:       @before, @after = [], []
111: 
112:       return  unless name =~ RestrictContext
113:       Bacon.handle_specification(name) { instance_eval(&block) }
114:     end

Public Instance methods

[Source]

     # File lib/bacon.rb, line 117
117:     def after(&block);  @after << block; end

[Source]

     # File lib/bacon.rb, line 116
116:     def before(&block); @before << block; end

[Source]

     # File lib/bacon.rb, line 119
119:     def behaves_like(*names)
120:       names.each { |name| instance_eval(&Shared[name]) }
121:     end

[Source]

     # File lib/bacon.rb, line 186
186:     def change?(*args, &block); block.change?(*args); end

[Source]

     # File lib/bacon.rb, line 123
123:     def it(description, &block)
124:       return  unless description =~ RestrictName
125:       block ||= lambda { should.flunk "not implemented" }
126:       Counter[:specifications] += 1
127:       run_requirement description, block
128:     end

[Source]

     # File lib/bacon.rb, line 184
184:     def raise?(*args, &block); block.raise?(*args); end

[Source]

     # File lib/bacon.rb, line 138
138:     def run_requirement(description, spec)
139:       Bacon.handle_requirement description do
140:         begin
141:           Counter[:depth] += 1
142:           rescued = false
143:           begin
144:             @before.each { |block| instance_eval(&block) }
145:             prev_req = Counter[:requirements]
146:             instance_eval(&spec)
147:           rescue Object => e
148:             rescued = true
149:             raise e
150:           ensure
151:             if Counter[:requirements] == prev_req and not rescued
152:               raise Error.new(:missing,
153:                               "empty specification: #{@name} #{description}")
154:             end
155:             begin
156:               @after.each { |block| instance_eval(&block) }
157:             rescue Object => e
158:               raise e  unless rescued
159:             end
160:           end
161:         rescue Object => e
162:           ErrorLog << "#{e.class}: #{e.message}\n"
163:           e.backtrace.find_all { |line| line !~ /bin\/bacon|\/bacon\.rb:\d+/ }.
164:             each_with_index { |line, i|
165:             ErrorLog << "\t#{line}#{i==0 ? ": #@name - #{description}" : ""}\n"
166:           }
167:           ErrorLog << "\n"
168: 
169:           if e.kind_of? Error
170:             Counter[e.count_as] += 1
171:             e.count_as.to_s.upcase
172:           else
173:             Counter[:errors] += 1
174:             "ERROR: #{e.class}"
175:           end
176:         else
177:           ""
178:         ensure
179:           Counter[:depth] -= 1
180:         end
181:       end
182:     end

[Source]

     # File lib/bacon.rb, line 130
130:     def should(*args, &block)
131:       if Counter[:depth]==0
132:         it('should '+args.first,&block)
133:       else
134:         super(*args,&block)
135:       end
136:     end

[Source]

     # File lib/bacon.rb, line 185
185:     def throw?(*args, &block); block.throw?(*args); end

[Validate]