keen 0.8.2 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -139,10 +139,20 @@ Keen.multi_analysis("purchases", analyses: {
139
139
  :timeframe => 'today', :group_by => "item.id") # => [{"item.id"=>2, "gross"=>314.49, "customers"=> 8}, { ... }]
140
140
  ```
141
141
 
142
- Many of there queries can be performed with group by, filters, series and intervals. The response is returned as a Ruby Hash or Array.
142
+ Many of these queries can be performed with group by, filters, series and intervals. The response is returned as a Ruby Hash or Array.
143
143
 
144
144
  Detailed information on available parameters for each API resource can be found on the [API Technical Reference](https://keen.io/docs/api/reference/).
145
145
 
146
+ ### Listing collections
147
+
148
+ The Keen IO API let you get the event collections for the project set, it includes properties and their type. It also returns links to the collection resource.
149
+
150
+ ```ruby
151
+ Keen.event_collections # => [{ "name": "purchases", "properties": { "item.id": "num", ... }, ... }]
152
+ ```
153
+
154
+ Getting the list of event collections requires that the `KEEN_MASTER_KEY` is set.
155
+
146
156
  ### Deleting events
147
157
 
148
158
  The Keen IO API allows you to [delete events](https://keen.io/docs/maintenance/#deleting-event-collections)
@@ -287,6 +297,9 @@ EventMachine itself won't do this because it runs in a different thread. Here's
287
297
 
288
298
  ### Changelog
289
299
 
300
+ ##### 0.8.3
301
+ + Add support for getting a list of a projects collections
302
+
290
303
  ##### 0.8.2
291
304
  + Add support for `median` and `percentile` analysis
292
305
  + Support arrays for extraction `property_names` option
data/lib/keen.rb CHANGED
@@ -47,7 +47,8 @@ module Keen
47
47
  :multi_analysis, :median, :percentile
48
48
 
49
49
  def_delegators :default_client,
50
- :delete
50
+ :delete,
51
+ :event_collections
51
52
 
52
53
  attr_writer :logger
53
54
 
@@ -26,6 +26,26 @@ module Keen
26
26
  response_body = response.body ? response.body.chomp : ''
27
27
  process_response(response.code, response_body)
28
28
  end
29
+
30
+ # Runs an events query.
31
+ # See detailed documentation here:
32
+ # https://keen.io/docs/api/reference/#event-resource
33
+ def event_collections
34
+ ensure_project_id!
35
+ ensure_master_key!
36
+
37
+ begin
38
+ response = Keen::HTTP::Sync.new(self.api_url, self.proxy_url).get(
39
+ :path => "/#{api_version}/projects/#{project_id}/events",
40
+ :headers => api_headers(self.master_key, "sync"))
41
+ rescue Exception => http_error
42
+ raise HttpError.new("Couldn't perform events on Keen IO: #{http_error.message}", http_error)
43
+ end
44
+
45
+ response_body = response.body ? response.body.chomp : ''
46
+ process_response(response.code, response_body)
47
+ end
48
+
29
49
  end
30
50
  end
31
51
  end
data/lib/keen/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Keen
2
- VERSION = "0.8.2"
2
+ VERSION = "0.8.3"
3
3
  end
@@ -19,7 +19,7 @@ describe Keen::Client do
19
19
  it 'should not require filters' do
20
20
  url = delete_url(event_collection)
21
21
  stub_keen_delete(url, 204)
22
- client.delete(event_collection).should be_true
22
+ client.delete(event_collection).should == true
23
23
  expect_keen_delete(url, "sync", master_key)
24
24
  end
25
25
 
@@ -30,9 +30,19 @@ describe Keen::Client do
30
30
  ]
31
31
  }
32
32
  url = delete_url(event_collection, filters)
33
- stub_keen_delete(url, 204).should be_true
33
+ stub_keen_delete(url, 204)
34
34
  client.delete(event_collection, filters)
35
35
  expect_keen_delete(url, "sync", master_key)
36
36
  end
37
37
  end
38
+
39
+ describe '#event_collections' do
40
+ let(:events_url) { "#{api_url}/#{api_version}/projects/#{project_id}/events" }
41
+
42
+ it "should not require params" do
43
+ stub_keen_get(events_url, 200, [{ "a" => 1 }, { "b" => 2 }] )
44
+ client.event_collections.should == [{ "a" => 1 }, { "b" => 2 }]
45
+ expect_keen_get(events_url, "sync", master_key)
46
+ end
47
+ end
38
48
  end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Kyle Wild
@@ -10,11 +11,12 @@ authors:
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2014-05-13 00:00:00.000000000 Z
14
+ date: 2014-06-28 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: multi_json
17
18
  requirement: !ruby/object:Gem::Requirement
19
+ none: false
18
20
  requirements:
19
21
  - - ~>
20
22
  - !ruby/object:Gem::Version
@@ -22,6 +24,7 @@ dependencies:
22
24
  type: :runtime
23
25
  prerelease: false
24
26
  version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
25
28
  requirements:
26
29
  - - ~>
27
30
  - !ruby/object:Gem::Version
@@ -29,6 +32,7 @@ dependencies:
29
32
  - !ruby/object:Gem::Dependency
30
33
  name: addressable
31
34
  requirement: !ruby/object:Gem::Requirement
35
+ none: false
32
36
  requirements:
33
37
  - - ~>
34
38
  - !ruby/object:Gem::Version
@@ -36,6 +40,7 @@ dependencies:
36
40
  type: :runtime
37
41
  prerelease: false
38
42
  version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
39
44
  requirements:
40
45
  - - ~>
41
46
  - !ruby/object:Gem::Version
@@ -43,99 +48,129 @@ dependencies:
43
48
  - !ruby/object:Gem::Dependency
44
49
  name: guard
45
50
  requirement: !ruby/object:Gem::Requirement
51
+ none: false
46
52
  requirements:
47
- - - '>='
53
+ - - ! '>='
48
54
  - !ruby/object:Gem::Version
49
55
  version: '0'
50
56
  type: :development
51
57
  prerelease: false
52
58
  version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
53
60
  requirements:
54
- - - '>='
61
+ - - ! '>='
55
62
  - !ruby/object:Gem::Version
56
63
  version: '0'
57
64
  - !ruby/object:Gem::Dependency
58
65
  name: guard-rspec
59
66
  requirement: !ruby/object:Gem::Requirement
67
+ none: false
60
68
  requirements:
61
- - - '>='
69
+ - - ! '>='
62
70
  - !ruby/object:Gem::Version
63
71
  version: '0'
64
72
  type: :development
65
73
  prerelease: false
66
74
  version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
67
76
  requirements:
68
- - - '>='
77
+ - - ! '>='
69
78
  - !ruby/object:Gem::Version
70
79
  version: '0'
71
80
  - !ruby/object:Gem::Dependency
72
81
  name: rb-inotify
73
82
  requirement: !ruby/object:Gem::Requirement
83
+ none: false
74
84
  requirements:
75
- - - '>='
85
+ - - ! '>='
76
86
  - !ruby/object:Gem::Version
77
87
  version: '0'
78
88
  type: :development
79
89
  prerelease: false
80
90
  version_requirements: !ruby/object:Gem::Requirement
91
+ none: false
81
92
  requirements:
82
- - - '>='
93
+ - - ! '>='
83
94
  - !ruby/object:Gem::Version
84
95
  version: '0'
85
96
  - !ruby/object:Gem::Dependency
86
97
  name: rb-fsevent
87
98
  requirement: !ruby/object:Gem::Requirement
99
+ none: false
88
100
  requirements:
89
- - - '>='
101
+ - - ! '>='
90
102
  - !ruby/object:Gem::Version
91
103
  version: '0'
92
104
  type: :development
93
105
  prerelease: false
94
106
  version_requirements: !ruby/object:Gem::Requirement
107
+ none: false
95
108
  requirements:
96
- - - '>='
109
+ - - ! '>='
97
110
  - !ruby/object:Gem::Version
98
111
  version: '0'
99
112
  - !ruby/object:Gem::Dependency
100
113
  name: rb-fchange
101
114
  requirement: !ruby/object:Gem::Requirement
115
+ none: false
102
116
  requirements:
103
- - - '>='
117
+ - - ! '>='
104
118
  - !ruby/object:Gem::Version
105
119
  version: '0'
106
120
  type: :development
107
121
  prerelease: false
108
122
  version_requirements: !ruby/object:Gem::Requirement
123
+ none: false
109
124
  requirements:
110
- - - '>='
125
+ - - ! '>='
111
126
  - !ruby/object:Gem::Version
112
127
  version: '0'
113
128
  - !ruby/object:Gem::Dependency
114
129
  name: ruby_gntp
115
130
  requirement: !ruby/object:Gem::Requirement
131
+ none: false
116
132
  requirements:
117
- - - '>='
133
+ - - ! '>='
118
134
  - !ruby/object:Gem::Version
119
135
  version: '0'
120
136
  type: :development
121
137
  prerelease: false
122
138
  version_requirements: !ruby/object:Gem::Requirement
139
+ none: false
123
140
  requirements:
124
- - - '>='
141
+ - - ! '>='
125
142
  - !ruby/object:Gem::Version
126
143
  version: '0'
127
144
  - !ruby/object:Gem::Dependency
128
145
  name: rb-readline
129
146
  requirement: !ruby/object:Gem::Requirement
147
+ none: false
130
148
  requirements:
131
- - - '>='
149
+ - - ! '>='
132
150
  - !ruby/object:Gem::Version
133
151
  version: '0'
134
152
  type: :development
135
153
  prerelease: false
136
154
  version_requirements: !ruby/object:Gem::Requirement
155
+ none: false
137
156
  requirements:
138
- - - '>='
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ - !ruby/object:Gem::Dependency
161
+ name: debugger
162
+ requirement: !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ! '>='
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ type: :development
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ! '>='
139
174
  - !ruby/object:Gem::Version
140
175
  version: '0'
141
176
  description: Send events and build analytics features into your Ruby applications.
@@ -178,26 +213,27 @@ files:
178
213
  homepage: https://github.com/keenlabs/keen-gem
179
214
  licenses:
180
215
  - MIT
181
- metadata: {}
182
216
  post_install_message:
183
217
  rdoc_options: []
184
218
  require_paths:
185
219
  - lib
186
220
  required_ruby_version: !ruby/object:Gem::Requirement
221
+ none: false
187
222
  requirements:
188
- - - '>='
223
+ - - ! '>='
189
224
  - !ruby/object:Gem::Version
190
225
  version: '0'
191
226
  required_rubygems_version: !ruby/object:Gem::Requirement
227
+ none: false
192
228
  requirements:
193
- - - '>='
229
+ - - ! '>='
194
230
  - !ruby/object:Gem::Version
195
231
  version: '0'
196
232
  requirements: []
197
233
  rubyforge_project:
198
- rubygems_version: 2.0.3
234
+ rubygems_version: 1.8.23
199
235
  signing_key:
200
- specification_version: 4
236
+ specification_version: 3
201
237
  summary: Keen IO API Client
202
238
  test_files:
203
239
  - spec/integration/api_spec.rb
@@ -212,4 +248,3 @@ test_files:
212
248
  - spec/spec_helper.rb
213
249
  - spec/synchrony/spec_helper.rb
214
250
  - spec/synchrony/synchrony_spec.rb
215
- has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: be248e41731a4f4e86d99397bc780980e468e643
4
- data.tar.gz: 5f673b82043892b20214caa66c872266916a6df9
5
- SHA512:
6
- metadata.gz: ebe7cd7ba80d155daf102d4e77ec18b595cec2640d58c87aa94b05f7c2fe566bd62e61b391a4a8beffb259f5b8fa3b1bab84de0aa4080ccbf38da4afebd21573
7
- data.tar.gz: 5ae089f9bc5ac3993962398c0e31f0e715f00c418f313af7990e614d8bcff61da5230f2c544997d56914af3ede4cc4c155a1e8e94c2493221a894f4fd273a316