Class: Kiba::Plus::Destination::Mysql

Inherits:
Object
  • Object
show all
Includes:
Helper
Defined in:
lib/kiba/plus/destination/mysql.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helper

#format_sql, #mysql2_connect_hash, #scheme

Constructor Details

#initialize(options = {}) ⇒ Mysql

Returns a new instance of Mysql.



12
13
14
15
16
17
18
19
20
21
# File 'lib/kiba/plus/destination/mysql.rb', line 12

def initialize(options = {})
  @options = options
  @options.assert_valid_keys(
    :connect_url,
    :prepare_sql,
    :columns
  )
  @client = Mysql2::Client.new(mysql2_connect_hash(connect_url))
  init
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



10
11
12
# File 'lib/kiba/plus/destination/mysql.rb', line 10

def client
  @client
end

#optionsObject (readonly)

Returns the value of attribute options.



10
11
12
# File 'lib/kiba/plus/destination/mysql.rb', line 10

def options
  @options
end

Instance Method Details

#closeObject



31
32
33
34
# File 'lib/kiba/plus/destination/mysql.rb', line 31

def close
  @client.close
  @client = nil
end

#write(row) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/kiba/plus/destination/mysql.rb', line 23

def write(row)
  @pre_stmt.execute(*row.values_at(*columns))
rescue => e
  Kiba::Plus.logger.error "ERROR for #{row}"
  Kiba::Plus.logger.error e.message
  raise e
end