mixpanel_client 4.0.1 → 4.1.0

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: 5db50334f0523f186df3366c7e79565ea7eca601
4
- data.tar.gz: e28c9cf521c8d160a6d3b6ef1086bf7de6efb4a5
3
+ metadata.gz: 2064a32d2001e146ea1f47b5b9ac83744c683a60
4
+ data.tar.gz: 3033df250915740f19205d9c2864773b61acfc65
5
5
  SHA512:
6
- metadata.gz: 4b07b4bdc7b798cc10fda6e61502ed858a0530b24b9404a9ac5fc266c130c0e3829c0c19de28b694f8de2f8eab174bac186a80d97a28e5e0d3d8243272869d39
7
- data.tar.gz: 28924015e8b5fc7f5b1404821e54ba9c474ce94edc84c8b12d18bfb628931c1ff1a768b36f43c4775abcec021c8fdc12024e5bec8b61d7507f8d10df0d8d3f92
6
+ metadata.gz: ab6d79cdf8270ad2a721c95d690cc28bfb83562fc1519752c4e70206132bcb69f770a0eab04e2c490949272c01c504d7076a7f0079d3e3a8eaa5a9e2240d3552
7
+ data.tar.gz: 34ea6268f37da906c193476b089bfa810dd1cd1bbcdd7d4659abd8120efee99b1086fc83990f6422c2622412e518f13bc55162103daf8f847ea88fa3f5241d51
data/changelog.md CHANGED
@@ -1,3 +1,8 @@
1
+ ### v4.1.0
2
+ * Drop support for config keys to be strings. Use symbols instead
3
+ * Fixed some rubocop offences
4
+ * Require Typhoeus when used
5
+
1
6
  ### v4.0.1
2
7
  * Raise ConfigurationError if api_key or api_secret are not present
3
8
 
@@ -9,8 +9,8 @@
9
9
  module Mixpanel
10
10
  # Return metrics from Mixpanel Data API
11
11
  class Client
12
- BASE_URI = 'https://mixpanel.com/api/2.0'
13
- DATA_URI = 'https://data.mixpanel.com/api/2.0'
12
+ BASE_URI = 'https://mixpanel.com/api/2.0'
13
+ DATA_URI = 'https://data.mixpanel.com/api/2.0'
14
14
  IMPORT_URI = 'https://api.mixpanel.com'
15
15
 
16
16
  attr_reader :uri
@@ -24,9 +24,9 @@ module Mixpanel
24
24
  #
25
25
  # @param [Hash] config consisting of an 'api_key' and an 'api_secret'
26
26
  def initialize(config)
27
- @api_key = config[:api_key] || config['api_key']
28
- @api_secret = config[:api_secret] || config['api_secret']
29
- @parallel = config[:parallel] || config['parallel'] || false
27
+ @api_key = config[:api_key]
28
+ @api_secret = config[:api_secret]
29
+ @parallel = config[:parallel] || false
30
30
 
31
31
  fail ConfigurationError if @api_key.nil? || @api_secret.nil?
32
32
  end
@@ -56,6 +56,7 @@ module Mixpanel
56
56
  end
57
57
 
58
58
  def make_parallel_request
59
+ require 'typhoeus'
59
60
  parallel_request = prepare_parallel_request
60
61
  hydra.queue parallel_request
61
62
  parallel_request
@@ -105,10 +106,10 @@ module Mixpanel
105
106
  elsif response.timed_out?
106
107
  fail TimeoutError
107
108
  elsif response.code == 0
108
- # Could not get an http response, something's wrong.
109
+ # Could not get an http response, something's wrong
109
110
  fail HTTPError, response.curl_error_message
110
111
  else
111
- # Received a non-successful http response.
112
+ # Received a non-successful http response
112
113
  if response.body && response.body != ''
113
114
  error_message = JSON.parse(response.body)['error']
114
115
  else
@@ -139,11 +140,21 @@ module Mixpanel
139
140
  # signature
140
141
  def normalize_options(options)
141
142
  normalized_options = options.dup
142
- normalized_options.merge!(
143
- format: @format,
144
- api_key: @api_key,
145
- expire: options[:expire] ? options[:expire].to_i : Time.now.to_i + 600
146
- ).merge!(sig: Utils.generate_signature(normalized_options, @api_secret))
143
+
144
+ normalized_options
145
+ .merge!(
146
+ format: @format,
147
+ api_key: @api_key,
148
+ expire: request_expires_at(normalized_options)
149
+ )
150
+ .merge!(
151
+ sig: Utils.generate_signature(normalized_options, @api_secret)
152
+ )
153
+ end
154
+
155
+ def request_expires_at(options)
156
+ ten_minutes_from_now = Time.now.to_i + 600
157
+ options[:expire] ? options[:expire].to_i : ten_minutes_from_now
147
158
  end
148
159
 
149
160
  def self.base_uri_for_resource(resource)
@@ -10,6 +10,6 @@ module Mixpanel
10
10
  # Return metrics from Mixpanel Data API
11
11
  class Client
12
12
  # Mixpanel::Client library version
13
- VERSION = '4.0.1'
13
+ VERSION = '4.1.0'
14
14
  end
15
15
  end
data/readme.md CHANGED
@@ -9,7 +9,7 @@ Ruby access to the [Mixpanel](http://mixpanel.com/) web analytics tool.
9
9
  ## Installation
10
10
 
11
11
  gem install mixpanel_client
12
-
12
+
13
13
  or if you use a Gemfile
14
14
 
15
15
  gem 'mixpanel_client'
@@ -50,8 +50,7 @@ or if you use a Gemfile
50
50
  limit: 5
51
51
  )
52
52
 
53
-
54
- # use the import API, which allows one to specify a time in the past, unlike the track API.
53
+ # Use the import API, which allows one to specify a time in the past, unlike the track API.
55
54
  # note that you need to include your api token in the data. More details at:
56
55
  # https://mixpanel.com/docs/api-documentation/importing-events-older-than-31-days
57
56
  data_to_import = {'event' => 'firstLogin', 'properties' => {'distinct_id' => guid, 'time' => time_as_integer_seconds_since_epoch, 'token' => api_token}}
@@ -11,13 +11,6 @@ describe Mixpanel::Client do
11
11
  end
12
12
 
13
13
  context 'when initializing a new Mixpanel::Client' do
14
- it 'should not raise an exception if a hash is given' do
15
- Mixpanel::Client.new(
16
- 'api_key' => 'test_key',
17
- 'api_secret' => 'test_secret'
18
- ).should_not { raise_error }
19
- end
20
-
21
14
  it 'should set a parallel option as false by default' do
22
15
  Mixpanel::Client.new(
23
16
  api_key: 'test_key',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mixpanel_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.1
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keolo Keagy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-16 00:00:00.000000000 Z
11
+ date: 2014-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus