class Songkick::Transport::Service
Constants
- DEFAULT_TIMEOUT
- DEFAULT_TRANSPORT
Public Class Methods
ancestor()
click to toggle source
# File lib/songkick/transport/service.rb, line 7 def self.ancestor warn "DEPRECATED: calling ancestor on #{self}" self.ancestors.select { |a| a.respond_to?(:get_user_agent) }[1] end
endpoint(name)
click to toggle source
# File lib/songkick/transport/service.rb, line 32 def self.endpoint(name) @endpoint_name = name.to_s end
extra_headers()
click to toggle source
# File lib/songkick/transport/service.rb, line 17 def self.extra_headers warn "DEPRECATED: calling extra_headers on #{self}" get_with_headers end
get_endpoint()
click to toggle source
# File lib/songkick/transport/service.rb, line 64 def self.get_endpoint Service.get_endpoints[self.get_endpoint_name] || raise("can't find endpoint for '#{self.get_endpoint_name}', should have called Songkick::Transport::Service.set_endpoints") end
get_endpoint_name()
click to toggle source
# File lib/songkick/transport/service.rb, line 59 def self.get_endpoint_name @endpoint_name || (parent_service && parent_service.get_endpoint_name) || raise("no endpoint specified for #{self}, call endpoint 'foo' inside #{self}") end
get_endpoints()
click to toggle source
# File lib/songkick/transport/service.rb, line 77 def self.get_endpoints @endpoints || {} end
get_stub_transport()
click to toggle source
# File lib/songkick/transport/service.rb, line 89 def self.get_stub_transport @stub_transport || (parent_service && parent_service.get_stub_transport) || nil end
get_timeout()
click to toggle source
# File lib/songkick/transport/service.rb, line 69 def self.get_timeout @timeout || (parent_service && parent_service.get_timeout) || DEFAULT_TIMEOUT end
get_transport_layer()
click to toggle source
# File lib/songkick/transport/service.rb, line 81 def self.get_transport_layer @transport_layer || (parent_service && parent_service.get_transport_layer) || DEFAULT_TRANSPORT end
get_transport_layer_options()
click to toggle source
# File lib/songkick/transport/service.rb, line 85 def self.get_transport_layer_options ((parent_service && parent_service.get_transport_layer_options) || {}).merge(@transport_layer_options || {}) end
get_user_agent()
click to toggle source
# File lib/songkick/transport/service.rb, line 73 def self.get_user_agent @user_agent || (parent_service && parent_service.get_user_agent) end
get_with_headers()
click to toggle source
# File lib/songkick/transport/service.rb, line 93 def self.get_with_headers ((parent_service && parent_service.get_with_headers) || {}).merge(@with_headers || {}) end
new_transport()
click to toggle source
# File lib/songkick/transport/service.rb, line 97 def self.new_transport unless user_agent = get_user_agent raise "no user agent specified for #{self}, call user_agent 'foo' inside #{self} or on Songkick::Transport::Service" end get_stub_transport || get_transport_layer.new(self.get_endpoint, { :user_agent => user_agent, :timeout => get_timeout }.merge(get_transport_layer_options)) end
set_endpoints(hash)
click to toggle source
# File lib/songkick/transport/service.rb, line 52 def self.set_endpoints(hash) unless self == Songkick::Transport::Service raise "set_endpoints only on Songkick::Transport::Service" end @endpoints = hash end
stub_transport(stub)
click to toggle source
# File lib/songkick/transport/service.rb, line 12 def self.stub_transport(stub) warn "DEPRECATED: calling stub_transport on #{self}" @stub_transport = stub end
this_extra_headers()
click to toggle source
# File lib/songkick/transport/service.rb, line 22 def self.this_extra_headers warn "DEPRECATED: calling this_extra_headers on #{self}" @with_headers || {} end
timeout(value)
click to toggle source
# File lib/songkick/transport/service.rb, line 36 def self.timeout(value) @timeout = value end
transport_layer(value)
click to toggle source
# File lib/songkick/transport/service.rb, line 44 def self.transport_layer(value) @transport_layer = value end
transport_layer_options(value)
click to toggle source
# File lib/songkick/transport/service.rb, line 48 def self.transport_layer_options(value) @transport_layer_options = value end
user_agent(value)
click to toggle source
# File lib/songkick/transport/service.rb, line 40 def self.user_agent(value) @user_agent = value end
with_headers(headers)
click to toggle source
# File lib/songkick/transport/service.rb, line 104 def self.with_headers(headers) @with_headers = headers end
Private Class Methods
parent_service()
click to toggle source
# File lib/songkick/transport/service.rb, line 27 def self.parent_service superclass if superclass <= Songkick::Transport::Service end
Public Instance Methods
http()
click to toggle source
# File lib/songkick/transport/service.rb, line 108 def http r = (@http ||= self.class.new_transport) if self.class.get_with_headers.any? r.with_headers(self.class.get_with_headers) else r end end
rescue_404(response=nil) { || ... }
click to toggle source
# File lib/songkick/transport/service.rb, line 121 def rescue_404(response=nil) yield rescue Songkick::Transport::HttpError => e e.status == 404 ? response : (raise e) end
stub_transport(http)
click to toggle source
# File lib/songkick/transport/service.rb, line 117 def stub_transport(http) @http = http end