embulk-input-google_analytics 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e97983d59913f897eba87209c18189501345cf99
4
- data.tar.gz: a2e0a973d7bc783035c4c141025083e1cb0e6d70
3
+ metadata.gz: 0cf6819cbdb38173f44900cba3223c59a9176d6e
4
+ data.tar.gz: 62e041ee887e632aad22de0375b395b42636d0ef
5
5
  SHA512:
6
- metadata.gz: 936b02145765c0c16ba882a610b35094ff9166bb94a5cb60593341b3d9a444d69540736cd58ff40dcda17bb06f2258592c742992a489970b97e9b34e8d01d6ba
7
- data.tar.gz: 10b9a357c2b2f614256b19ac7d2bcf0ff68dd35d8111651d2c25ae206a6bd4a0ef0828902eaaf09e7861573563d25ef1f7f19f22fff5a030f97e21843d09aa76
6
+ metadata.gz: 5b68652c6e70c2e5b281f7fa7b44d7e24da9c51ffe494915bd90992f0ab28b8bef924ae2d8129e9aae87829705c252d1910ac45498982504ff94d468a4800481
7
+ data.tar.gz: 57a3ee3ec80110c89f4b17cb6b87e8f2f80fae2da1f69862e11eece4bab571d1bbf5ca3e457488f31a9f96171bc7ff053e6e57f9837e19c156716e75ca36834b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 0.1.9 - 2016-11-22
2
+ * Support 'foobarXX' column names [#16](https://github.com/treasure-data/embulk-input-google_analytics/pull/16)
3
+
1
4
  ## 0.1.8 - 2016-11-09
2
5
  * TIME column should be double, not timestamp. e.g. sessionDuration (thx @kazuya030) [#13](https://github.com/treasure-data/embulk-input-google_analytics/pull/13) [#15](https://github.com/treasure-data/embulk-input-google_analytics/pull/15)
3
6
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  Gem::Specification.new do |spec|
3
3
  spec.name = "embulk-input-google_analytics"
4
- spec.version = "0.1.8"
4
+ spec.version = "0.1.9"
5
5
  spec.authors = ["uu59"]
6
6
  spec.summary = "Google Analytics input plugin for Embulk"
7
7
  spec.description = "Loads records from Google Analytics."
@@ -122,7 +122,35 @@ module Embulk
122
122
  end
123
123
 
124
124
  def get_columns_list
125
- get_custom_dimensions + get_metadata_columns
125
+ columns = get_custom_dimensions + get_metadata_columns
126
+ canonical_column_names(columns)
127
+ end
128
+
129
+ def canonical_column_names(columns)
130
+ result = []
131
+ columns.each do |col|
132
+ if col[:id].match(/XX$/)
133
+ # for such columns:
134
+ # https://developers.google.com/analytics/devguides/reporting/core/dimsmets#view=detail&group=content_grouping
135
+ # https://developers.google.com/analytics/devguides/reporting/metadata/v3/devguide#attributes
136
+ min = [
137
+ col[:attributes][:minTemplateIndex],
138
+ col[:attributes][:premiumMinTemplateIndex],
139
+ ].compact.min
140
+ max = [
141
+ col[:attributes][:maxTemplateIndex],
142
+ col[:attributes][:premiumMaxTemplateIndex],
143
+ ].compact.max
144
+
145
+ min.upto(max) do |n|
146
+ actual_id = col[:id].gsub(/XX$/, n.to_s)
147
+ result << col.merge(id: actual_id)
148
+ end
149
+ else
150
+ result << col
151
+ end
152
+ end
153
+ result
126
154
  end
127
155
 
128
156
  def get_metadata_columns
@@ -12,6 +12,28 @@ module Embulk
12
12
  include OverrideAssertRaise
13
13
  include FixtureHelper
14
14
 
15
+ sub_test_case "canonical_column_names" do
16
+ setup do
17
+ conf = valid_config["in"]
18
+ @task = task(embulk_config(conf))
19
+ @client = Client.new(@task)
20
+ end
21
+
22
+ test "XX column names should be expanded" do
23
+ columns = @client.canonical_column_names([
24
+ {id: "foo"},
25
+ {id: "barXX", attributes: {minTemplateIndex: 1, maxTemplateIndex: 3}},
26
+ {id: "bazXX", attributes: {minTemplateIndex: 1, maxTemplateIndex: 3, premiumMinTemplateIndex: 1, premiumMaxTemplateIndex: 5}},
27
+ ])
28
+ expected_names = %w(
29
+ foo bar1 bar2 bar3
30
+ baz1 baz2 baz3 baz4 baz5
31
+ )
32
+
33
+ assert_equal expected_names, columns.map{|col| col[:id]}
34
+ end
35
+ end
36
+
15
37
  sub_test_case "get_profile" do
16
38
  setup do
17
39
  conf = valid_config["in"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-input-google_analytics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - uu59
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-09 00:00:00.000000000 Z
11
+ date: 2016-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement