class Embulk::Output::PixelaOut
Public Class Methods
transaction(config, schema, count) { |task| ... }
click to toggle source
# File lib/embulk/output/pixela.rb, line 10 def self.transaction(config, schema, count, &control) # configuration code: task = { "name" => config.param("name", :string), "token" => config.param("token", :string), "graph_id" => config.param("graph_id", :string), "quantity_float_column" => config.param("quantity_float_column", :string, default: nil), "quantity_int_column" => config.param("quantity_int_column", :string, default: nil), "date_column" => config.param("date_column", :string), } # resumable output: # resume(task, schema, count, &control) # non-resumable output: task_reports = yield(task) next_config_diff = {} return next_config_diff end
Public Instance Methods
abort()
click to toggle source
# File lib/embulk/output/pixela.rb, line 86 def abort end
add(page)
click to toggle source
# File lib/embulk/output/pixela.rb, line 67 def add(page) Embulk.logger.info { "Connecting to https://pixe.la/v1/users/#{@client.username}/graphs/#{@graph_id}" } page.each do |record| data = Hash[schema.names.zip(record)] # Choose only target columns quantity = data["#{@quantity_float_column}"] if @quantity_float_column quantity = data["#{@quantity_int_column}"] if @quantity_int_column d = data["#{@date_column}"] begin @client.create_pixel(graph_id: @graph_id, date: d, quantity: quantity) rescue Pixela::PixelaError => e Embulk.logger.warn {"#{d}: #{e}"} end end end
close()
click to toggle source
# File lib/embulk/output/pixela.rb, line 64 def close end
commit()
click to toggle source
# File lib/embulk/output/pixela.rb, line 89 def commit task_report = {} return task_report end
finish()
click to toggle source
# File lib/embulk/output/pixela.rb, line 83 def finish end
init()
click to toggle source
def self.resume(task, schema, count, &control)
task_reports = yield(task) next_config_diff = {} return next_config_diff
end
# File lib/embulk/output/pixela.rb, line 37 def init # initialization code: @name = task["name"] unless @name raise "'name' is required." end @token = task["token"] unless @token raise "'token' is required." end @graph_id = task["graph_id"] unless @graph_id raise "'graph_id' is required." end @quantity_float_column = task["quantity_float_column"] @quantity_int_column = task["quantity_int_column"] unless @quantity_float_column || @quantity_int_column raise "Choose 'quantity_int_column' or 'float_column'." end @date_column = task["date_column"] unless @date_column raise "'date_column' is required." end @client = Pixela::Client.new(username: @name, token: @token) end