keen-cli 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -0
- data/lib/keen-cli/queries.rb +8 -2
- data/lib/keen-cli/version.rb +1 -1
- data/spec/keen-cli/batch_processor_spec.rb +25 -0
- data/spec/keen-cli/queries_spec.rb +8 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -266,6 +266,7 @@ Parameters that apply to most commands include:
|
|
266
266
|
|
267
267
|
### Changelog
|
268
268
|
|
269
|
+
+ 0.1.9 - Supports JSON-encoded filters and comma-seperated multiple group by
|
269
270
|
+ 0.1.8 - Inputted lines can also be arrays of JSON objects. `--batch-size` param is now properly recognized.
|
270
271
|
+ 0.1.7 - Add docs command
|
271
272
|
+ 0.1.6 - Big refactoring to make importing events much cleaner and batching happen automatically. Also adds `queries:url`.
|
data/lib/keen-cli/queries.rb
CHANGED
@@ -106,15 +106,17 @@ module KeenCli
|
|
106
106
|
end
|
107
107
|
|
108
108
|
# copy query options in intelligently
|
109
|
-
q_options[:group_by] = options[:"group-by"]
|
110
109
|
q_options[:target_property] = options[:"target-property"]
|
111
110
|
q_options[:interval] = options[:interval]
|
112
111
|
q_options[:timeframe] = options[:timeframe]
|
113
|
-
q_options[:filters] = options[:filters]
|
114
112
|
q_options[:percentile] = options[:percentile]
|
115
113
|
q_options[:latest] = options[:latest]
|
116
114
|
q_options[:email] = options[:email]
|
117
115
|
|
116
|
+
if group_by = options[:"group-by"]
|
117
|
+
q_options[:group_by] = group_by.split(",")
|
118
|
+
end
|
119
|
+
|
118
120
|
if property_names = options[:"property-names"]
|
119
121
|
q_options[:property_names] = property_names.split(",")
|
120
122
|
end
|
@@ -123,6 +125,10 @@ module KeenCli
|
|
123
125
|
q_options[:timeframe] = { :start => start_time }
|
124
126
|
end
|
125
127
|
|
128
|
+
if filters = options[:filters]
|
129
|
+
q_options[:filters] = JSON.parse(filters)
|
130
|
+
end
|
131
|
+
|
126
132
|
if end_time = options[:end]
|
127
133
|
q_options[:timeframe] = q_options[:timeframe] || {}
|
128
134
|
q_options[:timeframe][:end] = end_time
|
data/lib/keen-cli/version.rb
CHANGED
@@ -96,6 +96,31 @@ module KeenCli
|
|
96
96
|
})
|
97
97
|
end
|
98
98
|
|
99
|
+
it 'deals with quoted csv values' do
|
100
|
+
batch_processor.csv = true
|
101
|
+
batch_processor.csv_options[:headers] = ['keen.timestamp', 'apple.date', 'apple.banana.cherry', 'apple.banana.walnut']
|
102
|
+
batch_processor.add('"2012-08-09, blah","blah pudding",smoothie,"b,u,tter"')
|
103
|
+
expect(batch_processor.events.first).to eq({
|
104
|
+
"apple" => {
|
105
|
+
"date" => "blah pudding",
|
106
|
+
"banana" => {
|
107
|
+
"cherry" => "smoothie",
|
108
|
+
"walnut" => "b,u,tter"
|
109
|
+
}
|
110
|
+
},
|
111
|
+
"keen" => {
|
112
|
+
"timestamp" => "2012-08-09, blah"
|
113
|
+
}
|
114
|
+
})
|
115
|
+
|
116
|
+
end
|
117
|
+
|
118
|
+
it 'deals with quoted csv headers' do
|
119
|
+
batch_processor.csv = true
|
120
|
+
batch_processor.add('"keen.timestamp","apple.date","apple.banana.cherry","apple.banana.walnut"')
|
121
|
+
expect(batch_processor.csv_options[:headers]).to eq(["keen.timestamp", "apple.date", "apple.banana.cherry", "apple.banana.walnut"])
|
122
|
+
end
|
123
|
+
|
99
124
|
end
|
100
125
|
|
101
126
|
describe 'add' do
|
@@ -23,12 +23,19 @@ describe KeenCli::CLI do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'converts dashes to underscores for certain properties' do
|
26
|
-
url = "https://api.keen.io/3.0/projects/#{project_id}/queries/count?event_collection=minecraft-deaths&group_by
|
26
|
+
url = "https://api.keen.io/3.0/projects/#{project_id}/queries/count?event_collection=minecraft-deaths&group_by=%5B%22foo%22%5D&target_property=bar"
|
27
27
|
stub_request(:get, url).to_return(:body => { :result => 10 }.to_json)
|
28
28
|
_, options = start 'queries:run --analysis-type count --collection minecraft-deaths --group-by foo --target-property bar'
|
29
29
|
expect(_).to eq(10)
|
30
30
|
end
|
31
31
|
|
32
|
+
it 'allows comma-delimited group by fields' do
|
33
|
+
url = "https://api.keen.io/3.0/projects/#{project_id}/queries/count?event_collection=minecraft-deaths&group_by=%5B%22%5C%22foo%22,%22bar%5C%22%22%5D&target_property=bar"
|
34
|
+
stub_request(:get, url).to_return(:body => { :result => 10 }.to_json)
|
35
|
+
_, options = start 'queries:run --analysis-type count --collection minecraft-deaths --group-by "foo,bar" --target-property bar'
|
36
|
+
expect(_).to eq(10)
|
37
|
+
end
|
38
|
+
|
32
39
|
it 'accepts extraction-specific properties' do
|
33
40
|
url = "https://api.keen.io/3.0/projects/#{project_id}/queries/extraction?event_collection=minecraft-deaths&property_names=%5B%22foo%22,%22bar%22%5D&latest=1&email=bob@bob.io"
|
34
41
|
stub_request(:get, url).to_return(:body => { :result => 10 }.to_json)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: keen-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-08-
|
12
|
+
date: 2014-08-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: keen
|