perfecta 0.4.0 → 0.5.0
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/.travis.yml +3 -1
- data/Gemfile +1 -4
- data/Rakefile +0 -1
- data/lib/perfecta.rb +18 -14
- data/lib/perfecta/api_resource.rb +1 -7
- data/lib/perfecta/version.rb +1 -1
- data/perfecta.gemspec +3 -3
- data/test/ad_report_test.rb +3 -3
- data/test/campaign_report_test.rb +3 -3
- data/test/campaign_test.rb +3 -3
- data/test/conversion_report_test.rb +3 -3
- data/test/perfecta_test.rb +6 -3
- data/test/site_test.rb +3 -3
- data/test/test_helper.rb +1 -2
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5064f0473a8cb2bdc68704d73284a177bf99e320
|
4
|
+
data.tar.gz: 0711e0118eeeec92b47a9937b2fde0260e75825f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09a5838c1210ecab5b7617a42b636d7b99cefb127f69ec30116a3fefe0c1fe32ab67c68acff83216e24ac9c99c60473785d3af1cf848a594d6ab35751ac82eb7
|
7
|
+
data.tar.gz: 6970c48e715430f9229ce854969edc72c24b1eafa8266e4b2b6ef0ace6335ff4955fb7daeb9de7d19a3f9f5627f4b12b21d61996368afb8c75dd91fb46d252d2
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/lib/perfecta.rb
CHANGED
@@ -64,32 +64,32 @@ module Perfecta
|
|
64
64
|
get_one 'site', id
|
65
65
|
end
|
66
66
|
|
67
|
-
def campaigns
|
68
|
-
get_many 'campaigns'
|
67
|
+
def campaigns params = {}
|
68
|
+
get_many 'campaigns', params
|
69
69
|
end
|
70
70
|
|
71
71
|
def campaign id
|
72
72
|
get_one 'campaign', id
|
73
73
|
end
|
74
74
|
|
75
|
-
def ads
|
76
|
-
get_many 'ads'
|
75
|
+
def ads params = {}
|
76
|
+
get_many 'ads', params
|
77
77
|
end
|
78
78
|
|
79
79
|
def ad id
|
80
80
|
get_one 'ad', id
|
81
81
|
end
|
82
82
|
|
83
|
-
def conversions
|
84
|
-
get_many 'conversions'
|
83
|
+
def conversions params = {}
|
84
|
+
get_many 'conversions', params
|
85
85
|
end
|
86
86
|
|
87
87
|
def conversion id
|
88
88
|
get_one 'conversion', id
|
89
89
|
end
|
90
90
|
|
91
|
-
def segments
|
92
|
-
get_many 'segments'
|
91
|
+
def segments params = {}
|
92
|
+
get_many 'segments', params
|
93
93
|
end
|
94
94
|
|
95
95
|
def segment id
|
@@ -104,7 +104,7 @@ module Perfecta
|
|
104
104
|
|
105
105
|
def authenticate
|
106
106
|
url = "#{BASE_API_PATH}/auth"
|
107
|
-
data = {:
|
107
|
+
data = {email: @email, password: @password}
|
108
108
|
|
109
109
|
resp = RestClient.post(url, data)
|
110
110
|
|
@@ -126,7 +126,7 @@ module Perfecta
|
|
126
126
|
def get_one type, id
|
127
127
|
url = "#{BASE_API_PATH}/#{type.pluralize}/#{id}"
|
128
128
|
|
129
|
-
resp = make_request url,
|
129
|
+
resp = make_request url, Authorization: @token
|
130
130
|
|
131
131
|
klass_name = type.capitalize
|
132
132
|
klass = Perfecta.const_get(klass_name.to_sym)
|
@@ -136,10 +136,14 @@ module Perfecta
|
|
136
136
|
obj
|
137
137
|
end
|
138
138
|
|
139
|
-
def get_many type
|
139
|
+
def get_many type, params = {}
|
140
140
|
url = "#{BASE_API_PATH}/#{type}"
|
141
141
|
|
142
|
-
|
142
|
+
params.delete_if {|p| ![:site_id].include? p}
|
143
|
+
|
144
|
+
params = {params: params}.merge! Authorization: @token
|
145
|
+
|
146
|
+
resp = make_request url, params
|
143
147
|
|
144
148
|
klass_name = type.capitalize.singularize
|
145
149
|
klass = Perfecta.const_get(klass_name.to_sym)
|
@@ -152,9 +156,9 @@ module Perfecta
|
|
152
156
|
def build_report_url_and_params_for type, params
|
153
157
|
url = "#{BASE_API_PATH}/reports/#{type}_report"
|
154
158
|
|
155
|
-
params.
|
159
|
+
params.keep_if {|p| ALLOWED_REPORT_PARAMS.include? p}
|
156
160
|
|
157
|
-
params = {:
|
161
|
+
params = {params: params}.merge! Authorization: @token
|
158
162
|
|
159
163
|
[url, params]
|
160
164
|
end
|
@@ -1,18 +1,12 @@
|
|
1
1
|
module Perfecta
|
2
2
|
class ApiResource
|
3
|
-
|
4
|
-
def meta_class
|
5
|
-
class << self; self end
|
6
|
-
end
|
7
|
-
|
8
3
|
def initialize attrs
|
9
4
|
attrs.each do |name, val|
|
10
5
|
instance_variable_set "@#{name}", val
|
11
6
|
|
12
|
-
|
7
|
+
define_singleton_method name.to_sym do
|
13
8
|
instance_variable_get "@#{name}"
|
14
9
|
end
|
15
|
-
|
16
10
|
end
|
17
11
|
end
|
18
12
|
end
|
data/lib/perfecta/version.rb
CHANGED
data/perfecta.gemspec
CHANGED
@@ -17,10 +17,10 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
-
gem.add_dependency "mime-types", "
|
20
|
+
gem.add_dependency "mime-types", ">= 1.25.1"
|
21
21
|
gem.add_dependency "rest-client"
|
22
|
-
gem.add_dependency "activesupport", "
|
23
|
-
gem.add_dependency "rake", "
|
22
|
+
gem.add_dependency "activesupport", ">= 3"
|
23
|
+
gem.add_dependency "rake", ">= 0.9.2"
|
24
24
|
gem.add_dependency "json"
|
25
25
|
gem.add_development_dependency "mocha"
|
26
26
|
end
|
data/test/ad_report_test.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
|
3
|
-
class AdReportTest <
|
3
|
+
class AdReportTest < MiniTest::Test
|
4
4
|
|
5
5
|
describe 'AdReport' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@attrs = {:
|
8
|
+
@attrs = {ad_name: 'Ad 1', ad_id: 123}
|
9
9
|
@report = Perfecta::AdReport.new @attrs
|
10
10
|
end
|
11
11
|
|
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
|
3
|
-
class CampaignReportTest <
|
3
|
+
class CampaignReportTest < MiniTest::Test
|
4
4
|
|
5
5
|
describe 'CampaignReport' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@attrs = {:
|
8
|
+
@attrs = {name: 'Report 1', campaign_id: 123}
|
9
9
|
@report = Perfecta::CampaignReport.new @attrs
|
10
10
|
end
|
11
11
|
|
data/test/campaign_test.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
|
3
|
-
class CampaignTest <
|
3
|
+
class CampaignTest < MiniTest::Test
|
4
4
|
|
5
5
|
describe 'Campaign' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@attrs = {:
|
8
|
+
@attrs = {name: 'Campaign 1'}
|
9
9
|
@report = Perfecta::Campaign.new @attrs
|
10
10
|
end
|
11
11
|
|
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
|
3
|
-
class ConversionReportTest <
|
3
|
+
class ConversionReportTest < MiniTest::Test
|
4
4
|
|
5
5
|
describe 'ConversionReport' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@attrs = {:
|
8
|
+
@attrs = {conversion_name: 'Conversion 1', conversion_id: 123}
|
9
9
|
@report = Perfecta::ConversionReport.new @attrs
|
10
10
|
end
|
11
11
|
|
data/test/perfecta_test.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
|
3
|
-
class PerfectaTest <
|
3
|
+
class PerfectaTest < MiniTest::Test
|
4
4
|
|
5
5
|
describe 'Perfecta client' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
Perfecta::Client
|
8
|
+
Perfecta::Client
|
9
|
+
.any_instance
|
10
|
+
.stubs(:exchange_credentials_for_token)
|
11
|
+
.returns('token')
|
9
12
|
|
10
13
|
@client = Perfecta::Client.new do |c|
|
11
14
|
c.email = 'email@ddress'
|
data/test/site_test.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require_relative 'test_helper'
|
2
2
|
|
3
|
-
class SiteTest <
|
3
|
+
class SiteTest < MiniTest::Test
|
4
4
|
|
5
5
|
describe 'Site' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@attrs = {:
|
8
|
+
@attrs = {name: 'Site 1'}
|
9
9
|
@report = Perfecta::Site.new @attrs
|
10
10
|
end
|
11
11
|
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: perfecta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gary Rafferty
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mime-types
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.25.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.25.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
@@ -42,28 +42,28 @@ dependencies:
|
|
42
42
|
name: activesupport
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '3'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 0.9.2
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.9.2
|
69
69
|
- !ruby/object:Gem::Dependency
|