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