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/authentication.rb,
lib/songkick/transport/upstream_error.rb

Defined Under Namespace

Modules: Authentication, Reporting, Serialization Classes: Base, ConnectionFailedError, Curb, Headers, HostResolutionError, HttParty, HttpError, InvalidJSONError, RackTest, Request, Response, Service, 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



59
60
61
62
63
64
65
66
67
68
69
# File 'lib/songkick/transport.rb', line 59

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



71
72
73
74
75
76
# File 'lib/songkick/transport.rb', line 71

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

.logger=(logger) ⇒ Object



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

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

.parser_for(content_type) ⇒ Object



47
48
49
50
51
52
53
# File 'lib/songkick/transport.rb', line 47

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

.register_default_parser(parser) ⇒ Object



43
44
45
# File 'lib/songkick/transport.rb', line 43

def self.register_default_parser(parser)
  @default_parser = parser
end

.register_parser(content_type, parser) ⇒ Object



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

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

.reportObject



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

def self.report
  Reporting.report
end

.sanitize(*params) ⇒ Object



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

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

.sanitized_paramsObject



98
99
100
# File 'lib/songkick/transport.rb', line 98

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

.verbose=(verbose) ⇒ Object



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

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

.verbose?Boolean

Returns:

  • (Boolean)


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

def self.verbose?
  @verbose
end