Class: ETL::Generator::SurrogateKeyGenerator
Overview
Surrogate key generator.
Instance Attribute Summary (collapse)
-
- (Object) column
readonly
Returns the value of attribute column.
-
- (Object) query
readonly
Returns the value of attribute query.
-
- (Object) table
readonly
Returns the value of attribute table.
-
- (Object) target
readonly
Returns the value of attribute target.
Instance Method Summary (collapse)
-
- (SurrogateKeyGenerator) initialize(options = {})
constructor
Initialize the generator.
-
- (Object) next
Get the next surrogate key.
- - (Object) table_name
Methods inherited from Generator
Constructor Details
- (SurrogateKeyGenerator) initialize(options = {})
Initialize the generator
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/etl/generator/surrogate_key_generator.rb', line 13 def initialize(={}) @table = [:table] @target = [:target] @column = [:column] || 'id' @query = [:query] if table @surrogate_key = ETL::Engine.connection(target).select_value("SELECT max(#{column}) FROM #{table_name}") elsif query @surrogate_key = ETL::Engine.connection(target).select_value(query) end @surrogate_key = 0 if @surrogate_key.blank? @surrogate_key = @surrogate_key.to_i end |
Instance Attribute Details
- (Object) column (readonly)
Returns the value of attribute column
9 10 11 |
# File 'lib/etl/generator/surrogate_key_generator.rb', line 9 def column @column end |
- (Object) query (readonly)
Returns the value of attribute query
10 11 12 |
# File 'lib/etl/generator/surrogate_key_generator.rb', line 10 def query @query end |
- (Object) table (readonly)
Returns the value of attribute table
7 8 9 |
# File 'lib/etl/generator/surrogate_key_generator.rb', line 7 def table @table end |
- (Object) target (readonly)
Returns the value of attribute target
8 9 10 |
# File 'lib/etl/generator/surrogate_key_generator.rb', line 8 def target @target end |
Instance Method Details
- (Object) next
Get the next surrogate key
29 30 31 32 |
# File 'lib/etl/generator/surrogate_key_generator.rb', line 29 def next @surrogate_key ||= 0 @surrogate_key += 1 end |
- (Object) table_name
34 35 36 |
# File 'lib/etl/generator/surrogate_key_generator.rb', line 34 def table_name ETL::Engine.table(table, ETL::Engine.connection(target)) end |