appnexusapi 0.1.3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +33 -4
- data/UPGRADING.md +10 -0
- data/appnexusapi.gemspec +2 -0
- data/env_example +1 -3
- data/lib/appnexusapi/advertiser_resource.rb +2 -0
- data/lib/appnexusapi/advertiser_service.rb +2 -0
- data/lib/appnexusapi/campaign_resource.rb +2 -0
- data/lib/appnexusapi/campaign_service.rb +2 -0
- data/lib/appnexusapi/connection.rb +19 -5
- data/lib/appnexusapi/content_category_service.rb +3 -1
- data/lib/appnexusapi/creative_service.rb +0 -10
- data/lib/appnexusapi/payment_rule_resource.rb +2 -0
- data/lib/appnexusapi/payment_rule_service.rb +2 -0
- data/lib/appnexusapi/placement_resource.rb +2 -0
- data/lib/appnexusapi/placement_service.rb +2 -0
- data/lib/appnexusapi/profile_resource.rb +2 -0
- data/lib/appnexusapi/profile_service.rb +2 -0
- data/lib/appnexusapi/publisher_resource.rb +2 -0
- data/lib/appnexusapi/publisher_service.rb +2 -0
- data/lib/appnexusapi/resource.rb +5 -4
- data/lib/appnexusapi/service.rb +16 -8
- data/lib/appnexusapi/site_resource.rb +2 -0
- data/lib/appnexusapi/site_service.rb +2 -0
- data/lib/appnexusapi/version.rb +1 -1
- data/spec/connection_spec.rb +13 -3
- data/spec/creative_service_spec.rb +33 -22
- data/spec/fixtures/vcr/advertiser_get.yml +108 -0
- data/spec/fixtures/vcr/campaign_life_cycle.yml +524 -0
- data/spec/fixtures/vcr/content_category_crud.yml +398 -0
- data/spec/fixtures/vcr/creative_service_create.yml +216 -0
- data/spec/fixtures/vcr/creative_service_delete.yml +354 -0
- data/spec/fixtures/vcr/creative_service_get.yml +214 -0
- data/spec/fixtures/vcr/creative_service_update.yml +266 -0
- data/spec/fixtures/vcr/domain_list_limits.yml +105 -0
- data/spec/fixtures/vcr/line_item_life_cycle.yml +521 -0
- data/spec/fixtures/vcr/member_get.yml +150 -0
- data/spec/fixtures/vcr/object_limit_info.yml +105 -0
- data/spec/fixtures/vcr/payment_rule_lifecycle.yml +346 -0
- data/spec/fixtures/vcr/placement_service_default_placement.yml +166 -0
- data/spec/fixtures/vcr/profile_life_cycle.yml +349 -0
- data/spec/fixtures/vcr/profile_limits.yml +105 -0
- data/spec/fixtures/vcr/publisher_crud.yml +282 -0
- data/spec/fixtures/vcr/site_lifecycle.yml +284 -0
- data/spec/fixtures/vcr/user_login.yml +107 -0
- data/spec/fixtures/vcr/user_update.yml +288 -0
- data/spec/integration/advertiser_spec.rb +11 -0
- data/spec/integration/campaign_spec.rb +38 -0
- data/spec/integration/content_category_spec.rb +22 -0
- data/spec/integration/line_item_spec.rb +27 -0
- data/spec/integration/member_spec.rb +9 -0
- data/spec/integration/payment_rule_spec.rb +33 -0
- data/spec/integration/placement_spec.rb +29 -0
- data/spec/integration/profile_spec.rb +29 -0
- data/spec/integration/publisher_spec.rb +20 -0
- data/spec/integration/site_spec.rb +32 -0
- data/spec/integration/user_spec.rb +42 -0
- data/spec/object_limit_service_spec.rb +14 -11
- data/spec/spec_helper.rb +52 -25
- data/spec/support/shared_contexts.rb +28 -0
- metadata +109 -3
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe AppnexusApi::LineItemService do
|
4
|
+
include_context 'with a new line item'
|
5
|
+
|
6
|
+
it "line item life cycle" do
|
7
|
+
# get all the line items
|
8
|
+
VCR.use_cassette('line_item_life_cycle') do
|
9
|
+
line_items = line_item_service.get(advertiser_id: advertiser_id)
|
10
|
+
new_line_item = line_item_service.create(advertiser_url_params, line_item_params)
|
11
|
+
|
12
|
+
ids = line_items.map(&:id) + [new_line_item.id]
|
13
|
+
expect(line_item_service.get(advertiser_id: advertiser_id).map(&:id).sort).to eq(ids.sort)
|
14
|
+
|
15
|
+
# update a line item
|
16
|
+
expect(new_line_item.state).to eq("active")
|
17
|
+
updated_line_item = new_line_item.update(advertiser_url_params, {state: "inactive"} )
|
18
|
+
expect(updated_line_item["state"]).to eq('inactive')
|
19
|
+
|
20
|
+
# delete a line item
|
21
|
+
new_line_item.delete(advertiser_url_params)
|
22
|
+
|
23
|
+
expect(line_item_service.get("id" => new_line_item.id)).to be_nil
|
24
|
+
advertiser.delete
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe AppnexusApi::PaymentRuleService do
|
4
|
+
include_context 'with a publisher'
|
5
|
+
|
6
|
+
let(:payment_rule_service) { described_class.new(connection) }
|
7
|
+
let(:code) { 'spec_payment_rule_code' }
|
8
|
+
let(:payment_rules_url_params) { { publisher_id: publisher['id'] } }
|
9
|
+
let(:initial_cost_cpm) { 1.00 }
|
10
|
+
let(:update_cost_cpm) { 2.00 }
|
11
|
+
let(:payment_rule_params) do
|
12
|
+
{
|
13
|
+
code: code,
|
14
|
+
name: 'spec payment rule',
|
15
|
+
pricing_type: 'cpm',
|
16
|
+
cost_cpm: initial_cost_cpm
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'payment rule life cycle' do
|
21
|
+
VCR.use_cassette('payment_rule_lifecycle') do
|
22
|
+
payment_rule = payment_rule_service.create(payment_rules_url_params, payment_rule_params)
|
23
|
+
expect(payment_rule.name).to eq('spec payment rule')
|
24
|
+
expect(payment_rule.cost_cpm).to eq(initial_cost_cpm)
|
25
|
+
|
26
|
+
updated_rule = payment_rule.update(payment_rules_url_params, { cost_cpm: update_cost_cpm} )
|
27
|
+
expect(updated_rule['cost_cpm']).to eq(update_cost_cpm)
|
28
|
+
|
29
|
+
payment_rule.delete
|
30
|
+
publisher.delete
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe AppnexusApi::PlacementService do
|
4
|
+
|
5
|
+
include_context 'with a publisher'
|
6
|
+
|
7
|
+
let(:placement_service) { described_class.new(connection) }
|
8
|
+
|
9
|
+
it "default placement" do
|
10
|
+
pending 'seems to rely on a configured default_site_id'
|
11
|
+
raise 'seems to rely on a configured default_site_id'
|
12
|
+
|
13
|
+
VCR.use_cassette('placement_service_default_placement') do
|
14
|
+
# now grab the default site
|
15
|
+
default_site = AppnexusApi::SiteService.new(connection).get(
|
16
|
+
id: publisher.default_site_id,
|
17
|
+
publisher_id: publisher.id
|
18
|
+
).first
|
19
|
+
|
20
|
+
# grab the default placement
|
21
|
+
default_placement = placement_service.get(id: default_site.placements.first["id"]).first
|
22
|
+
default_placement.name.should == "[Publisher Name] - Default"
|
23
|
+
default_placement.state.should == "active"
|
24
|
+
|
25
|
+
default_site.delete
|
26
|
+
publisher.delete
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe AppnexusApi::ProfileService do
|
4
|
+
include_context 'with a new line item'
|
5
|
+
|
6
|
+
let(:profile_service) { described_class.new(connection) }
|
7
|
+
let(:profile_descript) { 'Targeting only the US' }
|
8
|
+
|
9
|
+
it "profile life cycle" do
|
10
|
+
VCR.use_cassette('profile_life_cycle') do
|
11
|
+
profile_params = {
|
12
|
+
:code => "spec_profile_code",
|
13
|
+
:description => profile_descript,
|
14
|
+
:country_targets => [ { :id => 233 } ],
|
15
|
+
:country_action => "include"
|
16
|
+
}
|
17
|
+
|
18
|
+
profile = profile_service.create(advertiser_url_params, profile_params)
|
19
|
+
expect(profile.description).to eq(profile_descript)
|
20
|
+
expect(profile.country_targets).to eq([{ "id"=>233,"code"=>"US", "name"=>"United States", "active"=>true }])
|
21
|
+
|
22
|
+
new_line_item = line_item_service.create(advertiser_url_params, line_item_params.merge(profile_id: profile.id))
|
23
|
+
new_line_item.profile_id.should == profile.id
|
24
|
+
|
25
|
+
new_line_item.delete({ "advertiser_id" => advertiser_id })
|
26
|
+
advertiser.delete
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe AppnexusApi::PublisherService do
|
4
|
+
include_context 'with a publisher'
|
5
|
+
|
6
|
+
it "cruds" do
|
7
|
+
VCR.use_cassette('publisher_crud') do
|
8
|
+
expect(publisher.name).to eq 'spec publisher'
|
9
|
+
expect(publisher.expose_domains).to be true
|
10
|
+
expect(publisher.reselling_exposure).to eq "public"
|
11
|
+
expect(publisher.ad_quality_advanced_mode_enabled).to be true
|
12
|
+
|
13
|
+
expect { publisher_service.get("id" => publisher.id) }.to_not raise_error
|
14
|
+
|
15
|
+
publisher.delete
|
16
|
+
|
17
|
+
expect(publisher_service.get("id" => publisher.id)).to be_nil
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe AppnexusApi::SiteService do
|
4
|
+
include_context 'with a publisher'
|
5
|
+
|
6
|
+
let(:code) { 'spec_pub_code' }
|
7
|
+
let(:site_service) { described_class.new(connection) }
|
8
|
+
let(:site_code) { 'spec_site_code' }
|
9
|
+
|
10
|
+
it "site life cycle" do
|
11
|
+
VCR.use_cassette('site_lifecycle') do
|
12
|
+
new_site_url_params = { publisher_id: publisher.id }
|
13
|
+
new_site_params = {
|
14
|
+
name: "Site Name",
|
15
|
+
code: site_code,
|
16
|
+
url: "http://www.example.com",
|
17
|
+
intended_audience: "general",
|
18
|
+
audited: true
|
19
|
+
}
|
20
|
+
|
21
|
+
new_site = site_service.create(new_site_url_params, new_site_params)
|
22
|
+
new_site.name.should == "Site Name"
|
23
|
+
new_site.code.should == site_code
|
24
|
+
new_site.url.should == "http://www.example.com"
|
25
|
+
new_site.intended_audience.should == "general"
|
26
|
+
new_site.audited.should == true
|
27
|
+
|
28
|
+
new_site.delete
|
29
|
+
publisher.delete
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe AppnexusApi::UserService do
|
4
|
+
let(:user_service) { described_class.new(connection) }
|
5
|
+
let(:current_user) { user_service.get(current: 1).first }
|
6
|
+
let(:new_user_hash) do
|
7
|
+
{
|
8
|
+
username: 'rspec_user',
|
9
|
+
password: 'rspec_user',
|
10
|
+
user_type: 'member',
|
11
|
+
entity_id: current_user.entity_id,
|
12
|
+
first_name: "rspec",
|
13
|
+
last_name: "test",
|
14
|
+
email: "rspec@api.appnexus.com",
|
15
|
+
state: "inactive",
|
16
|
+
api_login: true, #this can only be set by Appnexus
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'returns the current user' do
|
21
|
+
VCR.use_cassette('user_login') do
|
22
|
+
expect(current_user.api_login).to be true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
#users aren't delete-able
|
27
|
+
#it 'create' do
|
28
|
+
# @new_user = @user_service.create({}, new_user_hash)
|
29
|
+
# expect(@user_service.get(id: @new_user.id).last_name).to eq "test"
|
30
|
+
#end
|
31
|
+
|
32
|
+
it 'updates' do
|
33
|
+
VCR.use_cassette('user_update') do
|
34
|
+
last_name ||= current_user.last_name
|
35
|
+
current_user.update({}, { last_name: "test" })
|
36
|
+
updated_user = user_service.get(id: current_user.id).first
|
37
|
+
#restore the last_name before expecting
|
38
|
+
current_user.update({}, { last_name: last_name })
|
39
|
+
expect(updated_user.last_name).to eq "test"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -1,24 +1,27 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe AppnexusApi::ObjectLimitService do
|
4
|
-
let(:object_limit_service)
|
5
|
-
AppnexusApi::ObjectLimitService.new(connection)
|
6
|
-
end
|
4
|
+
let(:object_limit_service) { described_class.new(connection) }
|
7
5
|
|
8
6
|
it "returns info about your current creative limits" do
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
VCR.use_cassette('object_limit_info') do
|
8
|
+
creative_limits = object_limit_service.creative_limits.raw_json
|
9
|
+
expect(creative_limits["object_type"]).to eq "creative"
|
10
|
+
expect(creative_limits["limit"].to_i).to be > 0
|
11
|
+
end
|
12
12
|
end
|
13
13
|
|
14
14
|
it "returns info about your current profile limits" do
|
15
|
-
profile_limits
|
16
|
-
|
15
|
+
VCR.use_cassette('profile_limits') do
|
16
|
+
profile_limits = object_limit_service.profile_limits.raw_json
|
17
|
+
expect(profile_limits["object_type"]).to eq "profile"
|
18
|
+
end
|
17
19
|
end
|
18
20
|
|
19
21
|
it "returns info about your current domain list limits" do
|
20
|
-
domain_list_limits
|
21
|
-
|
22
|
+
VCR.use_cassette('domain_list_limits') do
|
23
|
+
domain_list_limits = object_limit_service.domain_list_limits.raw_json
|
24
|
+
expect(domain_list_limits["object_type"]).to eq "domain_list"
|
25
|
+
end
|
22
26
|
end
|
23
27
|
end
|
24
|
-
|
data/spec/spec_helper.rb
CHANGED
@@ -1,36 +1,63 @@
|
|
1
1
|
require 'dotenv'
|
2
|
-
Dotenv.load
|
3
|
-
|
4
2
|
require 'pry'
|
5
3
|
require 'logger'
|
4
|
+
require 'vcr'
|
5
|
+
require 'webmock'
|
6
6
|
require_relative '../lib/appnexusapi'
|
7
|
+
Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
end
|
9
|
+
DEFAULT_SPEC_USERNAME = 'user'
|
10
|
+
DEFAULT_SPEC_PASSWORD = 'pass'
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
@logger.level = Logger::INFO
|
17
|
-
@logger
|
18
|
-
end
|
12
|
+
Dotenv.load
|
13
|
+
|
14
|
+
module SpecWithConnection
|
15
|
+
extend RSpec::SharedContext
|
19
16
|
|
20
|
-
|
21
|
-
AppnexusApi::Connection.new(
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
17
|
+
let(:test_logger) { Logger.new('./log/test.log') }
|
18
|
+
let(:connection) { AppnexusApi::Connection.new(connection_params.merge('logger' => test_logger)) }
|
19
|
+
let(:connection_with_null_logger) { AppnexusApi::Connection.new(connection_params) }
|
20
|
+
let(:connection_params) do
|
21
|
+
{
|
22
|
+
'username' => ENV['APPNEXUS_USERNAME'] || 'user',
|
23
|
+
'password' => ENV['APPNEXUS_PASSWORD'] || 'pass',
|
24
|
+
'uri' => ENV['APPNEXUS_URI'] || 'https://api-test.appnexus.com'
|
25
|
+
}
|
26
|
+
end
|
27
27
|
end
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
'
|
32
|
-
|
33
|
-
'
|
34
|
-
|
29
|
+
RSpec.configure do |config|
|
30
|
+
config.before(:suite) do
|
31
|
+
FileUtils.mkdir_p('./log')
|
32
|
+
|
33
|
+
if ENV['APPNEXUS_USERNAME'] && ENV['APPNEXUS_PASSWORD']
|
34
|
+
puts 'Attempting to destroy rspec created records on the Appnexus test server...'
|
35
|
+
connection_params = {
|
36
|
+
'username' => ENV['APPNEXUS_USERNAME'],
|
37
|
+
'password' => ENV['APPNEXUS_PASSWORD'],
|
38
|
+
'uri' => ENV['APPNEXUS_URI'] || 'https://api-test.appnexus.com'
|
39
|
+
}
|
40
|
+
|
41
|
+
connection = AppnexusApi::Connection.new(connection_params.merge('logger' => Logger.new('./log/test.log')))
|
42
|
+
|
43
|
+
AppnexusApi::PublisherService.new(connection).get.each { |p| p.delete if p.name =~ /spec/ || p.code =~ /spec/ }
|
44
|
+
AppnexusApi::AdvertiserService.new(connection).get.each { |a| a.delete if a.name =~ /spec/ }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
config.filter_run_excluding slow: true
|
49
|
+
config.include SpecWithConnection
|
35
50
|
end
|
36
51
|
|
52
|
+
VCR.configure do |c|
|
53
|
+
c.cassette_library_dir = 'spec/fixtures/vcr'
|
54
|
+
c.hook_into :webmock
|
55
|
+
|
56
|
+
c.allow_http_connections_when_no_cassette = true
|
57
|
+
c.filter_sensitive_data('<APPNEXUS_USERNAME>') { ENV['APPNEXUS_USERNAME'] || DEFAULT_SPEC_USERNAME }
|
58
|
+
c.filter_sensitive_data('<APPNEXUS_PASSWORD>') { ENV['APPNEXUS_PASSWORD'] || DEFAULT_SPEC_PASSWORD }
|
59
|
+
|
60
|
+
c.default_cassette_options = {
|
61
|
+
match_requests_on: [:method, :uri, :body]
|
62
|
+
}
|
63
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
shared_context 'with an advertiser' do
|
2
|
+
let(:advertiser_params) { { name: 'rspec advertiser' } }
|
3
|
+
let(:advertiser) { AppnexusApi::AdvertiserService.new(connection).create({}, advertiser_params) }
|
4
|
+
let(:advertiser_id) { advertiser.id }
|
5
|
+
let(:advertiser_url_params) { { advertiser_id: advertiser_id } }
|
6
|
+
end
|
7
|
+
|
8
|
+
shared_context 'with a new line item' do
|
9
|
+
include_context 'with an advertiser'
|
10
|
+
|
11
|
+
let(:line_item_service) { AppnexusApi::LineItemService.new(connection) }
|
12
|
+
let(:line_item_params) { { name: 'some line item', code: 'spec_line_code' } }
|
13
|
+
end
|
14
|
+
|
15
|
+
shared_context 'with a publisher' do
|
16
|
+
let(:publisher_service) { AppnexusApi::PublisherService.new(connection) }
|
17
|
+
let(:publisher) { publisher_service.create(publisher_url_params, publisher_params) }
|
18
|
+
let(:publisher_url_params) { { create_default_placement: false } }
|
19
|
+
let(:publisher_params) do
|
20
|
+
{
|
21
|
+
name: "spec publisher",
|
22
|
+
code: 'spec_publisher_code',
|
23
|
+
expose_domains: true,
|
24
|
+
reselling_exposure: "public",
|
25
|
+
ad_quality_advanced_mode_enabled: true
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appnexusapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marlon Moyer
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2017-02-09 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: faraday
|
@@ -138,6 +138,34 @@ dependencies:
|
|
138
138
|
- - ">="
|
139
139
|
- !ruby/object:Gem::Version
|
140
140
|
version: '0'
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
name: vcr
|
143
|
+
requirement: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
type: :development
|
149
|
+
prerelease: false
|
150
|
+
version_requirements: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
- !ruby/object:Gem::Dependency
|
156
|
+
name: webmock
|
157
|
+
requirement: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
type: :development
|
163
|
+
prerelease: false
|
164
|
+
version_requirements: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
141
169
|
description: ''
|
142
170
|
email:
|
143
171
|
- marlon@simpli.fi
|
@@ -151,11 +179,14 @@ files:
|
|
151
179
|
- LICENSE
|
152
180
|
- README.md
|
153
181
|
- Rakefile
|
182
|
+
- UPGRADING.md
|
154
183
|
- appnexusapi.gemspec
|
155
184
|
- env_example
|
156
185
|
- lib/appnexusapi.rb
|
157
186
|
- lib/appnexusapi/ad_server_resource.rb
|
158
187
|
- lib/appnexusapi/ad_server_service.rb
|
188
|
+
- lib/appnexusapi/advertiser_resource.rb
|
189
|
+
- lib/appnexusapi/advertiser_service.rb
|
159
190
|
- lib/appnexusapi/bidder_instance_resource.rb
|
160
191
|
- lib/appnexusapi/bidder_instance_service.rb
|
161
192
|
- lib/appnexusapi/bidder_profile_resource.rb
|
@@ -166,6 +197,8 @@ files:
|
|
166
197
|
- lib/appnexusapi/brand_service.rb
|
167
198
|
- lib/appnexusapi/browser_resource.rb
|
168
199
|
- lib/appnexusapi/browser_service.rb
|
200
|
+
- lib/appnexusapi/campaign_resource.rb
|
201
|
+
- lib/appnexusapi/campaign_service.rb
|
169
202
|
- lib/appnexusapi/category_resource.rb
|
170
203
|
- lib/appnexusapi/category_service.rb
|
171
204
|
- lib/appnexusapi/connection.rb
|
@@ -202,12 +235,22 @@ files:
|
|
202
235
|
- lib/appnexusapi/operating_system_extended_service.rb
|
203
236
|
- lib/appnexusapi/operating_system_resource.rb
|
204
237
|
- lib/appnexusapi/operating_system_service.rb
|
238
|
+
- lib/appnexusapi/payment_rule_resource.rb
|
239
|
+
- lib/appnexusapi/payment_rule_service.rb
|
240
|
+
- lib/appnexusapi/placement_resource.rb
|
241
|
+
- lib/appnexusapi/placement_service.rb
|
205
242
|
- lib/appnexusapi/platform_member_resource.rb
|
206
243
|
- lib/appnexusapi/platform_member_service.rb
|
244
|
+
- lib/appnexusapi/profile_resource.rb
|
245
|
+
- lib/appnexusapi/profile_service.rb
|
246
|
+
- lib/appnexusapi/publisher_resource.rb
|
247
|
+
- lib/appnexusapi/publisher_service.rb
|
207
248
|
- lib/appnexusapi/resource.rb
|
208
249
|
- lib/appnexusapi/segment_resource.rb
|
209
250
|
- lib/appnexusapi/segment_service.rb
|
210
251
|
- lib/appnexusapi/service.rb
|
252
|
+
- lib/appnexusapi/site_resource.rb
|
253
|
+
- lib/appnexusapi/site_service.rb
|
211
254
|
- lib/appnexusapi/technical_attribute_resource.rb
|
212
255
|
- lib/appnexusapi/technical_attribute_service.rb
|
213
256
|
- lib/appnexusapi/tiny_tag_resource.rb
|
@@ -217,8 +260,39 @@ files:
|
|
217
260
|
- lib/appnexusapi/version.rb
|
218
261
|
- spec/connection_spec.rb
|
219
262
|
- spec/creative_service_spec.rb
|
263
|
+
- spec/fixtures/vcr/advertiser_get.yml
|
264
|
+
- spec/fixtures/vcr/campaign_life_cycle.yml
|
265
|
+
- spec/fixtures/vcr/content_category_crud.yml
|
266
|
+
- spec/fixtures/vcr/creative_service_create.yml
|
267
|
+
- spec/fixtures/vcr/creative_service_delete.yml
|
268
|
+
- spec/fixtures/vcr/creative_service_get.yml
|
269
|
+
- spec/fixtures/vcr/creative_service_update.yml
|
270
|
+
- spec/fixtures/vcr/domain_list_limits.yml
|
271
|
+
- spec/fixtures/vcr/line_item_life_cycle.yml
|
272
|
+
- spec/fixtures/vcr/member_get.yml
|
273
|
+
- spec/fixtures/vcr/object_limit_info.yml
|
274
|
+
- spec/fixtures/vcr/payment_rule_lifecycle.yml
|
275
|
+
- spec/fixtures/vcr/placement_service_default_placement.yml
|
276
|
+
- spec/fixtures/vcr/profile_life_cycle.yml
|
277
|
+
- spec/fixtures/vcr/profile_limits.yml
|
278
|
+
- spec/fixtures/vcr/publisher_crud.yml
|
279
|
+
- spec/fixtures/vcr/site_lifecycle.yml
|
280
|
+
- spec/fixtures/vcr/user_login.yml
|
281
|
+
- spec/fixtures/vcr/user_update.yml
|
282
|
+
- spec/integration/advertiser_spec.rb
|
283
|
+
- spec/integration/campaign_spec.rb
|
284
|
+
- spec/integration/content_category_spec.rb
|
285
|
+
- spec/integration/line_item_spec.rb
|
286
|
+
- spec/integration/member_spec.rb
|
287
|
+
- spec/integration/payment_rule_spec.rb
|
288
|
+
- spec/integration/placement_spec.rb
|
289
|
+
- spec/integration/profile_spec.rb
|
290
|
+
- spec/integration/publisher_spec.rb
|
291
|
+
- spec/integration/site_spec.rb
|
292
|
+
- spec/integration/user_spec.rb
|
220
293
|
- spec/object_limit_service_spec.rb
|
221
294
|
- spec/spec_helper.rb
|
295
|
+
- spec/support/shared_contexts.rb
|
222
296
|
homepage: https://github.com/simplifi/appnexusapi
|
223
297
|
licenses: []
|
224
298
|
metadata: {}
|
@@ -238,12 +312,44 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
238
312
|
version: '0'
|
239
313
|
requirements: []
|
240
314
|
rubyforge_project:
|
241
|
-
rubygems_version: 2.2.
|
315
|
+
rubygems_version: 2.2.3
|
242
316
|
signing_key:
|
243
317
|
specification_version: 4
|
244
318
|
summary: Unofficial Ruby API Wrapper for Appnexus
|
245
319
|
test_files:
|
246
320
|
- spec/connection_spec.rb
|
247
321
|
- spec/creative_service_spec.rb
|
322
|
+
- spec/fixtures/vcr/advertiser_get.yml
|
323
|
+
- spec/fixtures/vcr/campaign_life_cycle.yml
|
324
|
+
- spec/fixtures/vcr/content_category_crud.yml
|
325
|
+
- spec/fixtures/vcr/creative_service_create.yml
|
326
|
+
- spec/fixtures/vcr/creative_service_delete.yml
|
327
|
+
- spec/fixtures/vcr/creative_service_get.yml
|
328
|
+
- spec/fixtures/vcr/creative_service_update.yml
|
329
|
+
- spec/fixtures/vcr/domain_list_limits.yml
|
330
|
+
- spec/fixtures/vcr/line_item_life_cycle.yml
|
331
|
+
- spec/fixtures/vcr/member_get.yml
|
332
|
+
- spec/fixtures/vcr/object_limit_info.yml
|
333
|
+
- spec/fixtures/vcr/payment_rule_lifecycle.yml
|
334
|
+
- spec/fixtures/vcr/placement_service_default_placement.yml
|
335
|
+
- spec/fixtures/vcr/profile_life_cycle.yml
|
336
|
+
- spec/fixtures/vcr/profile_limits.yml
|
337
|
+
- spec/fixtures/vcr/publisher_crud.yml
|
338
|
+
- spec/fixtures/vcr/site_lifecycle.yml
|
339
|
+
- spec/fixtures/vcr/user_login.yml
|
340
|
+
- spec/fixtures/vcr/user_update.yml
|
341
|
+
- spec/integration/advertiser_spec.rb
|
342
|
+
- spec/integration/campaign_spec.rb
|
343
|
+
- spec/integration/content_category_spec.rb
|
344
|
+
- spec/integration/line_item_spec.rb
|
345
|
+
- spec/integration/member_spec.rb
|
346
|
+
- spec/integration/payment_rule_spec.rb
|
347
|
+
- spec/integration/placement_spec.rb
|
348
|
+
- spec/integration/profile_spec.rb
|
349
|
+
- spec/integration/publisher_spec.rb
|
350
|
+
- spec/integration/site_spec.rb
|
351
|
+
- spec/integration/user_spec.rb
|
248
352
|
- spec/object_limit_service_spec.rb
|
249
353
|
- spec/spec_helper.rb
|
354
|
+
- spec/support/shared_contexts.rb
|
355
|
+
has_rdoc:
|