module RSpec::Hollerback::Mocks::CallbackMessageExpectation

Public Instance Methods

and_callback(callback_name, *callback_args, &callback_block) click to toggle source
# File lib/rspec/hollerback/mocks/callback_message_expectation.rb, line 5
def and_callback(callback_name, *callback_args, &callback_block)
  # Lookup callback class
  target_class = @method_double.object.is_a?(Module) ? @method_double.object : @method_double.object.class
  raise ArgumentError.new("Target class #{target_class.name.to_s} does not implement Hollerback!") if !(target_class < ::Hollerback)
  callback_class = target_class.const_get("Callbacks")

  # Add callback action
  self.callback_implementation_action(RSpec::Hollerback::Mocks::AndCallbackImplementation.new(callback_class, callback_name, *callback_args, &callback_block))

  self
end
callback_implementation_action(action) click to toggle source
# File lib/rspec/hollerback/mocks/callback_message_expectation.rb, line 17
def callback_implementation_action(action)
  return unless action
  (implementation.callback_actions ||= []).push(action)
end