leanplum_api 1.3.5 → 1.3.6
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.
- checksums.yaml +4 -4
- data/README.md +4 -23
- data/lib/leanplum_api/api.rb +12 -3
- data/lib/leanplum_api/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce4fe4f8ab0087d81620500bfbb5b8772fc5fce0
|
4
|
+
data.tar.gz: e9b7b9754428c7e7271dc02ad6902400d1ad06f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db56dbc6b349e76245c5ff6f02442088dd4d0f0e84b4018bbb49e05921a6590d3e8a3d3a75b88d2b33f2091f6918552716e860c411328350f3340f01122e6d99
|
7
|
+
data.tar.gz: 4287a74432cce7921da7e0a8c601ad649d855aab79fcb89bdbfe78f93cb34fcbbeec5b981f1d4e0e58eb1eac74e42ec796096e369c3911fa5eb7da01ed96e68f
|
data/README.md
CHANGED
@@ -14,14 +14,14 @@ required_ruby_version is set to 1.9 but this code has only been tested with Ruby
|
|
14
14
|
|
15
15
|
## Configuration
|
16
16
|
|
17
|
-
You need to obtain (at a minimum) the
|
17
|
+
You need to obtain (at a minimum) the `PRODUCTION_KEY` and `APP_ID` from Leanplum. You may also want to configure the `DATA_EXPORT_KEY`, `CONTENT_READ_ONLY_KEY`, and `DEVELOPMENT_KEY` if you plan on calling methods that require those keys. Then you can setup the gem for use in your application like so:
|
18
18
|
|
19
19
|
```ruby
|
20
20
|
require 'leanplum_api'
|
21
21
|
|
22
22
|
LeanplumApi.configure do |config|
|
23
|
-
config.production_key = 'MY_CLIENT_KEY'
|
24
23
|
config.app_id = 'MY_APP_ID'
|
24
|
+
config.production_key = 'MY_CLIENT_KEY'
|
25
25
|
config.data_export_key = 'MY_DATA_KEY' # Optional; necessary only if you want to call data export methods.
|
26
26
|
config.content_read_only_key = 'MY_CONTENT_KEY' # Optional; necessary for retrieving AB test info
|
27
27
|
config.development_key = 'MY_CONTENT_KEY' # Optional; needed for resetting anomalous events
|
@@ -90,28 +90,9 @@ job_id = api.export_data(start_time, end_time)
|
|
90
90
|
response = wait_for_job(job_id)
|
91
91
|
```
|
92
92
|
|
93
|
-
##
|
94
|
-
|
95
|
-
When you instantiate a ```LeanplumApi::API``` object, you can pass a ```Logger``` object to redirect the logging as you see fit.
|
96
|
-
|
97
|
-
```ruby
|
98
|
-
api = LeanplumApi::API.new(logger: Logger.new('/path/to/my/log_file.log))
|
99
|
-
```
|
100
|
-
|
101
|
-
Alternatively, you can configure a log_path in the configure block.
|
102
|
-
```ruby
|
103
|
-
LeanplumApi.configure do |config|
|
104
|
-
config.log_path = '/path/to/my/logs'
|
105
|
-
end
|
106
|
-
```
|
107
|
-
|
108
|
-
And logs will be sent to ```/path/to/my/logs/{PID}_leanplum_{timestamp}.log```
|
109
|
-
|
110
|
-
The default log_path is ```log/```
|
111
|
-
|
112
|
-
## Tests
|
93
|
+
## Specs
|
113
94
|
|
114
|
-
To run
|
95
|
+
To run specs, you must set the LEANPLUM_PRODUCTION_KEY, LEANPLUM_APP_ID, LEANPLUM_CONTENT_READ_ONLY_KEY, LEANPLUM_DEVELOPMENT_KEY, and LEANPLUM_DATA_EXPORT_KEY environment variables (preferably to some development only keys) to something and then run rspec.
|
115
96
|
Because of the nature of VCR/Webmock, you can set them to anything (including invalid keys) as long as you are not changing anything substantive or writing new specs. If you want to make substantive changes/add new specs, VCR will need to be able to generate fixture data so you will need to use a real set of Leanplum keys.
|
116
97
|
|
117
98
|
> BE AWARE THAT IF YOU WRITE A NEW SPEC OR DELETE A VCR FILE, IT'S POSSIBLE THAT REAL DATA WILL BE WRITTEN TO THE LEANPLUM_APP_ID YOU CONFIGURE! Certainly a real request will be made to rebuild the VCR file, and while specs run with ```devMode=true```, it's usually a good idea to create a fake app for testing/running specs against.
|
data/lib/leanplum_api/api.rb
CHANGED
@@ -34,10 +34,19 @@ module LeanplumApi
|
|
34
34
|
user_ids_to_reset = []
|
35
35
|
response.body['response'].each_with_index do |indicator, i|
|
36
36
|
if indicator['warning'] && indicator['warning']['message'] =~ /Anomaly detected/i
|
37
|
-
|
37
|
+
# Leanplum does not return their warnings in order!!! So we just have to reset everyone who had any events.
|
38
|
+
# This is what the code should be:
|
39
|
+
# user_ids_to_reset << request_data[i]['userId']
|
40
|
+
|
41
|
+
# This is what it has to be:
|
42
|
+
user_ids_to_reset = events.map { |e| e[:user_id] }
|
38
43
|
end
|
39
44
|
end
|
40
|
-
|
45
|
+
|
46
|
+
unless user_ids_to_reset.empty?
|
47
|
+
LeanplumApi.configuration.logger.info("Resetting anomalous user ids: #{user_ids_to_reset}")
|
48
|
+
reset_anomalous_users(user_ids_to_reset)
|
49
|
+
end
|
41
50
|
end
|
42
51
|
end
|
43
52
|
|
@@ -140,7 +149,7 @@ module LeanplumApi
|
|
140
149
|
# For some reason this API feature requires the developer key
|
141
150
|
def reset_anomalous_users(user_ids)
|
142
151
|
user_ids = Array.wrap(user_ids)
|
143
|
-
request_data = user_ids.map { |user_id| {
|
152
|
+
request_data = user_ids.map { |user_id| { action: 'setUserAttributes', resetAnomalies: true, userId: user_id } }
|
144
153
|
development_connection.post(request_data)
|
145
154
|
end
|
146
155
|
|
data/lib/leanplum_api/version.rb
CHANGED