Class: Embulk::Output::GoogleAnalytics::Plugin
- Inherits:
-
OutputPlugin
- Object
- OutputPlugin
- Embulk::Output::GoogleAnalytics::Plugin
- Defined in:
- lib/embulk/output/google_analytics/plugin.rb
Class Method Summary collapse
Instance Method Summary collapse
- #abort ⇒ Object
- #add(page) ⇒ Object
- #close ⇒ Object
- #commit ⇒ Object
- #finish ⇒ Object
- #init ⇒ Object
Class Method Details
.task_check(task) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/embulk/output/google_analytics/plugin.rb', line 34 def self.task_check(task) if task['action'] == 'dataimport' if task['datasource_id'].nil? Embulk.logger.error 'datasource_id is required' raise 'datasource_id is required' elsif task['filename'].nil? Embulk.logger.error 'filename is required' raise 'filenam is required' end elsif task['action'] == 'measurement_protocol' Embulk.logger.error 'Sorry, Measurement Protocol feature is not implemented' raise 'Measurement Protocol feature is not implemented' else Embulk.logger.error 'ACTION_ERROR' raise 'ACTION_ERROR' end end |
.transaction(config, schema, count, &control) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/embulk/output/google_analytics/plugin.rb', line 7 def self.transaction(config, schema, count, &control) # configuration code: task = { "token_credential_uri" => "https://accounts.google.com/o/oauth2/token", "audience" => "https://accounts.google.com/o/oauth2/token", "client_id" => config.param("client_id", :string), "client_secret" => config.param("client_secret", :string), "refresh_token" => config.param("refresh_token", :string), "scope" => "https://www.googleapis.com/auth/analytics.edit", "action" => config.param("action", :string, default: 'dataimport'), "account_id" => config.param("account_id", :string), "webproperty_id" => config.param("webproperty_id", :string), "datasource_id" => config.param("datasource_id", :string, default: nil), "filename" => config.param("filename", :string, default: nil), } task_check(task) # resumable output: # resume(task, schema, count, &control) # non-resumable output: task_reports = yield(task) next_config_diff = {} return next_config_diff end |
Instance Method Details
#abort ⇒ Object
69 70 |
# File 'lib/embulk/output/google_analytics/plugin.rb', line 69 def abort end |
#add(page) ⇒ Object
59 60 61 62 63 64 |
# File 'lib/embulk/output/google_analytics/plugin.rb', line 59 def add(page) if task['action'] == 'dataimport' rows = page.collect{|record| Hash[schema.names.zip(record)] } @client.upload(rows) end end |
#close ⇒ Object
56 57 |
# File 'lib/embulk/output/google_analytics/plugin.rb', line 56 def close end |
#commit ⇒ Object
72 73 74 75 |
# File 'lib/embulk/output/google_analytics/plugin.rb', line 72 def commit task_report = {} return task_report end |
#finish ⇒ Object
66 67 |
# File 'lib/embulk/output/google_analytics/plugin.rb', line 66 def finish end |
#init ⇒ Object
52 53 54 |
# File 'lib/embulk/output/google_analytics/plugin.rb', line 52 def init @client = Client.new(@task) end |