module Quacky

Public Instance Methods

class_double(name, options) click to toggle source
# File lib/quacky/quacky.rb, line 39
def class_double name, options
  class_modules, instance_modules = parse_class_double_options options

  Class.new do
    extend Expectations
    include Expectations
    extend ClassInspect
    include InstanceInspect
    name_class_double name

    class_modules.each do |class_module|
      extend class_module
    end

    instance_modules.each do |instance_module|
      include instance_module
    end
  end
end
Also aliased as: class_mock
class_mock(name, options)
Alias for: class_double
clear_expectations!() click to toggle source
# File lib/quacky/quacky.rb, line 8
def clear_expectations!
  @expectations = nil
end
double(name, *duck_types) click to toggle source
# File lib/quacky/quacky.rb, line 12
def double(name, *duck_types)
  Double.new(name).tap do |object|
    duck_types.each do |duck_type|
      object.extend duck_type
    end
    object.extend Expectations
  end
end
Also aliased as: mock
expectations() click to toggle source
# File lib/quacky/quacky.rb, line 4
def expectations
  @expectations ||= []
end
mock(name, *duck_types)
Alias for: double

Private Instance Methods

parse_class_double_options(options) click to toggle source
# File lib/quacky/quacky.rb, line 60
def parse_class_double_options options
  class_modules    = options.fetch :class
  instance_modules = options.fetch :instance

  class_modules    = [class_modules] unless class_modules.respond_to? :each
  instance_modules = [instance_modules] unless instance_modules.respond_to? :each

  [class_modules, instance_modules]
end