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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 46ddcaccb8c6c33dbf919009621b431d3cbd9df7
4
- data.tar.gz: 36f0ecbd458731641ff6161fd53403d5eacd79e0
3
+ metadata.gz: 5064f0473a8cb2bdc68704d73284a177bf99e320
4
+ data.tar.gz: 0711e0118eeeec92b47a9937b2fde0260e75825f
5
5
  SHA512:
6
- metadata.gz: acde9279ce53006f813da63a8dc86342c200cac4d727b1afdcf2fd78d9d14dc1403f12d6d87d3bec0c418727c4df99c9131492719d6cbcd3779fe03feef6d4ec
7
- data.tar.gz: f87634944a373b41dc12e4527dad78e894a5ffd65444d3bf0fa02b15a5e10a711e084e2c486f5e371ddd7fcdafe41a4bc3c2378036bebf17db47215c308ad37c
6
+ metadata.gz: 09a5838c1210ecab5b7617a42b636d7b99cefb127f69ec30116a3fefe0c1fe32ab67c68acff83216e24ac9c99c60473785d3af1cf848a594d6ab35751ac82eb7
7
+ data.tar.gz: 6970c48e715430f9229ce854969edc72c24b1eafa8266e4b2b6ef0ace6335ff4955fb7daeb9de7d19a3f9f5627f4b12b21d61996368afb8c75dd91fb46d252d2
@@ -1,5 +1,7 @@
1
+ before_install:
2
+ - gem install bundler
3
+ bundler: cache
1
4
  language: ruby
2
5
  rvm:
3
6
  - "2.1"
4
7
  - "2.2"
5
- - "2.3"
data/Gemfile CHANGED
@@ -2,7 +2,4 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- group :development, :test do
6
- gem 'minitest'
7
- gem 'coveralls', :require => false
8
- end
5
+ gem 'coveralls', require: false
data/Rakefile CHANGED
@@ -1,5 +1,4 @@
1
1
  require "bundler/gem_tasks"
2
- Bundler::GemHelper.install_tasks
3
2
 
4
3
  require 'rake/testtask'
5
4
 
@@ -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 = {:email => @email, :password => @password}
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, "Authorization".to_sym => @token
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
- resp = make_request url, "Authorization".to_sym => @token
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.delete_if {|p| !ALLOWED_REPORT_PARAMS.include? p}
159
+ params.keep_if {|p| ALLOWED_REPORT_PARAMS.include? p}
156
160
 
157
- params = {:params => params}.merge! "Authorization".to_sym => @token
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
- meta_class.send(:define_method, name) do
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
@@ -1,3 +1,3 @@
1
1
  module Perfecta
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -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", "~> 1.25.1"
20
+ gem.add_dependency "mime-types", ">= 1.25.1"
21
21
  gem.add_dependency "rest-client"
22
- gem.add_dependency "activesupport", "~> 3"
23
- gem.add_dependency "rake", "~> 0.9.2"
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
@@ -1,11 +1,11 @@
1
- require './test/test_helper.rb'
1
+ require_relative 'test_helper'
2
2
 
3
- class AdReportTest < Minitest::Test
3
+ class AdReportTest < MiniTest::Test
4
4
 
5
5
  describe 'AdReport' do
6
6
 
7
7
  before do
8
- @attrs = {:ad_name => 'Ad 1', :ad_id => 123}
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
- require './test/test_helper.rb'
1
+ require_relative 'test_helper'
2
2
 
3
- class CampaignReportTest < Minitest::Test
3
+ class CampaignReportTest < MiniTest::Test
4
4
 
5
5
  describe 'CampaignReport' do
6
6
 
7
7
  before do
8
- @attrs = {:name => 'Report 1', :campaign_id => 123}
8
+ @attrs = {name: 'Report 1', campaign_id: 123}
9
9
  @report = Perfecta::CampaignReport.new @attrs
10
10
  end
11
11
 
@@ -1,11 +1,11 @@
1
- require './test/test_helper.rb'
1
+ require_relative 'test_helper'
2
2
 
3
- class CampaignTest < Minitest::Test
3
+ class CampaignTest < MiniTest::Test
4
4
 
5
5
  describe 'Campaign' do
6
6
 
7
7
  before do
8
- @attrs = {:name => 'Campaign 1'}
8
+ @attrs = {name: 'Campaign 1'}
9
9
  @report = Perfecta::Campaign.new @attrs
10
10
  end
11
11
 
@@ -1,11 +1,11 @@
1
- require './test/test_helper.rb'
1
+ require_relative 'test_helper'
2
2
 
3
- class ConversionReportTest < Minitest::Test
3
+ class ConversionReportTest < MiniTest::Test
4
4
 
5
5
  describe 'ConversionReport' do
6
6
 
7
7
  before do
8
- @attrs = {:conversion_name => 'Conversion 1', :conversion_id => 123}
8
+ @attrs = {conversion_name: 'Conversion 1', conversion_id: 123}
9
9
  @report = Perfecta::ConversionReport.new @attrs
10
10
  end
11
11
 
@@ -1,11 +1,14 @@
1
- require './test/test_helper.rb'
1
+ require_relative 'test_helper'
2
2
 
3
- class PerfectaTest < Minitest::Test
3
+ class PerfectaTest < MiniTest::Test
4
4
 
5
5
  describe 'Perfecta client' do
6
6
 
7
7
  before do
8
- Perfecta::Client.any_instance.stubs(:exchange_credentials_for_token).returns('token')
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'
@@ -1,11 +1,11 @@
1
- require './test/test_helper.rb'
1
+ require_relative 'test_helper'
2
2
 
3
- class SiteTest < Minitest::Test
3
+ class SiteTest < MiniTest::Test
4
4
 
5
5
  describe 'Site' do
6
6
 
7
7
  before do
8
- @attrs = {:name => 'Site 1'}
8
+ @attrs = {name: 'Site 1'}
9
9
  @report = Perfecta::Site.new @attrs
10
10
  end
11
11
 
@@ -1,8 +1,7 @@
1
1
  $:.unshift(File.join(File.dirname(__FILE__),'..','lib'))
2
2
 
3
- require 'rubygems'
4
- require 'minitest/autorun'
5
3
  require 'minitest/spec'
4
+ require 'minitest/autorun'
6
5
  require 'mocha/setup'
7
6
  require 'perfecta'
8
7
 
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.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-17 00:00:00.000000000 Z
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