fotolia_rest 0.0.1 → 0.0.2

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.
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ source "http://rubygems.org"
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
9
  gem "rspec", "~> 2.7.0"
10
- gem "bundler", "~> 1.0.0"
10
+ gem "bundler", ">= 1.0.0"
11
11
  gem "jeweler", "~> 1.6.4"
12
12
  gem "rcov", ">= 0"
13
13
  end
data/Gemfile.lock CHANGED
@@ -23,7 +23,7 @@ PLATFORMS
23
23
  ruby
24
24
 
25
25
  DEPENDENCIES
26
- bundler (~> 1.0.0)
26
+ bundler (>= 1.0.0)
27
27
  jeweler (~> 1.6.4)
28
28
  json
29
29
  rcov
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -0,0 +1,66 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "fotolia_rest"
8
+ s.version = "0.0.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Tony La"]
12
+ s.date = "2012-02-10"
13
+ s.description = "Wrapper library for the Fotolia API"
14
+ s.email = "tonyla@pingg.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE.txt",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "fotolia_rest.gemspec",
29
+ "lib/fotolia_rest.rb",
30
+ "lib/fotolia_rest/client.rb",
31
+ "lib/fotolia_rest/exceptions.rb",
32
+ "lib/fotolia_rest/result.rb",
33
+ "spec/fotolia_rest_spec.rb",
34
+ "spec/spec_helper.rb"
35
+ ]
36
+ s.homepage = "http://github.com/tonyla/fotolia_rest"
37
+ s.licenses = ["MIT"]
38
+ s.require_paths = ["lib"]
39
+ s.rubygems_version = "1.8.11"
40
+ s.summary = "Fotolia REST client"
41
+
42
+ if s.respond_to? :specification_version then
43
+ s.specification_version = 3
44
+
45
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
+ s.add_runtime_dependency(%q<json>, [">= 0"])
47
+ s.add_development_dependency(%q<rspec>, ["~> 2.7.0"])
48
+ s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
49
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
50
+ s.add_development_dependency(%q<rcov>, [">= 0"])
51
+ else
52
+ s.add_dependency(%q<json>, [">= 0"])
53
+ s.add_dependency(%q<rspec>, ["~> 2.7.0"])
54
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
55
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
56
+ s.add_dependency(%q<rcov>, [">= 0"])
57
+ end
58
+ else
59
+ s.add_dependency(%q<json>, [">= 0"])
60
+ s.add_dependency(%q<rspec>, ["~> 2.7.0"])
61
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
62
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
63
+ s.add_dependency(%q<rcov>, [">= 0"])
64
+ end
65
+ end
66
+
@@ -4,9 +4,9 @@ require 'cgi'
4
4
  require 'json'
5
5
  module FotoliaRest
6
6
  class Client
7
-
8
7
  BASE_URL = 'api.fotolia.com'
9
8
  attr_reader :api_key, :username, :password, :session_id
9
+
10
10
  def initialize(api_key, username, password)
11
11
  @api_key = api_key
12
12
  @username = username
@@ -35,6 +35,7 @@ module FotoliaRest
35
35
  begin
36
36
  uri = URI.parse(compose_uri(method, function))
37
37
  http = Net::HTTP.new(uri.host, uri.port)
38
+ http.open_timeout = http.read_timeout = 5 # seconds
38
39
  if http_method == :get
39
40
  uri.query = URI.encode_www_form(fotolia_parameters(args))
40
41
  request = Net::HTTP::Get.new(uri.request_uri)
@@ -59,6 +60,10 @@ module FotoliaRest
59
60
  end
60
61
  end
61
62
 
63
+ def download_media(url)
64
+ open(url, 'rb', :http_basic_authentication => [ @api_key, @session_id ])
65
+ end
66
+
62
67
  protected
63
68
 
64
69
  def fotolia_parameters(args)
