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.



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

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

Instance Method Details

#executeObject



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

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



27
28
29
# File 'lib/rspec/hive/query_builder.rb', line 27

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

#insert!(new_rows) ⇒ Object



31
32
33
34
# File 'lib/rspec/hive/query_builder.rb', line 31

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

#partition(hash) ⇒ Object



18
19
20
# File 'lib/rspec/hive/query_builder.rb', line 18

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

#partition!(partition) ⇒ Object



22
23
24
25
# File 'lib/rspec/hive/query_builder.rb', line 22

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

#with_stubbingObject



44
45
46
# File 'lib/rspec/hive/query_builder.rb', line 44

def with_stubbing
  spawn.with_stubbing!
end

#with_stubbing!Object



48
49
50
51
# File 'lib/rspec/hive/query_builder.rb', line 48

def with_stubbing!
  self.stubbing = true
  self
end