animoto 0.0.0.alpha4 → 0.0.0.alpha5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  require 'yaml'
2
2
  require 'uri'
3
+ require 'logger'
3
4
 
4
5
  require 'animoto/errors'
5
6
  require 'animoto/content_type'
@@ -32,7 +33,7 @@ module Animoto
32
33
  API_VERSION = 1
33
34
  BASE_CONTENT_TYPE = "application/vnd.animoto"
34
35
 
35
- attr_accessor :key, :secret, :endpoint
36
+ attr_accessor :key, :secret, :endpoint, :logger
36
37
  attr_reader :http_engine, :response_parser
37
38
 
38
39
  # Creates a new Client object which handles credentials, versioning, making requests, and
@@ -49,9 +50,10 @@ module Animoto
49
50
  # @raise [ArgumentError] if no credentials are supplied
50
51
  def initialize *args
51
52
  options = args.last.is_a?(Hash) ? args.pop : {}
52
- @key = args[0]
53
- @secret = args[1]
53
+ @key = args[0]
54
+ @secret = args[1]
54
55
  @endpoint = options[:endpoint]
56
+ @logger = options[:logger] || ::Logger.new(STDOUT)
55
57
  configure_from_rc_file
56
58
  @endpoint ||= API_ENDPOINT
57
59
  __send__ :http_engine=, options[:http_engine] || :net_http
@@ -221,17 +223,23 @@ module Animoto
221
223
  def request method, url, body, headers = {}, options = {}
222
224
  error = catch(:fail) do
223
225
  options = { :username => @key, :password => @secret }.merge(options)
226
+ @logger.info "Sending request to #{url.inspect} with body #{body.inspect}"
224
227
  response = http_engine.request(method, url, body, headers, options)
228
+ @logger.info "Received response #{response.inspect}"
225
229
  return response_parser.parse(response)
226
230
  end
227
231
  if error
228
232
  errors = response_parser.parse(error)['response']['status']['errors']
229
- raise Animoto::Error.new(errors.collect { |e| e['message'] }.join(', '))
233
+ err_string = errors.collect { |e| e['message'] }.join(', ')
234
+ @logger.error "Error response from server: #{err_string}"
235
+ raise Animoto::Error.new(err_string)
230
236
  else
237
+ @logger.error "Error sending request to #{url.inspect}"
231
238
  raise Animoto::Error
232
239
  end
233
240
  rescue NoMethodError => e
234
- raise Animoto::Error.new("Invalid response (#{error.inspect})")
241
+ @logger.error e.inspect
242
+ raise Animoto::Error.new("Invalid response (#{e.inspect})")
235
243
  end
236
244
 
237
245
  # Creates the full content type string given a Resource class or instance
data/lib/animoto.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Animoto
2
2
  def self.version
3
- "0.0.0.alpha4"
3
+ "0.0.0.alpha5"
4
4
  end
5
5
  end
@@ -3,7 +3,7 @@ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
3
3
 
4
4
  describe Animoto::Client do
5
5
  def client options = {}
6
- @client ||= Animoto::Client.new "joe", "secret", options
6
+ @client ||= Animoto::Client.new "joe", "secret", options.merge(:logger => ::Logger.new('/dev/null'))
7
7
  end
8
8
 
9
9
  def object
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: animoto
3
3
  version: !ruby/object:Gem::Version
4
- hash: -1710980402
4
+ hash: -1710980401
5
5
  prerelease: true
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
9
  - 0
10
- - alpha4
11
- version: 0.0.0.alpha4
10
+ - alpha5
11
+ version: 0.0.0.alpha5
12
12
  platform: ruby
13
13
  authors:
14
14
  - Animoto
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-09-08 00:00:00 -04:00
19
+ date: 2010-09-09 00:00:00 -04:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency