Module: Foundry

Defined in:
lib/dsl.rb,
lib/foundry.rb

Defined Under Namespace

Classes: Runner

Class Method Summary collapse

Class Method Details

.factory(model, name = nil, definition = nil, &block) ⇒ Object Also known as: foundry

Raises:

  • (ArgumentError)


2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/foundry.rb', line 2

def self.factory(model, name=nil, definition=nil, &block)
  name ||= :valid

  raise ArgumentError, "#{model.name} already has a method/scope named #{name}" if model.respond_to?(name)

  if definition.is_a? Hash
    definition = { :conditions => definition }
  elsif block_given?
    definition = block
  else
    raise ArgumentError, "You need to provide a definition or a lambda/block definition!"
  end

  model.named_scope name, definition
end

.setup_foundries(&blk) ⇒ Object



2
3
4
# File 'lib/dsl.rb', line 2

def self.setup_foundries(&blk)
  Runner.new.instance_eval(&blk)
end