lib/amqp-spec/rspec.rb in amqp-spec-0.3.1 vs lib/amqp-spec/rspec.rb in amqp-spec-0.3.2

- old
+ new

@@ -1,7 +1,7 @@ -require 'amqp-spec/amqp' -require 'amqp-spec/evented_example' +require_relative 'amqp' +require_relative 'evented_example' # You can include one of the following modules into your example groups: # AMQP::SpecHelper, # AMQP::Spec, # AMQP::EMSpec. @@ -78,19 +78,47 @@ em_hooks[:after] << block end # Collection of evented hooks def em_hooks - metadata[:em_hooks] ||= {:before => [], :after => []} + metadata[:em_hooks] ||= {} + metadata[:em_hooks][self] ||= {:before => [], :after => []} +# p "#{self} < #{superclass}", em_metadata[:em_hooks].keys + metadata[:em_hooks][self] end + +# # Returns a collection of all em hooks of given type +# # (including ancestor hooks) +# # +# def all_hooks type +# hooks = superclass.all_hooks(type) rescue [] +# hooks += em_hooks[type] +# end + + # Returns a collection of all em hooks of given type + # (including ancestor hooks) + # + def all_hooks type + hooks = superclass.all_hooks(type) rescue [] + hooks += em_hooks[type] +# :before == type ? hooks : hooks.reverse + hooks + end + end def self.included example_group unless example_group.respond_to? :default_timeout example_group.extend GroupMethods example_group.metadata[:em_defaults] = {} example_group.metadata[:em_timeout] = nil end + end + + # Retrieves metadata passed in from enclosing example groups + # + def metadata + @em_metadata ||= self.class.metadata.dup rescue {} end # Yields to a given block inside EM.run and AMQP.start loops. This method takes # any option that is accepted by EventMachine::connect. Options for AMQP.start include: # * :user => String (default ‘guest’) - Username as defined by the AMQP server. \ No newline at end of file