Module: RSpecLets::Helper

Defined in:
lib/rspec-lets/helper.rb

Instance Method Summary collapse

Instance Method Details

#help(hash) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/rspec-lets/helper.rb', line 32

def help(hash)
  hash.each do |var, value|
    define_method var do |*args|
      instance_exec(*args, &value)
    end
  end
end

#lets(hash) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/rspec-lets/helper.rb', line 5

def lets(hash)
  hash.each do |keys, value|
    Array.wrap(keys).each_with_index do |key, index|
      define_method key do
        @assignments ||= {}
        if value.arity == 1
          @assignments[key] ||= instance_exec(index, &value)
        elsif value.arity == 2
          @assignments[key] ||= instance_exec(index, key, &value)
        else
          @assignments[key] ||= instance_exec(&value)
        end
      end
    end
  end
end

#lets!(hash) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/rspec-lets/helper.rb', line 22

def lets!(hash)
  lets(hash)

  hash.each do |keys, value|
    Array.wrap(keys).each do |key|
      before { __send__(key) }
    end
  end
end