class DataKeeper::DefinitionBuilder

Public Class Methods

new(type, definition_block) click to toggle source
# File lib/data_keeper/definition.rb, line 29
def initialize(type, definition_block)
  raise InvalidDumpType, "Invalid type! use :partial or :full" unless [:partial, :full].include?(type)

  @type = type
  @tables = []
  @raw_sqls = {}
  @definition_block = definition_block
end

Public Instance Methods

evaluate!() click to toggle source
# File lib/data_keeper/definition.rb, line 38
def evaluate!
  instance_eval(&@definition_block) if @definition_block

  Definition.new(@type, @tables, @raw_sqls, @on_after_load_block)
end
on_after_load(&block) click to toggle source
# File lib/data_keeper/definition.rb, line 56
def on_after_load(&block)
  @on_after_load_block = block
end
sql(table, name, &block) click to toggle source
# File lib/data_keeper/definition.rb, line 50
def sql(table, name, &block)
  raise InvalidDumpDefinition if @type == :full
  raise(InvalidDumpDefinition, "sql already defined") if @raw_sqls.key?(name)
  @raw_sqls[name] = [table, block]
end
table(name) click to toggle source
# File lib/data_keeper/definition.rb, line 44
def table(name)
  raise InvalidDumpDefinition if @type == :full
  raise(InvalidDumpDefinition, "table already defined") if @tables.include?(name)
  @tables << name
end