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 +1 -1
- data/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/fotolia_rest.gemspec +66 -0
- data/lib/fotolia_rest/client.rb +6 -1
- data/spec/fotolia_rest_spec.rb +21 -0
- data/spec/spec_helper.rb +17 -1
- metadata +15 -14
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0.
|
|
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
|
+
|
data/lib/fotolia_rest/client.rb
CHANGED
|
@@ -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)
|
data/spec/fotolia_rest_spec.rb
CHANGED
|
@@ -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.
|
|
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-
|
|
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: &
|
|
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: *
|
|
24
|
+
version_requirements: *70111545790880
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: rspec
|
|
27
|
-
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: *
|
|
35
|
+
version_requirements: *70111545790260
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: bundler
|
|
38
|
-
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: *
|
|
46
|
+
version_requirements: *70111545789680
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: jeweler
|
|
49
|
-
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: *
|
|
57
|
+
version_requirements: *70111545789120
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: rcov
|
|
60
|
-
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: *
|
|
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:
|
|
107
|
+
hash: -2249850876015974525
|
|
107
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
109
|
none: false
|
|
109
110
|
requirements:
|