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

#spy_on(cls, method) ⇒ Object

Spying on class methods



54
55
56
# File 'lib/gimme/dsl.rb', line 54

def spy_on(cls, method)
  SpiesOnClassMethod.new(cls).spy(method)
end

#spy_on!(cls, method) ⇒ Object



58
59
60
61
62
# File 'lib/gimme/dsl.rb', line 58

def spy_on!(cls, method)
  spies_on = SpiesOnClassMethod.new(cls)
  spies_on.raises_no_method_error = false
  spies_on.spy(method)
end

#verify(double, times = 1) ⇒ Object

Verification



39
40
41
42
43
44
45
# File 'lib/gimme/dsl.rb', line 39

def verify(double,times=1)
  if double.kind_of? Class
    Gimme::VerifiesClassMethods.new(double, times)
  else
    Gimme::Verifies.new(double,times)
  end
end

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



47
48
49
50
51
# File 'lib/gimme/dsl.rb', line 47

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