Module: Songkick::Transport

Defined in:
lib/songkick/transport.rb,
lib/songkick/transport/base.rb,
lib/songkick/transport/curb.rb,
lib/songkick/transport/headers.rb,
lib/songkick/transport/request.rb,
lib/songkick/transport/service.rb,
lib/songkick/transport/httparty.rb,
lib/songkick/transport/response.rb,
lib/songkick/transport/rack_test.rb,
lib/songkick/transport/reporting.rb,
lib/songkick/transport/http_error.rb,
lib/songkick/transport/serialization.rb,
lib/songkick/transport/upstream_error.rb,
lib/songkick/transport/header_decorator.rb,
lib/songkick/transport/timeout_decorator.rb

Defined Under Namespace

Modules: Reporting, Serialization Classes: Base, ConnectionFailedError, Curb, HeaderDecorator, Headers, HostResolutionError, HttParty, HttpError, InvalidJSONError, RackTest, Request, Response, Service, TimeoutDecorator, TimeoutError, UpstreamError

Constant Summary collapse

DEFAULT_TIMEOUT =
5
DEFAULT_FORMAT =
:json
DEFAULT_USER_ERROR_CODES =
[409]
HTTP_VERBS =
%w[options head get patch post put delete]
USE_BODY =
%w[post put]
FORM_ENCODING =
'application/x-www-form-urlencoded'
ROOT =
File.expand_path('..', __FILE__)
IO =
UploadIO

Class Method Summary collapse

Class Method Details

.io(object) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
# File 'lib/songkick/transport.rb', line 56

def self.io(object)
  if Hash === object and [:tempfile, :type, :filename].all? { |k| object.has_key? k } # Rack upload
    Transport::IO.new(object[:tempfile], object[:type], object[:filename])
    
  elsif object.respond_to?(:content_type) and object.respond_to?(:original_filename) # Rails upload
    Transport::IO.new(object, object.content_type, object.original_filename)
    
  else
    raise ArgumentError, "Could not generate a Transport::IO from #{object.inspect}"
  end
end

.loggerObject



68
69
70
71
72
73
# File 'lib/songkick/transport.rb', line 68

def self.logger
  @logger ||= begin
                require 'logger'
                Logger.new(STDOUT)
              end
end

.logger=(logger) ⇒ Object



75
76
77
# File 'lib/songkick/transport.rb', line 75

def self.logger=(logger)
  @logger = logger
end

.parser_for(content_type) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/songkick/transport.rb', line 44

def self.parser_for(content_type)
  parser = @parsers && @parsers[content_type]
  unless parser
    raise TypeError, "Could not find a parser for content-type: #{content_type}"
  end
  parser
end

.register_parser(content_type, parser) ⇒ Object



39
40
41
42
# File 'lib/songkick/transport.rb', line 39

def self.register_parser(content_type, parser)
  @parsers ||= {}
  @parsers[content_type] = parser
end

.reportObject



87
88
89
# File 'lib/songkick/transport.rb', line 87

def self.report
  Reporting.report
end

.sanitize(*params) ⇒ Object



91
92
93
# File 'lib/songkick/transport.rb', line 91

def self.sanitize(*params)
  sanitized_params.concat(params)
end

.sanitized_paramsObject



95
96
97
# File 'lib/songkick/transport.rb', line 95

def self.sanitized_params
  @sanitized_params ||= []
end

.verbose=(verbose) ⇒ Object



79
80
81
# File 'lib/songkick/transport.rb', line 79

def self.verbose=(verbose)
  @verbose = verbose
end

.verbose?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/songkick/transport.rb', line 83

def self.verbose?
  @verbose
end