Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
#!/usr/bin/env rake
require "bundler/gem_tasks"
require 'rspec/core/rake_task'

RSpec::Core::RakeTask.new(:spec)
task default: %i[spec]
3 changes: 3 additions & 0 deletions appnexusapi.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,15 @@ Gem::Specification.new do |gem|
gem.require_paths = ["lib"]
gem.version = AppnexusApi::VERSION

gem.required_ruby_version = '>= 2.2'

gem.add_dependency 'faraday', '~> 0.9'
gem.add_dependency 'faraday_middleware'
gem.add_dependency 'multi_json'
gem.add_dependency 'retriable', '>= 2.0'

gem.add_development_dependency 'bundler', '>= 1.2.0'
gem.add_development_dependency 'rake'
gem.add_development_dependency 'rspec'
gem.add_development_dependency 'dotenv'
gem.add_development_dependency 'pry'
Expand Down
5 changes: 2 additions & 3 deletions lib/appnexusapi/read_only_service.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
module AppnexusApi
class ReadOnlyService < Service
def initialize(connection)
@read_only = true
super(connection)
def initialize(connection, **opts)
super(connection, read_only: true, **opts)
end
end
end
44 changes: 23 additions & 21 deletions lib/appnexusapi/service.rb
Original file line number Diff line number Diff line change
@@ -1,31 +1,19 @@
class AppnexusApi::Service
DEFAULT_NUMBER_OF_ELEMENTS = 100

def initialize(connection)
@connection = connection
end
attr_reader :name, :plural_name, :uri_name, :plural_uri_name, :uri_suffix

def name
@name ||= begin
def initialize(connection, read_only: false, name: nil, plural_name: nil, uri_name: nil, plural_uri_name: nil, uri_suffix: nil)
@connection = connection
@name = name || begin
str = self.class.name.split('::').last.sub(/Service\z/, '')
str.gsub(/(.)([A-Z])/, '\1_\2').downcase
end
end

def plural_name
name + 's'
end

def uri_name
name.gsub('_', '-')
end

def plural_uri_name
uri_name + 's'
end

def uri_suffix
uri_name
@plural_name = plural_name || "#{@name}s"
@uri_name = uri_name || @name.gsub('_', '-')
@plural_uri_name = plural_uri_name || @plural_name.gsub('_', '-')
@uri_suffix = uri_suffix || @uri_name
@read_only = read_only
end

def get(params = {})
Expand All @@ -46,6 +34,20 @@ def get_all(params = {})
responses
end

# All returns an enumerator.
def all(params = {})
Enumerator.new do |y|
Comment thread
dim marked this conversation as resolved.
Outdated
offset = 0
responses = get(params)

while responses.size > 0
responses.each {|x| y << x }
offset += responses.size
responses = get(params.merge('start_element' => offset))
end
end
end

def create(route_params = {}, body = {})
check_read_only!
route = @connection.build_url(uri_suffix, route_params)
Expand Down
8 changes: 2 additions & 6 deletions lib/appnexusapi/services/ad_server_service.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
class AppnexusApi::AdServerService < AppnexusApi::ReadOnlyService
def name
"adserver"
end

def uri_suffix
"ad-server"
def initialize(connection, **opts)
super(connection, name: 'adserver', uri_suffix: 'ad-server', **opts)
end
end
13 changes: 2 additions & 11 deletions lib/appnexusapi/services/bidder_instance_service.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
class AppnexusApi::BidderInstanceService < AppnexusApi::Service
def initialize(connection, bidder_id)
@bidder_id = bidder_id
super(connection)
end

def name
"instance"
end

def uri_suffix
"bidder-instance/#{@bidder_id}"
def initialize(connection, bidder_id, **opts)
super(connection, name: 'instance', uri_suffix: "bidder-instance/#{bidder_id}", **opts)
end

def delete(id)
Expand Down
13 changes: 2 additions & 11 deletions lib/appnexusapi/services/bidder_profile_service.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
class AppnexusApi::BidderProfileService < AppnexusApi::Service
def initialize(connection, bidder_id)
@bidder_id = bidder_id
super(connection)
end

def name
"profile"
end

def uri_suffix
"profile/#{@bidder_id}"
def initialize(connection, bidder_id, **opts)
super(connection, name: 'profile', uri_suffix: "profile/#{bidder_id}", **opts)
end

def delete(id)
Expand Down
4 changes: 2 additions & 2 deletions lib/appnexusapi/services/category_service.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class AppnexusApi::CategoryService < AppnexusApi::ReadOnlyService
def plural_name
"categories"
def initialize(connection, **opts)
super(connection, plural_name: 'categories', **opts)
end
end
12 changes: 2 additions & 10 deletions lib/appnexusapi/services/content_category_service.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
class AppnexusApi::ContentCategoryService < AppnexusApi::Service
def initialize(connection)
super(connection)
end

def plural_name
"content_categories"
end

def plural_uri_name
"content-categories"
def initialize(connection, **opts)
super(connection, plural_name: 'content_categories', **opts)
end
end
8 changes: 2 additions & 6 deletions lib/appnexusapi/services/creative_template_service.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
class AppnexusApi::CreativeTemplateService < AppnexusApi::Service
def name
"template"
end