@@ -34,6 +34,13 @@ describe "FotoliaRest" do
34
34
  result.response.should_not be_nil
35
35
  puts result.response
36
36
  end
37
+
38
+ it "should error on invalid calls" do
39
+ result = @client.execute( 'asdf', '1234' )
40
+ result.success?.should be_false
41
+ result.response.should_not be_nil
42
+ result.error.should be_kind_of(FotoliaRest::FotoliaApiError)
43
+ end
37
44
  end
38
45
 
39
46
  describe "invalid credentials" do
@@ -49,5 +56,19 @@ describe "FotoliaRest" do
49
56
  result.error.message.should_not be_nil
50
57
  end
51
58
  end
59
+
60
+ describe "timeout" do
61
+ before( :each ) do
62
+ @client = FotoliaRest::Client.new('','','')
63
+ end
64
+
65
+ it "should result in a timeout exception" do
66
+ using_constants( FotoliaRest::Client, :BASE_URL => 'nowhere.nowhere.nowhere' ) do
67
+ expect {
68
+ @client.execute('anything', 'at', :all => true)
69
+ }.to raise_error(FotoliaRest::FotoliaError)
70
+ end
71
+ end
72
+ end
52
73
  end
53
74
  end
data/spec/spec_helper.rb CHANGED
@@ -7,6 +7,22 @@ require 'fotolia_rest'
7
7
  # in ./support/ and its subdirectories.
8
8
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
9
 
10
+ def using_constants(klass, new_constants)
11
+ old_constants = {}
12
+ begin
13
+ new_constants.each_pair do |name, value|
14
+ old_constants[name] = klass.__send__(:remove_const, name)
15
+ klass.const_set(name, value)
16
+ end
17
+
18
+ yield
19
+ ensure
20
+ old_constants.each_pair do |name, value|
21
+ klass.__send__(:remove_const, name)
22
+ klass.const_set(name, value)
23
+ end
24
+ end
25
+ end
26
+
10
27
  RSpec.configure do |config|
11
-
12
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fotolia_rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-09 00:00:00.000000000 Z
12
+ date: 2012-02-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
16
- requirement: &70285131528760 !ruby/object:Gem::Requirement
16
+ requirement: &70111545790880 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70285131528760
24
+ version_requirements: *70111545790880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70285131527920 !ruby/object:Gem::Requirement
27
+ requirement: &70111545790260 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,21 +32,21 @@ dependencies:
32
32
  version: 2.7.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70285131527920
35
+ version_requirements: *70111545790260
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &70285131545940 !ruby/object:Gem::Requirement
38
+ requirement: &70111545789680 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
- - - ~>
41
+ - - ! '>='
42
42
  - !ruby/object:Gem::Version
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70285131545940
46
+ version_requirements: *70111545789680
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &70285131543620 !ruby/object:Gem::Requirement
49
+ requirement: &70111545789120 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.6.4
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70285131543620
57
+ version_requirements: *70111545789120
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rcov
60
- requirement: &70285131540980 !ruby/object:Gem::Requirement
60
+ requirement: &70111545788540 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70285131540980
68
+ version_requirements: *70111545788540
69
69
  description: Wrapper library for the Fotolia API
70
70
  email: tonyla@pingg.com
71
71
  executables: []
@@ -82,6 +82,7 @@ files:
82
82
  - README.rdoc
83
83
  - Rakefile
84
84
  - VERSION
85
+ - fotolia_rest.gemspec
85
86
  - lib/fotolia_rest.rb
86
87
  - lib/fotolia_rest/client.rb
87
88
  - lib/fotolia_rest/exceptions.rb
@@ -103,7 +104,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
104
  version: '0'
104
105
  segments:
105
106
  - 0
106
- hash: 1765157675272554145
107
+ hash: -2249850876015974525
107
108
  required_rubygems_version: !ruby/object:Gem::Requirement
108
109
  none: false
109
110
  requirements: