Class: Chicago::Schema::Builders::ColumnBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/chicago/schema/builders/column_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(column_class, defaults = {}) ⇒ ColumnBuilder

Returns a new instance of ColumnBuilder.



5
6
7
8
# File 'lib/chicago/schema/builders/column_builder.rb', line 5

def initialize(column_class, defaults={})
  @column_class = column_class
  @defaults = defaults
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(type, *args) ⇒ Object



16
17
18
19
# File 'lib/chicago/schema/builders/column_builder.rb', line 16

def method_missing(type, *args)
  name, rest = args
  @columns << @column_class.new(name, type, @defaults.merge(rest || {}))
end

Instance Method Details

#build(&block) ⇒ Object



10
11
12
13
14
# File 'lib/chicago/schema/builders/column_builder.rb', line 10

def build(&block)
  @columns = []
  instance_eval(&block) if block_given?
  @columns
end