Module: Usabl::Rspec::Helpers

Defined in:
lib/usabl/rspec/helpers.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(mod) ⇒ Object



3
4
5
# File 'lib/usabl/rspec/helpers.rb', line 3

def self.included(mod)
  mod.include Testspace::Rspec::Helpers
end

Instance Method Details

#use(refinement, *methods, &block) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/usabl/rspec/helpers.rb', line 7

def use(refinement, *methods, &block)
  testspace do |space|
    methods.each do |method|
      line = __LINE__
      script = <<EOS
module #{space.module}
  using ObjectSpace._id2ref(#{refinement.object_id})

  def self.#{method}(receiver, *args, &block)
receiver.#{method} *args, &block
  end
end
EOS
      ::Kernel.eval script, ::Object::TOPLEVEL_BINDING, __FILE__, line + 2
    end
    block.call space.module
  end
end