def uri_suffix
name
def initialize(connection, **opts)
super(connection, name: 'template', uri_suffix: 'template', **opts)
end

def delete(id)
Expand Down
2 changes: 2 additions & 0 deletions lib/appnexusapi/services/insertion_order_service.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
class AppnexusApi::InsertionOrderService < AppnexusApi::Service
end
Comment thread
dim marked this conversation as resolved.
2 changes: 2 additions & 0 deletions lib/appnexusapi/services/inventory_list_service.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
class AppnexusApi::InventoryListService < AppnexusApi::Service
end
Comment thread
dim marked this conversation as resolved.
12 changes: 4 additions & 8 deletions lib/appnexusapi/services/log_level_data_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,16 @@ class LogLevelDataService < AppnexusApi::ReadOnlyService
end
}.freeze

def initialize(connection, options = {})
@downloaded_files_path = options[:downloaded_files_path] || '.'
@siphon_name = options[:siphon_name] || DEFAULT_FEED
super(connection)
def initialize(connection, downloaded_files_path: '.', siphon_name: DEFAULT_FEED, **opts)
@downloaded_files_path = downloaded_files_path
@siphon_name = siphon_name
super(connection, uri_name: 'siphon', **opts)
end

def download_new_files_since(time = nil)
since(time).map { |siphon| download_resource(siphon) }
end

def uri_name
'siphon'
end

def since(time = nil)
params = {}
params[:siphon_name] = @siphon_name if @siphon_name
Expand Down
4 changes: 2 additions & 2 deletions lib/appnexusapi/services/operating_system_extended_service.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class AppnexusApi::OperatingSystemExtendedService < AppnexusApi::ReadOnlyService
def plural_name
'operating-systems-extended'
def initialize(connection, **opts)
super(connection, plural_name: 'operating-systems-extended', **opts)
end
end
9 changes: 2 additions & 7 deletions lib/appnexusapi/services/segment_service.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
class AppnexusApi::SegmentService < AppnexusApi::Service
def initialize(connection, member_id)
@member_id = member_id
super(connection)
end

def uri_suffix
"#{super}/#{@member_id}"
def initialize(connection, member_id, **opts)
super(connection, uri_suffix: "segments/#{member_id}", **opts)
end
end
13 changes: 2 additions & 11 deletions lib/appnexusapi/services/tiny_tag_service.rb
Original file line number Diff line number Diff line change
@@ -1,14 +1,5 @@
class AppnexusApi::TinyTagService < AppnexusApi::Service
def initialize(connection, member_id)
@member_id = member_id
super(connection)
end

def name
"tinytag"
end

def uri_suffix
"tt/#{@member_id}"
def initialize(connection, member_id, **opts)
super(connection, name: 'tinytag', uri_suffix: "tt/#{member_id}", **opts)
end
end
2 changes: 1 addition & 1 deletion lib/appnexusapi/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module AppnexusApi
VERSION = '1.1.0'.freeze
VERSION = '1.2.0'.freeze
end
2 changes: 1 addition & 1 deletion spec/connection_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
end

before do
described_class.const_set('RATE_EXCEEDED_DEFAULT_TIMEOUT', 0)
stub_const("#{described_class}::RATE_EXCEEDED_DEFAULT_TIMEOUT", 0)
end

it 'retries 3 times' do
Expand Down
2 changes: 1 addition & 1 deletion spec/integration/log_level_data_service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

describe AppnexusApi::LogLevelDataService do
after(:each) do
system('rm standard_feed_2017_02_13_00_0.gz')
FileUtils.rm_f 'standard_feed_2017_02_13_00_0.gz'
end

it 'downloads new files' do
Expand Down
4 changes: 2 additions & 2 deletions spec/integration/placement_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@

# grab the default placement
default_placement = placement_service.get(id: default_site.placements.first["id"]).first
default_placement.name.should == "[Publisher Name] - Default"
default_placement.state.should == "active"
expect(default_placement.name).to eq("[Publisher Name] - Default")
expect(default_placement.state).to eq("active")

default_site.delete
publisher.delete
Expand Down
2 changes: 1 addition & 1 deletion spec/integration/profile_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
expect(profile.country_targets).to eq([{ "id"=>233,"code"=>"US", "name"=>"United States", "active"=>true }])

new_line_item = line_item_service.create(advertiser_url_params, line_item_params.merge(profile_id: profile.id))
new_line_item.profile_id.should == profile.id
expect(new_line_item.profile_id).to eq(profile.id)

new_line_item.delete({ "advertiser_id" => advertiser_id })
advertiser.delete
Expand Down
10 changes: 5 additions & 5 deletions spec/integration/site_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
}

new_site = site_service.create(new_site_url_params, new_site_params)
new_site.name.should == "Site Name"
new_site.code.should == site_code
new_site.url.should == "http://www.example.com"
new_site.intended_audience.should == "general"
new_site.audited.should == true
expect(new_site.name).to eq("Site Name")
expect(new_site.code).to eq(site_code)
expect(new_site.url).to eq("http://www.example.com")
expect(new_site.intended_audience).to eq("general")
expect(new_site.audited).to eq(true)

new_site.delete
publisher.delete
Expand Down