leanplum_api 2.0.1 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -1
- data/lib/leanplum_api/api.rb +13 -2
- data/lib/leanplum_api/configuration.rb +2 -4
- data/lib/leanplum_api/connections/production.rb +1 -5
- data/lib/leanplum_api/version.rb +1 -1
- data/spec/api_spec.rb +4 -2
- data/spec/fixtures/vcr/export_user.yml +10 -8
- data/spec/fixtures/vcr/set_user_attributes.yml +10 -8
- data/spec/fixtures/vcr/track_events_and_attributes.yml +10 -8
- metadata +2 -17
- data/Rakefile +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e94814a101ee266130f5484232809cd1543d641
|
4
|
+
data.tar.gz: 1f6bd9fefa701bad19d839fbc42dcc0833a61d6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: acbaab2cf26e530ab7fc1f48a5021f6f1732c4b75255448e2f28f079fe6b70a1233f588211f6dd11b82402eb99d625297abc0c96ba3b2e7bfa1aad25891855e2
|
7
|
+
data.tar.gz: 1f72ae8dcd7e107af18433ab762447c0df4f96cb763cc0aefd5276efd4a29402216b3cda8b7b68a3b8b2ed216c9e6ebfd616bbe9d9658e1bbdaa46e6b4e60733
|
data/README.md
CHANGED
@@ -10,7 +10,7 @@ The gem uses the ```multi``` method with a POST for all event tracking and user
|
|
10
10
|
|
11
11
|
Tested with Leanplum API version 1.0.6.
|
12
12
|
|
13
|
-
required_ruby_version is set to 1.9 but this code has only been tested with Ruby 2.1.5!
|
13
|
+
`required_ruby_version` is set to 1.9 but this code has only been tested with Ruby 2.1.5 and up!
|
14
14
|
|
15
15
|
## Configuration
|
16
16
|
|
@@ -125,4 +125,14 @@ export LEANPLUM_API_DEBUG=true
|
|
125
125
|
bundle exec whatever
|
126
126
|
```
|
127
127
|
|
128
|
+
Alternatively you can configure the same sort of output in the gem config block:
|
129
|
+
|
130
|
+
```ruby
|
131
|
+
LeanplumApi.configure do |config|
|
132
|
+
config.api_debug = true
|
133
|
+
end
|
134
|
+
```
|
135
|
+
|
136
|
+
### Developer Mode
|
137
|
+
|
128
138
|
You can also configure "developer mode". This will use the `devMode=true` parameter on some requests, which seems to sends them to a separate queue which might not count towards Leanplum's usage billing.
|
data/lib/leanplum_api/api.rb
CHANGED
@@ -116,7 +116,18 @@ module LeanplumApi
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def user_attributes(user_id)
|
119
|
-
export_user(user_id)['userAttributes']
|
119
|
+
export_user(user_id)['userAttributes'].inject({}) do |attrs, (k, v)|
|
120
|
+
# Leanplum doesn't use true JSON for booleans...
|
121
|
+
if v == 'True'
|
122
|
+
attrs[k] = true
|
123
|
+
elsif v == 'False'
|
124
|
+
attrs[k] = false
|
125
|
+
else
|
126
|
+
attrs[k] = v
|
127
|
+
end
|
128
|
+
|
129
|
+
attrs
|
130
|
+
end
|
120
131
|
end
|
121
132
|
|
122
133
|
def user_events(user_id)
|
@@ -205,7 +216,7 @@ module LeanplumApi
|
|
205
216
|
def build_event_attributes_hash(event_hash, options = {})
|
206
217
|
event_hash = HashWithIndifferentAccess.new(event_hash)
|
207
218
|
event_name = event_hash.delete(:event)
|
208
|
-
fail "
|
219
|
+
fail ":event key not present in #{event_hash}" unless event_name
|
209
220
|
|
210
221
|
event = { action: 'track', event: event_name }.merge(extract_user_id_or_device_id_hash!(event_hash))
|
211
222
|
event.merge!(time: event_hash.delete(:time).strftime('%s')) if event_hash[:time]
|
@@ -23,9 +23,9 @@ module LeanplumApi
|
|
23
23
|
attr_accessor :development_key
|
24
24
|
|
25
25
|
# Optional
|
26
|
+
attr_accessor :api_debug
|
26
27
|
attr_accessor :api_version
|
27
28
|
attr_accessor :developer_mode
|
28
|
-
attr_accessor :log_path
|
29
29
|
attr_accessor :logger
|
30
30
|
attr_accessor :timeout_seconds
|
31
31
|
|
@@ -41,9 +41,7 @@ module LeanplumApi
|
|
41
41
|
@developer_mode = false
|
42
42
|
@timeout_seconds = 600
|
43
43
|
@logger = LeanplumApi::Logger.new(STDOUT)
|
44
|
-
|
45
|
-
# Deprecated
|
46
|
-
@log_path = 'log'
|
44
|
+
@api_debug = ENV['LEANPLUM_API_DEBUG'].to_s =~ /^(true|t|yes|y|1)$/i
|
47
45
|
end
|
48
46
|
end
|
49
47
|
end
|
@@ -43,17 +43,13 @@ module LeanplumApi::Connection
|
|
43
43
|
connection.request :leanplum_response_validation
|
44
44
|
connection.request :json
|
45
45
|
|
46
|
-
connection.response :logger, @logger, bodies: true if api_debug
|
46
|
+
connection.response :logger, @logger, bodies: true if LeanplumApi.configuration.api_debug
|
47
47
|
connection.response :json, :content_type => /\bjson$/
|
48
48
|
|
49
49
|
connection.adapter Faraday.default_adapter
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
-
def api_debug?
|
54
|
-
ENV['LEANPLUM_API_DEBUG'].to_s =~ /^(true|1)$/i
|
55
|
-
end
|
56
|
-
|
57
53
|
def authed_multi_param_string
|
58
54
|
params = authentication_params.merge(action: 'multi', time: Time.now.utc.strftime('%s'))
|
59
55
|
params.merge!(devMode: true) if LeanplumApi.configuration.developer_mode
|
data/lib/leanplum_api/version.rb
CHANGED
data/spec/api_spec.rb
CHANGED
@@ -10,7 +10,8 @@ describe LeanplumApi::API do
|
|
10
10
|
last_name: 'Jones',
|
11
11
|
gender: 'm',
|
12
12
|
email: 'still_tippin@test.com',
|
13
|
-
create_date: '2010-01-01'.to_date
|
13
|
+
create_date: '2010-01-01'.to_date,
|
14
|
+
is_tipping: true
|
14
15
|
}]
|
15
16
|
end
|
16
17
|
|
@@ -24,7 +25,8 @@ describe LeanplumApi::API do
|
|
24
25
|
last_name: 'Jones',
|
25
26
|
gender: 'm',
|
26
27
|
email: 'still_tippin@test.com',
|
27
|
-
create_date: '2010-01-01'
|
28
|
+
create_date: '2010-01-01',
|
29
|
+
is_tipping: true
|
28
30
|
)
|
29
31
|
})
|
30
32
|
end
|
@@ -8,7 +8,7 @@ http_interactions:
|
|
8
8
|
string: ''
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
- Faraday v0.
|
11
|
+
- Faraday v0.10.0
|
12
12
|
Accept-Encoding:
|
13
13
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
14
|
Accept:
|
@@ -22,19 +22,21 @@ http_interactions:
|
|
22
22
|
- "*"
|
23
23
|
Content-Type:
|
24
24
|
- application/json
|
25
|
+
X-Cloud-Trace-Context:
|
26
|
+
- b7ed8a2d93f600276bf6f09eddff4c8c
|
25
27
|
Date:
|
26
|
-
-
|
28
|
+
- Tue, 15 Nov 2016 10:32:36 GMT
|
27
29
|
Server:
|
28
30
|
- Google Frontend
|
31
|
+
Content-Length:
|
32
|
+
- '303'
|
33
|
+
Expires:
|
34
|
+
- Tue, 15 Nov 2016 10:32:36 GMT
|
29
35
|
Cache-Control:
|
30
36
|
- private
|
31
|
-
Alt-Svc:
|
32
|
-
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
33
|
-
Transfer-Encoding:
|
34
|
-
- chunked
|
35
37
|
body:
|
36
38
|
encoding: UTF-8
|
37
|
-
string: '{"response":[{"created":1.43935302887E9,"events":{"purchase":{"count":
|
38
|
-
http_version:
|
39
|
+
string: '{"response":[{"totalSessions":0,"created":1.43935302887E9,"events":{"purchase":{"count":24}},"lastActive":1.446709787966E9,"states":{},"success":true,"userAttributes":{"first_name":"Mike","create_date":"2010-01-01","email":"still_tippin@test.com","last_name":"Jones","is_tipping":"True","gender":"m"}}]}'
|
40
|
+
http_version:
|
39
41
|
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
40
42
|
recorded_with: VCR 3.0.3
|
@@ -5,10 +5,10 @@ http_interactions:
|
|
5
5
|
uri: https://www.leanplum.com/api?action=multi&apiVersion=1.0.6&appId=<LEANPLUM_APP_ID>&clientKey=<LEANPLUM_PRODUCTION_KEY>&devMode=false&time=1439352000
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"data":[{"userId":123456,"action":"setUserAttributes","userAttributes":{"first_name":"Mike","last_name":"Jones","gender":"m","email":"still_tippin@test.com","create_date":"2010-01-01"}}]}'
|
8
|
+
string: '{"data":[{"userId":123456,"action":"setUserAttributes","userAttributes":{"first_name":"Mike","last_name":"Jones","gender":"m","email":"still_tippin@test.com","create_date":"2010-01-01","is_tipping":true}}]}'
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
- Faraday v0.
|
11
|
+
- Faraday v0.10.0
|
12
12
|
Content-Type:
|
13
13
|
- application/json
|
14
14
|
Accept-Encoding:
|
@@ -24,20 +24,22 @@ http_interactions:
|
|
24
24
|
- "*"
|
25
25
|
Content-Type:
|
26
26
|
- application/json
|
27
|
+
X-Cloud-Trace-Context:
|
28
|
+
- be84cbe23b33980fe7159ca706386efb
|
27
29
|
Date:
|
28
|
-
-
|
30
|
+
- Tue, 15 Nov 2016 10:28:11 GMT
|
29
31
|
Server:
|
30
32
|
- Google Frontend
|
33
|
+
Content-Length:
|
34
|
+
- '122'
|
35
|
+
Expires:
|
36
|
+
- Tue, 15 Nov 2016 10:28:11 GMT
|
31
37
|
Cache-Control:
|
32
38
|
- private
|
33
|
-
Alt-Svc:
|
34
|
-
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
35
|
-
Transfer-Encoding:
|
36
|
-
- chunked
|
37
39
|
body:
|
38
40
|
encoding: UTF-8
|
39
41
|
string: '{"response":[{"success":true,"warning":{"message":"Anomaly detected:
|
40
42
|
time skew. User will be excluded from analytics."}}]}'
|
41
|
-
http_version:
|
43
|
+
http_version:
|
42
44
|
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
43
45
|
recorded_with: VCR 3.0.3
|
@@ -5,11 +5,11 @@ http_interactions:
|
|
5
5
|
uri: https://www.leanplum.com/api?action=multi&apiVersion=1.0.6&appId=<LEANPLUM_APP_ID>&clientKey=<LEANPLUM_PRODUCTION_KEY>&devMode=false&time=1439352000
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"data":[{"userId":123456,"action":"setUserAttributes","userAttributes":{"first_name":"Mike","last_name":"Jones","gender":"m","email":"still_tippin@test.com","create_date":"2010-01-01"}},{"action":"track","event":"purchase","userId":123456,"time":"1439352000","params":{"some_timestamp":"2015-05-01
|
8
|
+
string: '{"data":[{"userId":123456,"action":"setUserAttributes","userAttributes":{"first_name":"Mike","last_name":"Jones","gender":"m","email":"still_tippin@test.com","create_date":"2010-01-01","is_tipping":true}},{"action":"track","event":"purchase","userId":123456,"time":"1439352000","params":{"some_timestamp":"2015-05-01
|
9
9
|
01:02:03"}},{"action":"track","event":"purchase_page_view","userId":54321,"time":"1439351400"}]}'
|
10
10
|
headers:
|
11
11
|
User-Agent:
|
12
|
-
- Faraday v0.
|
12
|
+
- Faraday v0.10.0
|
13
13
|
Content-Type:
|
14
14
|
- application/json
|
15
15
|
Accept-Encoding:
|
@@ -25,22 +25,24 @@ http_interactions:
|
|
25
25
|
- "*"
|
26
26
|
Content-Type:
|
27
27
|
- application/json
|
28
|
+
X-Cloud-Trace-Context:
|
29
|
+
- 4a5e92e1cf1088dd41b9caa898272564
|
28
30
|
Date:
|
29
|
-
-
|
31
|
+
- Tue, 15 Nov 2016 10:29:45 GMT
|
30
32
|
Server:
|
31
33
|
- Google Frontend
|
34
|
+
Content-Length:
|
35
|
+
- '372'
|
36
|
+
Expires:
|
37
|
+
- Tue, 15 Nov 2016 10:29:45 GMT
|
32
38
|
Cache-Control:
|
33
39
|
- private
|
34
|
-
Alt-Svc:
|
35
|
-
- quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
|
36
|
-
Transfer-Encoding:
|
37
|
-
- chunked
|
38
40
|
body:
|
39
41
|
encoding: UTF-8
|
40
42
|
string: '{"response":[{"success":true,"warning":{"message":"Anomaly detected:
|
41
43
|
time skew. User will be excluded from analytics."}},{"isOffline":true,"success":true,"warning":{"message":"Anomaly
|
42
44
|
detected: time skew. User will be excluded from analytics."}},{"isOffline":true,"success":true,"warning":{"message":"Anomaly
|
43
45
|
detected: time skew. User will be excluded from analytics."}}]}'
|
44
|
-
http_version:
|
46
|
+
http_version:
|
45
47
|
recorded_at: Wed, 12 Aug 2015 04:00:00 GMT
|
46
48
|
recorded_with: VCR 3.0.3
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leanplum_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lumos Labs, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -78,20 +78,6 @@ dependencies:
|
|
78
78
|
- - "~>"
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '0.10'
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: rake
|
83
|
-
requirement: !ruby/object:Gem::Requirement
|
84
|
-
requirements:
|
85
|
-
- - "~>"
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: '10.4'
|
88
|
-
type: :runtime
|
89
|
-
prerelease: false
|
90
|
-
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
requirements:
|
92
|
-
- - "~>"
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: '10.4'
|
95
81
|
- !ruby/object:Gem::Dependency
|
96
82
|
name: rspec
|
97
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -158,7 +144,6 @@ files:
|
|
158
144
|
- Gemfile
|
159
145
|
- LICENSE.txt
|
160
146
|
- README.md
|
161
|
-
- Rakefile
|
162
147
|
- lib/leanplum_api.rb
|
163
148
|
- lib/leanplum_api/api.rb
|
164
149
|
- lib/leanplum_api/configuration.rb
|