fotolia_rest 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: