class Embulk::Input::Mixpanel
Public Class Methods
guess(config)
click to toggle source
# File lib/embulk/input/mixpanel.rb, line 48 def self.guess(config) service = service(config) service.validate_config return {"columns"=>service.guess_columns} end
resume(task, columns, count) { |task, columns, count| ... }
click to toggle source
# File lib/embulk/input/mixpanel.rb, line 34 def self.resume(task, columns, count, &control) task_reports = yield(task, columns, count) # NOTE: If this plugin supports to run by multi threads, this # implementation is terrible. if task[:incremental] task_report = task_reports.first service = service(task) next_from_date = service.next_from_date(task_report) return next_from_date end return {} end
transaction(config, &control)
click to toggle source
# File lib/embulk/input/mixpanel.rb, line 9 def self.transaction(config, &control) service = service(config) service.validate_config task = service.create_task Embulk.logger.info "Try to fetch data from #{task[:dates].first} to #{task[:dates].last}" columns = task[:schema].map do |column| name = column["name"] type = column["type"].to_sym Column.new(nil, name, type, column["format"]) end if task[:fetch_custom_properties] columns << Column.new(nil, "custom_properties", :json) end if task[:fetch_unknown_columns] Embulk.logger.warn "Deprecated `unknown_columns`. Use `fetch_custom_properties` instead." columns << Column.new(nil, "unknown_columns", :json) end resume(task, columns, 1, &control) end
Private Class Methods
service(config)
click to toggle source
# File lib/embulk/input/mixpanel.rb, line 64 def self.service(config) jql_mode = config[:jql_mode] if jql_mode Service::JqlService.new(config) else Service::ExportService.new(config) end end
Public Instance Methods
init()
click to toggle source
# File lib/embulk/input/mixpanel.rb, line 54 def init @api_secret = task[:api_secret] end
run()
click to toggle source
# File lib/embulk/input/mixpanel.rb, line 58 def run Mixpanel::service(DataSource[task.to_a]).ingest(task, page_builder) end