rjmetrics-client 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OWZkNzgyZjJiMTg2YmU5NzIwNjVhM2E5NGM1MDBjMDY3YzRiZGM0Yg==
4
+ ZjIzNTg3OThkMThkNzQwOWVhMGI2Mjc3NThiZGQ0NDU3NjM1YTJhYw==
5
5
  data.tar.gz: !binary |-
6
- OGYwMTE3OGFjZjE2NGM5ZjA4NjhlOGNiYzY3M2Q2NTY3NmIzNDQ2OQ==
7
- !binary "U0hBNTEy":
6
+ MzY2YTg4ZGRhM2FkZDQ1NTg4OWY2Y2I1MTdkYjE0NzIxN2RmYmIzZQ==
7
+ SHA512:
8
8
  metadata.gz: !binary |-
9
- MWNhZWRkMTgzNjYyYzM3NTc4N2JjYTQ5NWMxNWIzZjkwMzM1Y2U4MTA0YjBl
10
- YTJmMmMxMGFmNTZkOGVjYmU4MjI1MzMyOTJmYzBmM2UwMDM1YTY5MmRmY2E4
11
- OGRiYjI2ZTQwYzU2MzdjMDU3Yzc3MzIxNzE4NjkyOWQ3MGEzNDY=
9
+ YTI0Nzk1MjcxODdiOGE5ODY1ZGFhYzlkYjQ1M2Q2MDQwMzdmY2ZkMzQzZjdi
10
+ OGNiNzIxMDJhZTdjMzU3NDEyZGIxZWI2ZGJmMDMzY2RjNjZhZmI4Y2ZkNTIz
11
+ MmFjNjQ4MjdhNTE3YzgxOTA0YWQ1ZTVjYzQzNTk4NTg0ZjQ5NDA=
12
12
  data.tar.gz: !binary |-
13
- ZTM3MjU0NDg0ZDk0YzVmY2FkYTdmMDYxMWU5YmMxNGM3N2RhYzllNzNlOWRk
14
- ZjJmZmI1ZmM2NGUyY2Y5ZTM5NDU2Njc1ZWRhOWRiNWNiZWMyMTgxN2U5Yzgz
15
- Y2VlMWI2NWM0MjZmYTk3MmFmZDI0ZWQ3ZWUxZTkwNGUwNWJlN2U=
13
+ NzZjZTcyY2YzYTRkYTgzMzI1ZmIzOWYwZDA2NTNlMGM0ODE5N2E4NzE4OGFk
14
+ YzAwNWU4YmZmOWJmNDhmODJlNDNiODAxYmEyOWViZTk3NDcwNDYxNzAxNzky
15
+ ZDIxZjJlMThhYjcxZWE5YjczYzVmMjdmYTc0YWYwMjI0ZTI5NTk=
@@ -1,5 +1,6 @@
1
1
  require 'rest_client'
2
2
  require 'json'
3
+ require 'enumerator'
3
4
 
4
5
  class Client
5
6
 
@@ -7,6 +8,8 @@ class Client
7
8
  API_BASE = "https://connect.rjmetrics.com/v2"
8
9
  # RJMetrics Sandbox API url
9
10
  SANDBOX_BASE = "https://sandbox-connect.rjmetrics.com/v2"
11
+ # Datapoints to push at a time
12
+ BATCH_SIZE = 100
10
13
 
11
14
  # Constructs a Client instance if it receives valid arguments or will raise an ArgumentError.
12
15
  #
@@ -20,7 +23,7 @@ class Client
20
23
  @timeout_in_seconds = timeout_in_seconds
21
24
  end
22
25
 
23
- # Checks if the provided Client ID and API Key are valid credentials by requestin from the RJMetrics API Sandbox.
26
+ # Checks if the provided Client ID and API Key are valid credentials by requesting from the RJMetrics API Sandbox.
24
27
  def authenticated?
25
28
  test_data = {:keys => [:id], :id => 1}
26
29
  begin
@@ -31,20 +34,25 @@ class Client
31
34
  return true
32
35
  end
33
36
 
34
- # Sends data to RJMetrics Data Import API.
37
+ # Sends data to RJMetrics Data Import API in batches of 100.
35
38
  #
36
39
  # @param table_name [String] the table name you wish to store the data
37
40
  # @param data [Hashamp] or Array of Hashmaps of data points that will get sent
38
41
  # @param url [String] Import API url or nil
39
42
  # @return [Array] results of each request to RJMetrics Data Import API
40
43
  def pushData(table_name, data, url = API_BASE)
44
+ responses = Array.new
41
45
  validatePushDataArgs(table_name, data, url)
42
46
 
43
47
  if not data.is_a? Array
44
48
  data = Array.[](data)
45
49
  end
46
50
 
47
- return data.map{ |data_point| makePushDataAPICall(table_name, data_point, url) }
51
+ data.each_slice(BATCH_SIZE) {|batch_data|
52
+ puts "pushing batch of #{batch_data.count} data points"
53
+ responses << makePushDataAPICall(table_name, batch_data, url)
54
+ }
55
+ return responses
48
56
  end
49
57
 
50
58
  private
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rjmetrics-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Owen Jones
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-25 00:00:00.000000000 Z
11
+ date: 2014-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -72,8 +72,8 @@ executables: []
72
72
  extensions: []
73
73
  extra_rdoc_files: []
74
74
  files:
75
- - lib/rjmetrics_client.rb
76
75
  - lib/rjmetrics-client/client.rb
76
+ - lib/rjmetrics_client.rb
77
77
  homepage: http://rjmetrics.com
78
78
  licenses:
79
79
  - Apache-2.0
@@ -94,9 +94,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  version: '0'
95
95
  requirements: []
96
96
  rubyforge_project:
97
- rubygems_version: 2.0.7
97
+ rubygems_version: 2.2.1
98
98
  signing_key:
99
99
  specification_version: 4
100
100
  summary: RJMetrics Data Import API Client Library
101
101
  test_files: []
102
- has_rdoc: