Class: RSpec::EM::AsyncSteps

Inherits:
Module
  • Object
show all
Defined in:
lib/rspec/eventmachine/async_steps.rb

Defined Under Namespace

Modules: Scheduler

Instance Method Summary collapse

Instance Method Details

#included(klass) ⇒ Object



4
5
6
# File 'lib/rspec/eventmachine/async_steps.rb', line 4

def included(klass)
  klass.__send__(:include, Scheduler)
end

#method_added(method_name) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/rspec/eventmachine/async_steps.rb', line 8

def method_added(method_name)
  async_method_name = "async_#{method_name}"

  return if instance_methods(false).map { |m| m.to_s }.include?(async_method_name) or
            method_name.to_s =~ /^async_/

  module_eval <<-RUBY, __FILE__, __LINE__ + 1
    alias :#{async_method_name} :#{method_name}

    def #{method_name}(*args)
      __enqueue__([#{async_method_name.inspect}] + args)
    end
  RUBY
end