class BeetleETL::DSL

Attributes

column_names[R]
query_strings[R]
relations[R]

Public Class Methods

new(config, table_name) click to toggle source
# File lib/beetle_etl/dsl/dsl.rb, line 6
def initialize(config, table_name)
  @config = config
  @table_name = table_name
  @column_names = []
  @relations = {}
  @query_strings = []
end

Public Instance Methods

columns(*column_names) click to toggle source
# File lib/beetle_etl/dsl/dsl.rb, line 14
def columns(*column_names)
  @column_names = column_names
end
combined_key(*args) click to toggle source
# File lib/beetle_etl/dsl/dsl.rb, line 37
def combined_key(*args)
  %Q('[' || #{args.join(%q[ || ',' || ])} || ']')
end
query(query) click to toggle source
# File lib/beetle_etl/dsl/dsl.rb, line 22
def query(query)
  @query_strings << query
end
references(foreign_table, on: foreign_key) click to toggle source
# File lib/beetle_etl/dsl/dsl.rb, line 18
def references(foreign_table, on: foreign_key)
  @relations[on] = foreign_table
end
stage_table(table_name = nil) click to toggle source

query helper methods

# File lib/beetle_etl/dsl/dsl.rb, line 28
def stage_table(table_name = nil)
  stage_table_name = BeetleETL::Naming.stage_table_name(
    @config.external_source,
    table_name || @table_name
  )

  %Q("#{@config.target_schema}"."#{stage_table_name}")
end