class Bogus::CreatesFakes

Public Instance Methods

create(name, opts = {}, &block) click to toggle source
# File lib/bogus/fakes/creates_fakes.rb, line 9
def create(name, opts = {}, &block)
  klass = self.klass(name, &block)
  duck = make_duck(klass)
  klass_copy = copies_classes.copy(duck)

  mode = opts.fetch(:as, :instance)

  case mode
  when :instance
    return klass_copy.__create__
  when :class
    return klass_copy
  else
    raise UnknownMode.new("Unknown fake creation mode: #{mode}. Allowed values are :instance, :class")
  end
end

Protected Instance Methods

klass(name, &block) click to toggle source
# File lib/bogus/fakes/creates_fakes.rb, line 28
def klass(name, &block)
  return block.call if block_given?
  converts_name_to_class.convert(name)
end
make_duck(klass) click to toggle source
# File lib/bogus/fakes/creates_fakes.rb, line 33
def make_duck(klass)
  return klass unless klass.is_a?(Array)
  makes_ducks.make(*klass)
end