httpimagestore 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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.7"
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.7)
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.7)
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.4
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, ['mongrel']
27
+ sinatra.set :server, options.server
17
28
  sinatra.set :lock, true
18
29
  sinatra.set :logging, true
19
30
 
20
- conf_file = ARGV[0] or fail "no configuration file given (ARGV[0])"
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
- begin
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: Original image and it's thumnails generation and storing on S2
2
- In order to store original image and it's thumbnails in configured S3 buckte
3
- A user must PUT image data to URI representing it's pathi with bucket
4
- The respons will be paths to files storred in S3
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 thumbnails and original to S3 bucket
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 endend lines
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: Reporitng of missing resource
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 endend lines
44
+ And response body will be CRLF ended lines
45
45
  """
46
46
  Resource '/blah' not found
47
47
  """
48
48
 
49
- Scenario: Reporitng of unsupported media type
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 endend lines like
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: Reporitng and handling of thumbnailing errors
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 endend lines like
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 endend lines like
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 endend lines like
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 load
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 endend lines like
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 endend lines like
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 endend lines like/ do |body|
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 endend lines$/ do |body|
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
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "httpimagestore"
8
- s.version = "0.0.4"
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-11-30"
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.7"])
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.7"])
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.7"])
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, :port, :bind).new(@thumbnail_classes, @s3_key_id, @s3_key_secret, @s3_bucket, @thumbnailer_url, @port, @bind)
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)
@@ -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: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
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-11-30 00:00:00 Z
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: :development
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: *id005
113
+ version_requirements: *id006
99
114
  - !ruby/object:Gem::Dependency
100
115
  type: :development
101
- requirement: &id006 !ruby/object:Gem::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: *id006
127
+ version_requirements: *id007
113
128
  - !ruby/object:Gem::Dependency
114
129
  type: :development
115
- requirement: &id007 !ruby/object:Gem::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: *id007
143
+ version_requirements: *id008
129
144
  - !ruby/object:Gem::Dependency
130
145
  type: :development
131
- requirement: &id008 !ruby/object:Gem::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: *id008
159
+ version_requirements: *id009
145
160
  - !ruby/object:Gem::Dependency
146
161
  type: :development
147
- requirement: &id009 !ruby/object:Gem::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: *id009
173
+ version_requirements: *id010
159
174
  - !ruby/object:Gem::Dependency
160
175
  type: :development
161
- requirement: &id010 !ruby/object:Gem::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: *id010
188
+ version_requirements: *id011
174
189
  - !ruby/object:Gem::Dependency
175
190
  type: :development
176
- requirement: &id011 !ruby/object:Gem::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: *id011
202
+ version_requirements: *id012
188
203
  - !ruby/object:Gem::Dependency
189
204
  type: :development
190
- requirement: &id012 !ruby/object:Gem::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: 17
210
+ hash: 15
196
211
  segments:
197
212
  - 0
198
213
  - 0
199
- - 7
200
- version: 0.0.7
214
+ - 8
215
+ version: 0.0.8
201
216
  prerelease: false
202
217
  name: httpthumbnailer
203
- version_requirements: *id012
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: