httpimagestore 0.0.4 → 0.0.5
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 +3 -1
- data/Gemfile.lock +15 -2
- data/VERSION +1 -1
- data/bin/httpimagestore +14 -9
- data/features/httpimagestore.feature +17 -17
- data/features/step_definitions/httpimagestore_steps.rb +2 -2
- data/httpimagestore.gemspec +11 -5
- data/lib/httpimagestore/configuration.rb +1 -12
- data/spec/configuration_spec.rb +0 -16
- metadata +54 -23
data/Gemfile
CHANGED
@@ -4,6 +4,7 @@ gem "sinatra", ">= 1.2.6"
|
|
4
4
|
gem "mongrel", ">= 1.1.5"
|
5
5
|
gem "s3", "~> 0.3"
|
6
6
|
gem "httpthumbnailer-client", "~> 0.0.3"
|
7
|
+
gem "cli", "~> 0.0"
|
7
8
|
|
8
9
|
# Add dependencies to develop your gem here.
|
9
10
|
# Include everything needed to run rake, tests, features, etc.
|
@@ -15,5 +16,6 @@ group :development do
|
|
15
16
|
gem "rcov", ">= 0"
|
16
17
|
gem "rdoc", "~> 3.9"
|
17
18
|
gem "daemon", "~> 1"
|
18
|
-
gem "httpthumbnailer", "~> 0.0.
|
19
|
+
gem "httpthumbnailer", "~> 0.0.8"
|
20
|
+
gem "prawn", "= 0.8.4"
|
19
21
|
end
|
data/Gemfile.lock
CHANGED
@@ -3,6 +3,7 @@ GEM
|
|
3
3
|
specs:
|
4
4
|
builder (3.0.0)
|
5
5
|
cgi_multipart_eof_fix (2.5.0)
|
6
|
+
cli (0.0.2)
|
6
7
|
cucumber (1.1.3)
|
7
8
|
builder (>= 2.1.2)
|
8
9
|
diff-lcs (>= 1.1.2)
|
@@ -13,13 +14,16 @@ GEM
|
|
13
14
|
daemons (1.1.4)
|
14
15
|
diff-lcs (1.1.3)
|
15
16
|
fastthread (1.0.7)
|
17
|
+
fcgi (0.8.8)
|
16
18
|
gem_plugin (0.2.3)
|
17
19
|
gherkin (2.6.8)
|
18
20
|
json (>= 1.4.6)
|
19
21
|
git (1.2.5)
|
20
22
|
haml (3.1.4)
|
21
23
|
httpclient (2.2.3)
|
22
|
-
httpthumbnailer (0.0.
|
24
|
+
httpthumbnailer (0.0.8)
|
25
|
+
cli (~> 0.0)
|
26
|
+
fcgi (~> 0.8)
|
23
27
|
haml (~> 3)
|
24
28
|
mongrel (>= 1.1.5)
|
25
29
|
rmagick (~> 2)
|
@@ -36,6 +40,13 @@ GEM
|
|
36
40
|
daemons (>= 1.0.3)
|
37
41
|
fastthread (>= 1.0.1)
|
38
42
|
gem_plugin (>= 0.2.3)
|
43
|
+
prawn (0.8.4)
|
44
|
+
prawn-core (>= 0.8.4, < 0.9)
|
45
|
+
prawn-layout (>= 0.8.4, < 0.9)
|
46
|
+
prawn-security (>= 0.8.4, < 0.9)
|
47
|
+
prawn-core (0.8.4)
|
48
|
+
prawn-layout (0.8.4)
|
49
|
+
prawn-security (0.8.4)
|
39
50
|
proxies (0.2.1)
|
40
51
|
rack (1.3.5)
|
41
52
|
rack-protection (1.1.4)
|
@@ -67,12 +78,14 @@ PLATFORMS
|
|
67
78
|
|
68
79
|
DEPENDENCIES
|
69
80
|
bundler (~> 1.0.0)
|
81
|
+
cli (~> 0.0)
|
70
82
|
cucumber
|
71
83
|
daemon (~> 1)
|
72
|
-
httpthumbnailer (~> 0.0.
|
84
|
+
httpthumbnailer (~> 0.0.8)
|
73
85
|
httpthumbnailer-client (~> 0.0.3)
|
74
86
|
jeweler (~> 1.6.4)
|
75
87
|
mongrel (>= 1.1.5)
|
88
|
+
prawn (= 0.8.4)
|
76
89
|
rcov
|
77
90
|
rdoc (~> 3.9)
|
78
91
|
rspec (~> 2.3.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
data/bin/httpimagestore
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
#!/usr/bin/ruby
|
2
2
|
|
3
|
+
require 'cli'
|
4
|
+
options = CLI.new do
|
5
|
+
description 'HTTP based image storage and thumbnailer'
|
6
|
+
option :bind, :short => :b, :default => 'localhost', :description => "HTTP server bind address"
|
7
|
+
option :port, :short => :p, :default => 3000, :cast => Integer, :description => "HTTP server TCP port"
|
8
|
+
option :server, :short => :s, :default => 'mongrel', :description => "Rack server handler like thin, mongrel, webrick, fastcgi etc."
|
9
|
+
argument :config, :cast => Pathname, :description => "Configuration file path"
|
10
|
+
end.parse!
|
11
|
+
|
3
12
|
require 'sinatra/base'
|
4
13
|
require 'pathname'
|
5
14
|
require 's3'
|
@@ -12,13 +21,14 @@ require 'httpimagestore/pathname'
|
|
12
21
|
|
13
22
|
sinatra = Sinatra.new
|
14
23
|
|
24
|
+
sinatra.set :port, options.port
|
25
|
+
sinatra.set :bind, options.bind
|
15
26
|
sinatra.set :environment, 'production'
|
16
|
-
sinatra.set :server,
|
27
|
+
sinatra.set :server, options.server
|
17
28
|
sinatra.set :lock, true
|
18
29
|
sinatra.set :logging, true
|
19
30
|
|
20
|
-
|
21
|
-
Configuration.from_file(conf_file).put(sinatra)
|
31
|
+
Configuration.from_file(options.config).put(sinatra)
|
22
32
|
|
23
33
|
class S3Put
|
24
34
|
def initialize(key_id, key_secret, bucket, options = {})
|
@@ -149,10 +159,5 @@ sinatra.error do
|
|
149
159
|
halt_exception(500, env['sinatra.error'])
|
150
160
|
end
|
151
161
|
|
152
|
-
|
153
|
-
sinatra.run!
|
154
|
-
rescue Errno::EACCES, Errno::EADDRNOTAVAIL, SocketError => e
|
155
|
-
puts "Error: failed to bind HTTP server socket (#{options[:bind]}): #{e}"
|
156
|
-
exit 5
|
157
|
-
end
|
162
|
+
sinatra.run!
|
158
163
|
|
@@ -1,7 +1,7 @@
|
|
1
|
-
Feature:
|
2
|
-
In order to store original image and
|
3
|
-
A user must PUT image data to URI representing
|
4
|
-
The
|
1
|
+
Feature: Storing of original image and specified classes of its thumbnails on S3
|
2
|
+
In order to store original image and its thumbnails in preconfigured S3 bucket
|
3
|
+
A user must PUT the image data to URI representing its path within the bucket
|
4
|
+
The response will be paths to files stored in S3
|
5
5
|
|
6
6
|
Background:
|
7
7
|
Given httpimagestore log is empty
|
@@ -19,7 +19,7 @@ Feature: Original image and it's thumnails generation and storing on S2
|
|
19
19
|
Given httpthumbnailer server is running at http://localhost:3100/
|
20
20
|
Given issthumbtest S3 bucket with key AKIAJMUYVYOSACNXLPTQ and secret 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
|
21
21
|
|
22
|
-
Scenario: Putting
|
22
|
+
Scenario: Putting original and its thumbnails to S3 bucket
|
23
23
|
Given there is no test/image/4006450256177f4a/test.jpg file in S3 bucket
|
24
24
|
And there is no test/image/4006450256177f4a/test-small.jpg file in S3 bucket
|
25
25
|
And there is no test/image/4006450256177f4a/test-tiny.jpg file in S3 bucket
|
@@ -27,7 +27,7 @@ Feature: Original image and it's thumnails generation and storing on S2
|
|
27
27
|
When I do PUT request http://localhost:3000/thumbnail/small,tiny/test/image/test.jpg
|
28
28
|
Then response status will be 200
|
29
29
|
And response content type will be text/uri-list
|
30
|
-
And response body will be CRLF
|
30
|
+
And response body will be CRLF ended lines
|
31
31
|
"""
|
32
32
|
http://issthumbtest.s3.amazonaws.com/test/image/4006450256177f4a/test.jpg
|
33
33
|
http://issthumbtest.s3.amazonaws.com/test/image/4006450256177f4a/test-small.jpg
|
@@ -37,16 +37,16 @@ Feature: Original image and it's thumnails generation and storing on S2
|
|
37
37
|
And http://issthumbtest.s3.amazonaws.com/test/image/4006450256177f4a/test-small.jpg will contain JPEG image of size 128x128
|
38
38
|
And http://issthumbtest.s3.amazonaws.com/test/image/4006450256177f4a/test-tiny.jpg will contain JPEG image of size 32x32
|
39
39
|
|
40
|
-
Scenario:
|
40
|
+
Scenario: Reporting of missing resource
|
41
41
|
When I do GET request http://localhost:3000/blah
|
42
42
|
Then response status will be 404
|
43
43
|
And response content type will be text/plain
|
44
|
-
And response body will be CRLF
|
44
|
+
And response body will be CRLF ended lines
|
45
45
|
"""
|
46
46
|
Resource '/blah' not found
|
47
47
|
"""
|
48
48
|
|
49
|
-
Scenario:
|
49
|
+
Scenario: Reporting of unsupported media type
|
50
50
|
Given there is no test/image/4006450256177f4a/test.jpg file in S3 bucket
|
51
51
|
And there is no test/image/4006450256177f4a/test-small.jpg file in S3 bucket
|
52
52
|
And there is no test/image/4006450256177f4a/test-tiny.jpg file in S3 bucket
|
@@ -54,7 +54,7 @@ Feature: Original image and it's thumnails generation and storing on S2
|
|
54
54
|
When I do PUT request http://localhost:3000/thumbnail/small,tiny/test/image/test.jpg
|
55
55
|
Then response status will be 415
|
56
56
|
And response content type will be text/plain
|
57
|
-
And response body will be CRLF
|
57
|
+
And response body will be CRLF ended lines like
|
58
58
|
"""
|
59
59
|
Error: HTTPThumbnailerClient::UnsupportedMediaTypeError:
|
60
60
|
"""
|
@@ -62,7 +62,7 @@ Feature: Original image and it's thumnails generation and storing on S2
|
|
62
62
|
And S3 bucket will not contain test/image/4006450256177f4a/test-small.jpg
|
63
63
|
And S3 bucket will not contain test/image/4006450256177f4a/test-tiny.jpg
|
64
64
|
|
65
|
-
Scenario:
|
65
|
+
Scenario: Reporting and handling of thumbnailing errors
|
66
66
|
Given there is no test/image/4006450256177f4a/test.jpg file in S3 bucket
|
67
67
|
And there is no test/image/4006450256177f4a/test-small.jpg file in S3 bucket
|
68
68
|
And there is no test/image/4006450256177f4a/test-tiny.jpg file in S3 bucket
|
@@ -70,7 +70,7 @@ Feature: Original image and it's thumnails generation and storing on S2
|
|
70
70
|
When I do PUT request http://localhost:3000/thumbnail/small,tiny,bad/test/image/test.jpg
|
71
71
|
Then response status will be 500
|
72
72
|
And response content type will be text/plain
|
73
|
-
And response body will be CRLF
|
73
|
+
And response body will be CRLF ended lines like
|
74
74
|
"""
|
75
75
|
Error: ThumbnailingError: Thumbnailing for class 'bad' failed: Error: ArgumentError:
|
76
76
|
"""
|
@@ -83,7 +83,7 @@ Feature: Original image and it's thumnails generation and storing on S2
|
|
83
83
|
When I do PUT request http://localhost:3000/thumbnail/small,bogous,bad/test/image/test.jpg
|
84
84
|
Then response status will be 404
|
85
85
|
And response content type will be text/plain
|
86
|
-
And response body will be CRLF
|
86
|
+
And response body will be CRLF ended lines like
|
87
87
|
"""
|
88
88
|
Error: Configuration::ThumbnailClassDoesNotExistError: Class 'bogous' does not exist
|
89
89
|
"""
|
@@ -93,17 +93,17 @@ Feature: Original image and it's thumnails generation and storing on S2
|
|
93
93
|
When I do PUT request http://localhost:3000/thumbnail/small/
|
94
94
|
Then response status will be 400
|
95
95
|
And response content type will be text/plain
|
96
|
-
And response body will be CRLF
|
96
|
+
And response body will be CRLF ended lines like
|
97
97
|
"""
|
98
98
|
Error: BadRequestError: Path is empty
|
99
99
|
"""
|
100
100
|
|
101
|
-
Scenario: Too large image - uploaded image too big to
|
101
|
+
Scenario: Too large image - uploaded image too big to fit in memory limit
|
102
102
|
Given test-large.jpg file content as request body
|
103
103
|
When I do PUT request http://localhost:3000/thumbnail/small/test/image/test.jpg
|
104
104
|
Then response status will be 413
|
105
105
|
And response content type will be text/plain
|
106
|
-
And response body will be CRLF
|
106
|
+
And response body will be CRLF ended lines like
|
107
107
|
"""
|
108
108
|
Error: HTTPThumbnailerClient::ImageTooLargeError:
|
109
109
|
"""
|
@@ -113,7 +113,7 @@ Feature: Original image and it's thumnails generation and storing on S2
|
|
113
113
|
When I do PUT request http://localhost:3000/thumbnail/superlarge/test/image/test.jpg
|
114
114
|
Then response status will be 413
|
115
115
|
And response content type will be text/plain
|
116
|
-
And response body will be CRLF
|
116
|
+
And response body will be CRLF ended lines like
|
117
117
|
"""
|
118
118
|
Error: ThumbnailingError: Thumbnailing for class 'superlarge' failed: Error: Thumbnailer::ImageTooLargeError:
|
119
119
|
"""
|
@@ -56,14 +56,14 @@ Then /response content type will be (.*)/ do |content_type|
|
|
56
56
|
@response.header['Content-Type'].first.should == content_type
|
57
57
|
end
|
58
58
|
|
59
|
-
Then /response body will be CRLF
|
59
|
+
Then /response body will be CRLF ended lines like/ do |body|
|
60
60
|
@response.body.should match(body)
|
61
61
|
@response.body.each do |line|
|
62
62
|
line[-2,2].should == "\r\n"
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
-
Then /response body will be CRLF
|
66
|
+
Then /response body will be CRLF ended lines$/ do |body|
|
67
67
|
@response.body.should == body.gsub("\n", "\r\n") + "\r\n"
|
68
68
|
end
|
69
69
|
|
data/httpimagestore.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "httpimagestore"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jakub Pastuszek"]
|
12
|
-
s.date = "2011-
|
12
|
+
s.date = "2011-12-01"
|
13
13
|
s.description = "Thumbnails images using httpthumbnailer and stored data on HTTP server (S3)"
|
14
14
|
s.email = "jpastuszek@gmail.com"
|
15
15
|
s.executables = ["httpimagestore"]
|
@@ -56,6 +56,7 @@ Gem::Specification.new do |s|
|
|
56
56
|
s.add_runtime_dependency(%q<mongrel>, [">= 1.1.5"])
|
57
57
|
s.add_runtime_dependency(%q<s3>, ["~> 0.3"])
|
58
58
|
s.add_runtime_dependency(%q<httpthumbnailer-client>, ["~> 0.0.3"])
|
59
|
+
s.add_runtime_dependency(%q<cli>, ["~> 0.0"])
|
59
60
|
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
60
61
|
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
61
62
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -63,12 +64,14 @@ Gem::Specification.new do |s|
|
|
63
64
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
64
65
|
s.add_development_dependency(%q<rdoc>, ["~> 3.9"])
|
65
66
|
s.add_development_dependency(%q<daemon>, ["~> 1"])
|
66
|
-
s.add_development_dependency(%q<httpthumbnailer>, ["~> 0.0.
|
67
|
+
s.add_development_dependency(%q<httpthumbnailer>, ["~> 0.0.8"])
|
68
|
+
s.add_development_dependency(%q<prawn>, ["= 0.8.4"])
|
67
69
|
else
|
68
70
|
s.add_dependency(%q<sinatra>, [">= 1.2.6"])
|
69
71
|
s.add_dependency(%q<mongrel>, [">= 1.1.5"])
|
70
72
|
s.add_dependency(%q<s3>, ["~> 0.3"])
|
71
73
|
s.add_dependency(%q<httpthumbnailer-client>, ["~> 0.0.3"])
|
74
|
+
s.add_dependency(%q<cli>, ["~> 0.0"])
|
72
75
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
73
76
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
74
77
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -76,13 +79,15 @@ Gem::Specification.new do |s|
|
|
76
79
|
s.add_dependency(%q<rcov>, [">= 0"])
|
77
80
|
s.add_dependency(%q<rdoc>, ["~> 3.9"])
|
78
81
|
s.add_dependency(%q<daemon>, ["~> 1"])
|
79
|
-
s.add_dependency(%q<httpthumbnailer>, ["~> 0.0.
|
82
|
+
s.add_dependency(%q<httpthumbnailer>, ["~> 0.0.8"])
|
83
|
+
s.add_dependency(%q<prawn>, ["= 0.8.4"])
|
80
84
|
end
|
81
85
|
else
|
82
86
|
s.add_dependency(%q<sinatra>, [">= 1.2.6"])
|
83
87
|
s.add_dependency(%q<mongrel>, [">= 1.1.5"])
|
84
88
|
s.add_dependency(%q<s3>, ["~> 0.3"])
|
85
89
|
s.add_dependency(%q<httpthumbnailer-client>, ["~> 0.0.3"])
|
90
|
+
s.add_dependency(%q<cli>, ["~> 0.0"])
|
86
91
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
87
92
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
88
93
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -90,7 +95,8 @@ Gem::Specification.new do |s|
|
|
90
95
|
s.add_dependency(%q<rcov>, [">= 0"])
|
91
96
|
s.add_dependency(%q<rdoc>, ["~> 3.9"])
|
92
97
|
s.add_dependency(%q<daemon>, ["~> 1"])
|
93
|
-
s.add_dependency(%q<httpthumbnailer>, ["~> 0.0.
|
98
|
+
s.add_dependency(%q<httpthumbnailer>, ["~> 0.0.8"])
|
99
|
+
s.add_dependency(%q<prawn>, ["= 0.8.4"])
|
94
100
|
end
|
95
101
|
end
|
96
102
|
|
@@ -15,9 +15,6 @@ class Configuration
|
|
15
15
|
|
16
16
|
@thumbnailer_url = "http://localhost:3100"
|
17
17
|
|
18
|
-
@port = 3000
|
19
|
-
@bind = 'localhost'
|
20
|
-
|
21
18
|
instance_eval &block
|
22
19
|
end
|
23
20
|
|
@@ -45,16 +42,8 @@ class Configuration
|
|
45
42
|
@thumbnailer_url = url
|
46
43
|
end
|
47
44
|
|
48
|
-
def port(no)
|
49
|
-
@port = no
|
50
|
-
end
|
51
|
-
|
52
|
-
def bind(address)
|
53
|
-
@bind = address
|
54
|
-
end
|
55
|
-
|
56
45
|
def get
|
57
|
-
Struct.new(:thumbnail_classes, :s3_key_id, :s3_key_secret, :s3_bucket, :thumbnailer_url
|
46
|
+
Struct.new(:thumbnail_classes, :s3_key_id, :s3_key_secret, :s3_bucket, :thumbnailer_url).new(@thumbnail_classes, @s3_key_id, @s3_key_secret, @s3_bucket, @thumbnailer_url)
|
58
47
|
end
|
59
48
|
|
60
49
|
def put(sinatra)
|
data/spec/configuration_spec.rb
CHANGED
@@ -65,22 +65,6 @@ describe Configuration do
|
|
65
65
|
c.thumbnailer_url.should == 'http://test'
|
66
66
|
end
|
67
67
|
|
68
|
-
it "should provide port and bind address and defaults" do
|
69
|
-
c = Configuration.new do
|
70
|
-
end.get
|
71
|
-
|
72
|
-
c.port.should == 3000
|
73
|
-
c.bind.should == 'localhost'
|
74
|
-
|
75
|
-
c = Configuration.new do
|
76
|
-
port 123
|
77
|
-
bind 'blah'
|
78
|
-
end.get
|
79
|
-
|
80
|
-
c.port.should == 123
|
81
|
-
c.bind.should == 'blah'
|
82
|
-
end
|
83
|
-
|
84
68
|
it "can set sinatra settings with configured keys" do
|
85
69
|
sinatra = Sinatra.new
|
86
70
|
c = Configuration.new do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httpimagestore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 5
|
10
|
+
version: 0.0.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jakub Pastuszek
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-12-01 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
type: :runtime
|
@@ -81,8 +81,23 @@ dependencies:
|
|
81
81
|
name: httpthumbnailer-client
|
82
82
|
version_requirements: *id004
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
type: :
|
84
|
+
type: :runtime
|
85
85
|
requirement: &id005 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ~>
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 11
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
- 0
|
94
|
+
version: "0.0"
|
95
|
+
prerelease: false
|
96
|
+
name: cli
|
97
|
+
version_requirements: *id005
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
type: :development
|
100
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
86
101
|
none: false
|
87
102
|
requirements:
|
88
103
|
- - ~>
|
@@ -95,10 +110,10 @@ dependencies:
|
|
95
110
|
version: 2.3.0
|
96
111
|
prerelease: false
|
97
112
|
name: rspec
|
98
|
-
version_requirements: *
|
113
|
+
version_requirements: *id006
|
99
114
|
- !ruby/object:Gem::Dependency
|
100
115
|
type: :development
|
101
|
-
requirement: &
|
116
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
102
117
|
none: false
|
103
118
|
requirements:
|
104
119
|
- - ">="
|
@@ -109,10 +124,10 @@ dependencies:
|
|
109
124
|
version: "0"
|
110
125
|
prerelease: false
|
111
126
|
name: cucumber
|
112
|
-
version_requirements: *
|
127
|
+
version_requirements: *id007
|
113
128
|
- !ruby/object:Gem::Dependency
|
114
129
|
type: :development
|
115
|
-
requirement: &
|
130
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
116
131
|
none: false
|
117
132
|
requirements:
|
118
133
|
- - ~>
|
@@ -125,10 +140,10 @@ dependencies:
|
|
125
140
|
version: 1.0.0
|
126
141
|
prerelease: false
|
127
142
|
name: bundler
|
128
|
-
version_requirements: *
|
143
|
+
version_requirements: *id008
|
129
144
|
- !ruby/object:Gem::Dependency
|
130
145
|
type: :development
|
131
|
-
requirement: &
|
146
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
132
147
|
none: false
|
133
148
|
requirements:
|
134
149
|
- - ~>
|
@@ -141,10 +156,10 @@ dependencies:
|
|
141
156
|
version: 1.6.4
|
142
157
|
prerelease: false
|
143
158
|
name: jeweler
|
144
|
-
version_requirements: *
|
159
|
+
version_requirements: *id009
|
145
160
|
- !ruby/object:Gem::Dependency
|
146
161
|
type: :development
|
147
|
-
requirement: &
|
162
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
148
163
|
none: false
|
149
164
|
requirements:
|
150
165
|
- - ">="
|
@@ -155,10 +170,10 @@ dependencies:
|
|
155
170
|
version: "0"
|
156
171
|
prerelease: false
|
157
172
|
name: rcov
|
158
|
-
version_requirements: *
|
173
|
+
version_requirements: *id010
|
159
174
|
- !ruby/object:Gem::Dependency
|
160
175
|
type: :development
|
161
|
-
requirement: &
|
176
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
162
177
|
none: false
|
163
178
|
requirements:
|
164
179
|
- - ~>
|
@@ -170,10 +185,10 @@ dependencies:
|
|
170
185
|
version: "3.9"
|
171
186
|
prerelease: false
|
172
187
|
name: rdoc
|
173
|
-
version_requirements: *
|
188
|
+
version_requirements: *id011
|
174
189
|
- !ruby/object:Gem::Dependency
|
175
190
|
type: :development
|
176
|
-
requirement: &
|
191
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
177
192
|
none: false
|
178
193
|
requirements:
|
179
194
|
- - ~>
|
@@ -184,23 +199,39 @@ dependencies:
|
|
184
199
|
version: "1"
|
185
200
|
prerelease: false
|
186
201
|
name: daemon
|
187
|
-
version_requirements: *
|
202
|
+
version_requirements: *id012
|
188
203
|
- !ruby/object:Gem::Dependency
|
189
204
|
type: :development
|
190
|
-
requirement: &
|
205
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
191
206
|
none: false
|
192
207
|
requirements:
|
193
208
|
- - ~>
|
194
209
|
- !ruby/object:Gem::Version
|
195
|
-
hash:
|
210
|
+
hash: 15
|
196
211
|
segments:
|
197
212
|
- 0
|
198
213
|
- 0
|
199
|
-
-
|
200
|
-
version: 0.0.
|
214
|
+
- 8
|
215
|
+
version: 0.0.8
|
201
216
|
prerelease: false
|
202
217
|
name: httpthumbnailer
|
203
|
-
version_requirements: *
|
218
|
+
version_requirements: *id013
|
219
|
+
- !ruby/object:Gem::Dependency
|
220
|
+
type: :development
|
221
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
222
|
+
none: false
|
223
|
+
requirements:
|
224
|
+
- - "="
|
225
|
+
- !ruby/object:Gem::Version
|
226
|
+
hash: 55
|
227
|
+
segments:
|
228
|
+
- 0
|
229
|
+
- 8
|
230
|
+
- 4
|
231
|
+
version: 0.8.4
|
232
|
+
prerelease: false
|
233
|
+
name: prawn
|
234
|
+
version_requirements: *id014
|
204
235
|
description: Thumbnails images using httpthumbnailer and stored data on HTTP server (S3)
|
205
236
|
email: jpastuszek@gmail.com
|
206
237
|
executables:
|