191: def process
192: MSpec.register_current self
193:
194: if @parsed and filter_examples
195: MSpec.shuffle @examples if MSpec.randomize?
196: MSpec.actions :enter, description
197:
198: if protect "before :all", pre(:all)
199: @examples.each do |state|
200: @state = state
201: example = state.example
202: MSpec.actions :before, state
203:
204: if protect "before :each", pre(:each)
205: MSpec.clear_expectations
206: if example
207: passed = protect nil, example
208: MSpec.actions :example, state, example
209: protect nil, @expectation_missing unless MSpec.expectation? or not passed
210: end
211: protect "after :each", post(:each)
212: protect "Mock.verify_count", @mock_verify
213: end
214:
215: protect "Mock.cleanup", @mock_cleanup
216: MSpec.actions :after, state
217: @state = nil
218: end
219: protect "after :all", post(:all)
220: else
221: protect "Mock.cleanup", @mock_cleanup
222: end
223:
224: MSpec.actions :leave
225: end
226:
227: MSpec.register_current nil
228: children.each { |child| child.process }
229: end