Class: TableLoaderDSL

Inherits:
Object show all
Defined in:
lib/dataload/dsl/table_loader_dsl.rb

Instance Method Summary collapse

Constructor Details

#initialize(&b) ⇒ TableLoaderDSL

Returns a new instance of TableLoaderDSL.



17
18
19
20
21
# File 'lib/dataload/dsl/table_loader_dsl.rb', line 17

def initialize(&b)
  @blk = b
  instance_eval(&@blk)
  master.add(self)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(sym, *args, &b) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/dataload/dsl/table_loader_dsl.rb', line 26

def method_missing(sym,*args,&b)
  if [:string, :text, :integer, :float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean].include?(sym)
    args.flatten.each { |x| column(x,sym,&b) }
  else
    super(sym,*args,&b)
  end
end

Instance Method Details

#column(name, type, &blk) ⇒ Object



22
23
24
25
# File 'lib/dataload/dsl/table_loader_dsl.rb', line 22

def column(name,type,&blk)
  blk ||= lambda { |x| x.send(name) }
  loader.columns << Column.new(:target_name => name, :blk => blk)
end

#delimiter(x) ⇒ Object



43
44
45
# File 'lib/dataload/dsl/table_loader_dsl.rb', line 43

def delimiter(x)
  loader.delimiter = x
end

#masterObject



14
15
16
# File 'lib/dataload/dsl/table_loader_dsl.rb', line 14

def master
  MasterLoader.instance
end

#run!Object



39
40
41
42
# File 'lib/dataload/dsl/table_loader_dsl.rb', line 39

def run!
  manager.delete_rows! if @delete_existing_rows
  loader.load!
end

#source(file) ⇒ Object



33
34
35
# File 'lib/dataload/dsl/table_loader_dsl.rb', line 33

def source(file)
  loader.source_filename = file
end

#table(name) ⇒ Object



36
37
38
# File 'lib/dataload/dsl/table_loader_dsl.rb', line 36

def table(name)
  both.table_name = name
end