Module: Gimme::DSL

Defined in:
lib/gimme/dsl.rb

Instance Method Summary collapse

Instance Method Details

#gimme(cls = nil) ⇒ Object

Instantiation



6
7
8
# File 'lib/gimme/dsl.rb', line 6

def gimme(cls=nil)
  Gimme::TestDouble.new(cls)
end

#gimme_next(cls) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/gimme/dsl.rb', line 10

def gimme_next(cls)
  double = Gimme::TestDouble.new(cls)
  meta_class = class << cls; self; end
  real_new = cls.method(:new)
  meta_class.send(:define_method,:new) do |*args|
    double.send(:initialize,*args)
    meta_class.send(:define_method,:new,real_new) #restore :new on the class
    double
  end
  double
end

#give(double) ⇒ Object

Stubbing



24
25
26
27
28
29
30
# File 'lib/gimme/dsl.rb', line 24

def give(double)
  if double.kind_of? Class
    Gimme::GivesClassMethods.new(double)
  else
    Gimme::Gives.new(double)
  end
end

#give!(double) ⇒ Object



32
33
34
35
36
# File 'lib/gimme/dsl.rb', line 32

def give!(double)
  give = give(double)
  give.raises_no_method_error = false
  give
end

#verify(double, times = 1) ⇒ Object

Verification



39
40
41
# File 'lib/gimme/dsl.rb', line 39

def verify(double,times=1)
  Gimme::Verifies.new(double,times)
end

#verify!(double, times = 1) ⇒ Object



43
44
45
46
47
# File 'lib/gimme/dsl.rb', line 43

def verify!(double,times=1)
  verify = verify(double,times)
  verify.raises_no_method_error = false
  verify
end