adjust 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/.travis.yml +3 -0
- data/README.md +32 -6
- data/lib/adjust/core/configurable.rb +9 -5
- data/lib/adjust/core/configuration.rb +36 -11
- data/lib/adjust/core/tokens.rb +35 -0
- data/lib/adjust/core.rb +1 -1
- data/lib/adjust/version.rb +1 -1
- data/lib/adjust.rb +8 -10
- data/spec/core/configuration_spec.rb +40 -22
- data/spec/fixtures/config/adjust.yml +33 -0
- data/spec/integration/sending_a_revenue_spec.rb +2 -1
- data/spec/integration/sending_an_event_spec.rb +6 -1
- data/spec/spec_helper.rb +1 -3
- metadata +5 -3
- data/lib/adjust/core/errors.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 394b43447458b304090b06fbc93ebf860f94949f
|
4
|
+
data.tar.gz: 3176c978c5b815e5e92db9be77b3b2717e733e72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3a95181c80beb4fe83913ee6b2adb472b1733eecefe8b69a76d2b234dbb072f94a00319e55191613d8334a1483cc669d1b8bc4e164a1f32ce2684b044f543ec
|
7
|
+
data.tar.gz: 4230cf55d66d62c0066cb7393a2f9fa8f5d4e8d6a7416041c24f5bae70cdb6c5d0b54a3758f3700ac3b3688a43a5167fb40aeb90040bf2ac4b25eacd976207ed
|
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -20,11 +20,37 @@ This gem is meant for use with server to server integration with Adjust. More in
|
|
20
20
|
|
21
21
|
##### Configuration
|
22
22
|
|
23
|
+
By default the configurations will be read from `config/adjust.yml`. Also of note the environment loaded will be that of RACK_ENV, RAILS_ENV or as a last resort default of 'development'.
|
24
|
+
|
25
|
+
Example config:
|
26
|
+
```yaml
|
27
|
+
development:
|
28
|
+
environment: sandbox
|
29
|
+
dev_app:
|
30
|
+
app_token: app_token
|
31
|
+
event1:
|
32
|
+
event_token: event_token
|
33
|
+
```
|
34
|
+
|
35
|
+
We would then be able to refer to the token using the key given in the config:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
Adjust.event(app: :dev_app, event: :event1, idfa: :idfa).track!
|
39
|
+
```
|
40
|
+
|
41
|
+
Or by their tokens
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
Adjust.event(app: :app_token, event: :event_token, idfa: :idfa).track!
|
45
|
+
```
|
46
|
+
|
47
|
+
Loading the configurations
|
48
|
+
|
23
49
|
```ruby
|
24
|
-
Adjust.
|
25
|
-
|
26
|
-
|
27
|
-
|
50
|
+
Adjust.load(environment: 'test') # => {...}
|
51
|
+
Adjust.load('path/to/adjust.yml') # => {...}
|
52
|
+
Adjust.load('path/to/adjust.yml', environment: 'staging') # => {...}
|
53
|
+
|
28
54
|
```
|
29
55
|
|
30
56
|
##### Event tracking
|
@@ -32,7 +58,7 @@ end
|
|
32
58
|
*`idfa` can also be any other values such as `android_id` or `gps_adid` check Adjust's documentation for details.*
|
33
59
|
|
34
60
|
```ruby
|
35
|
-
Adjust.event(
|
61
|
+
Adjust.event(app: :app, event: :event, idfa: :idfa).track!
|
36
62
|
```
|
37
63
|
|
38
64
|
|
@@ -41,7 +67,7 @@ Adjust.event(token: :token, idfa: :idfa).track!
|
|
41
67
|
*`idfa` can also be any other values such as `android_id` or `gps_adid` check Adjust's documentation for details.*
|
42
68
|
|
43
69
|
```ruby
|
44
|
-
Adjust.revenue(
|
70
|
+
Adjust.revenue(app: :app, event: :event, revenue: 1.25, currency: 'USD|CAD|EUR', idfa: :idfa).track!
|
45
71
|
```
|
46
72
|
|
47
73
|
## Contributing
|
@@ -1,10 +1,8 @@
|
|
1
1
|
module Adjust
|
2
2
|
module Core
|
3
3
|
module Configurable
|
4
|
-
|
5
|
-
|
6
|
-
def configure
|
7
|
-
yield configuration
|
4
|
+
def load(path = 'config/adjust.yml', environment: nil)
|
5
|
+
configuration.load path, environment: environment
|
8
6
|
end
|
9
7
|
|
10
8
|
def configuration
|
@@ -13,7 +11,13 @@ module Adjust
|
|
13
11
|
|
14
12
|
private
|
15
13
|
|
16
|
-
|
14
|
+
def environment
|
15
|
+
configuration.active_environment
|
16
|
+
end
|
17
|
+
|
18
|
+
def tokens(app, event)
|
19
|
+
configuration.tokens(app, event)
|
20
|
+
end
|
17
21
|
end
|
18
22
|
end
|
19
23
|
end
|
@@ -1,25 +1,50 @@
|
|
1
|
-
require '
|
1
|
+
require 'yaml'
|
2
|
+
require 'erb'
|
2
3
|
|
3
4
|
module Adjust
|
4
5
|
module Core
|
5
6
|
class Configuration
|
6
|
-
|
7
|
+
def load(path, environment: nil)
|
8
|
+
@environment = environment || default_environment
|
9
|
+
@configurations = read_configurations path
|
10
|
+
end
|
7
11
|
|
8
12
|
def environment
|
9
|
-
@environment ||=
|
13
|
+
@environment ||= default_environment
|
14
|
+
end
|
15
|
+
|
16
|
+
def configurations
|
17
|
+
@configurations ||= read_configurations
|
18
|
+
end
|
19
|
+
|
20
|
+
def active
|
21
|
+
configurations[environment]
|
22
|
+
end
|
23
|
+
|
24
|
+
def active_environment
|
25
|
+
active['environment']
|
10
26
|
end
|
11
27
|
|
12
|
-
def
|
13
|
-
|
28
|
+
def tokens(app, event)
|
29
|
+
Tokens.new(app, event, active).find
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def default_environment
|
35
|
+
ENV['RACK_ENV'] || ENV['RAILS_ENV'] || 'development'
|
36
|
+
end
|
37
|
+
|
38
|
+
def read_configurations(path = 'config/adjust.yml')
|
39
|
+
YAML.load parse read path
|
40
|
+
end
|
14
41
|
|
15
|
-
|
42
|
+
def read(path)
|
43
|
+
File.read path
|
16
44
|
end
|
17
45
|
|
18
|
-
def
|
19
|
-
|
20
|
-
environment: environment,
|
21
|
-
app_token: app_token
|
22
|
-
}
|
46
|
+
def parse(file)
|
47
|
+
ERB.new(file).result
|
23
48
|
end
|
24
49
|
end
|
25
50
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Adjust
|
2
|
+
module Core
|
3
|
+
class Tokens
|
4
|
+
def initialize(app, event, config)
|
5
|
+
@app = app.to_s
|
6
|
+
@event = event.to_s
|
7
|
+
@config = config[@app]
|
8
|
+
end
|
9
|
+
|
10
|
+
def find
|
11
|
+
{ app_token: app_token, event_token: event_token }
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
attr_reader :app, :event, :config
|
17
|
+
|
18
|
+
def app_token
|
19
|
+
return app unless config
|
20
|
+
|
21
|
+
config.fetch('app_token') { app }
|
22
|
+
end
|
23
|
+
|
24
|
+
def event_token
|
25
|
+
return event unless config
|
26
|
+
|
27
|
+
if config.include?(event)
|
28
|
+
config[event].fetch('event_token') { event }
|
29
|
+
else
|
30
|
+
event
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/adjust/core.rb
CHANGED
data/lib/adjust/version.rb
CHANGED
data/lib/adjust.rb
CHANGED
@@ -9,24 +9,22 @@ module Adjust
|
|
9
9
|
class << self
|
10
10
|
include Core::Configurable
|
11
11
|
|
12
|
-
def event(
|
13
|
-
Clients::Event.new
|
14
|
-
|
15
|
-
app_token: app_token,
|
12
|
+
def event(app:, event:, time: current_time, **device)
|
13
|
+
Clients::Event.new(
|
14
|
+
**tokens(app, event),
|
16
15
|
environment: environment,
|
17
16
|
created_at: time,
|
18
|
-
**device
|
17
|
+
**device)
|
19
18
|
end
|
20
19
|
|
21
|
-
def revenue(
|
22
|
-
Clients::Revenue.new
|
23
|
-
|
24
|
-
app_token: app_token,
|
20
|
+
def revenue(app:, event:, revenue:, currency:, time: current_time, **device)
|
21
|
+
Clients::Revenue.new(
|
22
|
+
**tokens(app, event),
|
25
23
|
environment: environment,
|
26
24
|
created_at: time,
|
27
25
|
revenue: revenue,
|
28
26
|
currency: currency,
|
29
|
-
**device
|
27
|
+
**device)
|
30
28
|
end
|
31
29
|
|
32
30
|
def current_time
|
@@ -3,37 +3,55 @@ require 'spec_helper'
|
|
3
3
|
module Adjust
|
4
4
|
module Core
|
5
5
|
describe Configuration do
|
6
|
-
|
7
|
-
|
8
|
-
expect(subject.environment).to eq :sandbox
|
9
|
-
end
|
6
|
+
let(:path) { 'spec/fixtures/config/adjust.yml' }
|
7
|
+
subject(:config) { Configuration.new }
|
10
8
|
|
11
|
-
|
12
|
-
|
9
|
+
context 'with an explicit environment' do
|
10
|
+
subject(:load!) { config.load(path, environment: 'test') }
|
11
|
+
before { expect { load! }.to_not raise_error }
|
13
12
|
|
14
|
-
|
13
|
+
describe '#load' do
|
14
|
+
it 'sets an environment' do
|
15
|
+
expect(config.environment).to eq 'test'
|
16
|
+
end
|
15
17
|
end
|
16
|
-
end
|
17
18
|
|
18
|
-
|
19
|
-
|
20
|
-
|
19
|
+
describe '#configurations' do
|
20
|
+
it 'caches the configurations' do
|
21
|
+
expect(config.configurations).to include 'test'
|
22
|
+
end
|
21
23
|
end
|
22
24
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
25
|
+
describe '#active' do
|
26
|
+
it 'contains the configuration for current env' do
|
27
|
+
expect(config.active).to include 'test_app'
|
28
|
+
end
|
27
29
|
end
|
28
|
-
end
|
29
30
|
|
30
|
-
|
31
|
-
|
31
|
+
describe '#active_environment' do
|
32
|
+
it 'returns the adjust environment for current env' do
|
33
|
+
expect(config.active_environment).to eq 'sandbox'
|
34
|
+
end
|
35
|
+
end
|
32
36
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
+
describe '#active_tokens' do
|
38
|
+
it 'returns arguments if app was not matched' do
|
39
|
+
expect(config.tokens('foo', 'bar')).to eq \
|
40
|
+
app_token: 'foo',
|
41
|
+
event_token: 'bar'
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'returns app_token if app matched and event not matched' do
|
45
|
+
expect(config.tokens('test_app', 'bar')).to eq \
|
46
|
+
app_token: 'app_token',
|
47
|
+
event_token: 'bar'
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'returns tokens if app matched and event matched' do
|
51
|
+
expect(config.tokens('test_app', 'event1')).to eq \
|
52
|
+
app_token: 'app_token',
|
53
|
+
event_token: 'event_token'
|
54
|
+
end
|
37
55
|
end
|
38
56
|
end
|
39
57
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
development:
|
2
|
+
environment: 'sandbox'
|
3
|
+
|
4
|
+
dev_app:
|
5
|
+
app_token: 'app_token'
|
6
|
+
event1:
|
7
|
+
event_token: 'event_token'
|
8
|
+
|
9
|
+
test:
|
10
|
+
environment: 'sandbox'
|
11
|
+
|
12
|
+
test_app:
|
13
|
+
app_token: 'app_token'
|
14
|
+
event1:
|
15
|
+
event_token: 'event_token'
|
16
|
+
|
17
|
+
integration:
|
18
|
+
environment: 'sandbox'
|
19
|
+
|
20
|
+
test_app:
|
21
|
+
app_token: <%= ENV['ADJUST_APP_TOKEN'] %>
|
22
|
+
event1:
|
23
|
+
event_token: 'tawmb9'
|
24
|
+
event2:
|
25
|
+
event_token: 'fbv8to'
|
26
|
+
|
27
|
+
production:
|
28
|
+
environment: 'production'
|
29
|
+
|
30
|
+
prod_app:
|
31
|
+
app_token: 'app_token'
|
32
|
+
event1:
|
33
|
+
event_token: 'event_token'
|
@@ -2,7 +2,12 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'Sending an event' do
|
4
4
|
context 'with success', vcr: { cassette_name: :event_success } do
|
5
|
-
subject
|
5
|
+
subject do
|
6
|
+
Adjust.event \
|
7
|
+
app: :test_app,
|
8
|
+
event: :event1,
|
9
|
+
idfa: ENV['ADJUST_TEST_IDFA']
|
10
|
+
end
|
6
11
|
|
7
12
|
it 'succeeds' do
|
8
13
|
expect(subject.track!).to be_success
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adjust
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hugo Bastien
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -189,7 +189,7 @@ files:
|
|
189
189
|
- lib/adjust/core.rb
|
190
190
|
- lib/adjust/core/configurable.rb
|
191
191
|
- lib/adjust/core/configuration.rb
|
192
|
-
- lib/adjust/core/
|
192
|
+
- lib/adjust/core/tokens.rb
|
193
193
|
- lib/adjust/representers.rb
|
194
194
|
- lib/adjust/representers/event_representer.rb
|
195
195
|
- lib/adjust/transport/faraday.rb
|
@@ -197,6 +197,7 @@ files:
|
|
197
197
|
- spec/clients/event_spec.rb
|
198
198
|
- spec/clients/revenue_spec.rb
|
199
199
|
- spec/core/configuration_spec.rb
|
200
|
+
- spec/fixtures/config/adjust.yml
|
200
201
|
- spec/fixtures/responses/event_success.yml
|
201
202
|
- spec/fixtures/responses/revenue_success.yml
|
202
203
|
- spec/integration/sending_a_revenue_spec.rb
|
@@ -231,6 +232,7 @@ test_files:
|
|
231
232
|
- spec/clients/event_spec.rb
|
232
233
|
- spec/clients/revenue_spec.rb
|
233
234
|
- spec/core/configuration_spec.rb
|
235
|
+
- spec/fixtures/config/adjust.yml
|
234
236
|
- spec/fixtures/responses/event_success.yml
|
235
237
|
- spec/fixtures/responses/revenue_success.yml
|
236
238
|
- spec/integration/sending_a_revenue_spec.rb
|