Class: Songkick::Transport::Service
- Inherits:
-
Object
- Object
- Songkick::Transport::Service
- Defined in:
- lib/songkick/transport/service.rb
Constant Summary collapse
Class Method Summary collapse
- .ancestor ⇒ Object
- .endpoint(name) ⇒ Object
- .extra_headers ⇒ Object
- .get_endpoint ⇒ Object
- .get_endpoint_name ⇒ Object
- .get_endpoints ⇒ Object
- .get_stub_transport ⇒ Object
- .get_timeout ⇒ Object
- .get_transport_layer ⇒ Object
- .get_transport_layer_options ⇒ Object
- .get_user_agent ⇒ Object
- .get_with_headers ⇒ Object
- .new_transport ⇒ Object
- .set_endpoints(hash) ⇒ Object
- .stub_transport(stub) ⇒ Object
- .this_extra_headers ⇒ Object
- .timeout(value) ⇒ Object
- .transport_layer(value) ⇒ Object
- .transport_layer_options(value) ⇒ Object
- .user_agent(value) ⇒ Object
- .with_headers(headers) ⇒ Object
Instance Method Summary collapse
Class Method Details
.ancestor ⇒ Object
7 8 9 10 |
# 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) ⇒ Object
32 33 34 |
# File 'lib/songkick/transport/service.rb', line 32 def self.endpoint(name) @endpoint_name = name.to_s end |
.extra_headers ⇒ Object
17 18 19 20 |
# 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 ⇒ Object
64 65 66 67 |
# 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 ⇒ Object
59 60 61 62 |
# 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 ⇒ Object
77 78 79 |
# File 'lib/songkick/transport/service.rb', line 77 def self.get_endpoints @endpoints || {} end |
.get_stub_transport ⇒ Object
89 90 91 |
# 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 ⇒ Object
69 70 71 |
# 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 ⇒ Object
81 82 83 |
# 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 ⇒ Object
85 86 87 |
# File 'lib/songkick/transport/service.rb', line 85 def self. ((parent_service && parent_service.) || {}).merge(@transport_layer_options || {}) end |
.get_user_agent ⇒ Object
73 74 75 |
# 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 ⇒ Object
93 94 95 |
# 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 ⇒ Object
97 98 99 100 101 102 |
# 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()) end |
.set_endpoints(hash) ⇒ Object
52 53 54 55 56 57 |
# 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) ⇒ Object
12 13 14 15 |
# 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 ⇒ Object
22 23 24 25 |
# 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) ⇒ Object
36 37 38 |
# File 'lib/songkick/transport/service.rb', line 36 def self.timeout(value) @timeout = value end |
.transport_layer(value) ⇒ Object
44 45 46 |
# File 'lib/songkick/transport/service.rb', line 44 def self.transport_layer(value) @transport_layer = value end |
.transport_layer_options(value) ⇒ Object
48 49 50 |
# File 'lib/songkick/transport/service.rb', line 48 def self.(value) @transport_layer_options = value end |
.user_agent(value) ⇒ Object
40 41 42 |
# File 'lib/songkick/transport/service.rb', line 40 def self.user_agent(value) @user_agent = value end |
.with_headers(headers) ⇒ Object
104 105 106 |
# File 'lib/songkick/transport/service.rb', line 104 def self.with_headers(headers) @with_headers = headers end |
Instance Method Details
#http ⇒ Object
108 109 110 111 112 113 114 115 |
# 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) ⇒ Object
121 122 123 124 125 |
# 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) ⇒ Object
117 118 119 |
# File 'lib/songkick/transport/service.rb', line 117 def stub_transport(http) @http = http end |