Class: RSpec::Hive::QueryBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec/hive/query_builder.rb,
lib/rspec/hive/query_builder/type_faker.rb,
lib/rspec/hive/query_builder/null_strategy.rb,
lib/rspec/hive/query_builder/row_transformer.rb,
lib/rspec/hive/query_builder/value_by_type_strategy.rb

Defined Under Namespace

Classes: NullStrategy, RowTransformer, TypeFaker, ValueByTypeStrategy

Instance Method Summary collapse

Constructor Details

#initialize(schema, connection) ⇒ QueryBuilder

Returns a new instance of QueryBuilder.



8
9
10
11
12
13
14
# File 'lib/rspec/hive/query_builder.rb', line 8

def initialize(schema, connection)
  @schema = schema
  @connection = connection
  @partition_hash = {}
  @rows = []
  @stubbing = false
end

Instance Method Details

#executeObject



34
35
36
37
38
39
40
# File 'lib/rspec/hive/query_builder.rb', line 34

def execute
  if partition_hash.empty?
    connection.load_into_table(schema, transformed_rows)
  else
    connection.load_into_table(schema, transformed_rows, partition_hash)
  end
end

#insert(*new_rows) ⇒ Object



25
26
27
# File 'lib/rspec/hive/query_builder.rb', line 25

def insert(*new_rows)
  spawn.insert!(new_rows)
end

#insert!(new_rows) ⇒ Object



29
30
31
32
# File 'lib/rspec/hive/query_builder.rb', line 29

def insert!(new_rows)
  rows.concat(new_rows)
  self
end

#partition(hash) ⇒ Object



16
17
18
# File 'lib/rspec/hive/query_builder.rb', line 16

def partition(hash)
  spawn.partition!(hash)
end

#partition!(partition) ⇒ Object



20
21
22
23
# File 'lib/rspec/hive/query_builder.rb', line 20

def partition!(partition)
  partition_hash.merge!(partition)
  self
end

#with_stubbingObject



42
43
44
# File 'lib/rspec/hive/query_builder.rb', line 42

def with_stubbing
  spawn.with_stubbing!
end

#with_stubbing!Object



46
47
48
49
# File 'lib/rspec/hive/query_builder.rb', line 46

def with_stubbing!
  self.stubbing = true
  self
end