stilts 0.0.3 → 0.0.4
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/lib/stilts.rb +7 -1
- data/lib/stilts/batch.rb +39 -0
- data/lib/stilts/configuration.rb +17 -3
- data/lib/stilts/image.rb +20 -11
- data/lib/stilts/rails/helpers.rb +17 -20
- data/lib/stilts/rails/hooks.rb +7 -7
- data/lib/stilts/receiver.rb +20 -0
- data/lib/stilts/sender.rb +11 -54
- data/lib/stilts/version.rb +1 -1
- data/spec/batch_spec.rb +54 -0
- data/spec/helpers_spec.rb +2 -1
- data/spec/hooks_spec.rb +0 -13
- data/spec/image_spec.rb +22 -5
- data/spec/receiver_spec.rb +1 -0
- data/spec/spec_helper.rb +11 -3
- data/stilts.gemspec +1 -0
- metadata +21 -3
data/lib/stilts.rb
CHANGED
@@ -2,6 +2,7 @@ module Stilts
|
|
2
2
|
require 'net/http'
|
3
3
|
require 'net/https'
|
4
4
|
require 'addressable/uri'
|
5
|
+
require 'json'
|
5
6
|
# begin
|
6
7
|
# require 'active_support'
|
7
8
|
# rescue LoadError
|
@@ -10,8 +11,10 @@ module Stilts
|
|
10
11
|
|
11
12
|
require 'stilts/configuration'
|
12
13
|
require 'stilts/sender'
|
14
|
+
require 'stilts/receiver'
|
13
15
|
require 'stilts/rack'
|
14
16
|
require 'stilts/image'
|
17
|
+
require 'stilts/batch'
|
15
18
|
require 'stilts/railtie' if defined?(Rails)
|
16
19
|
|
17
20
|
LOG_PREFIX = "[Stilts] "
|
@@ -19,17 +22,20 @@ module Stilts
|
|
19
22
|
class << self
|
20
23
|
|
21
24
|
# The sender object is responsible for delivering formatted data to the server.
|
22
|
-
# Must respond to #send_to_hoptoad. See Stilts::Sender.
|
23
25
|
attr_accessor :sender
|
24
26
|
|
25
27
|
# A configuration object. Must act like a hash and return sensible
|
26
28
|
# values for all configuration options. See Stilts::Configuration.
|
27
29
|
attr_accessor :configuration
|
28
30
|
|
31
|
+
# A receiver of requests
|
32
|
+
attr_accessor :receiver
|
33
|
+
|
29
34
|
def configure(silent = false)
|
30
35
|
self.configuration ||= Configuration.new
|
31
36
|
yield(configuration)
|
32
37
|
self.sender = Sender.new(configuration)
|
38
|
+
self.receiver = Receiver.new(configuration)
|
33
39
|
end
|
34
40
|
|
35
41
|
def logger
|
data/lib/stilts/batch.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
module Stilts
|
2
|
+
class Batch
|
3
|
+
|
4
|
+
attr_accessor :images
|
5
|
+
|
6
|
+
# Batch is just an array of images
|
7
|
+
def initialize
|
8
|
+
self.images = []
|
9
|
+
end
|
10
|
+
|
11
|
+
# Send images to Stilts for transformation, first +screen+ and translate +to_json+
|
12
|
+
def deliver
|
13
|
+
Stilts.sender.send_image_transform_data(self.to_json)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Ready images for transport across voidy vastness of teh interweb
|
17
|
+
def to_json
|
18
|
+
JSON.generate(self.images.collect{|i| i.to_hash})
|
19
|
+
end
|
20
|
+
|
21
|
+
# :nodoc:
|
22
|
+
def << image
|
23
|
+
self.images << image
|
24
|
+
end
|
25
|
+
|
26
|
+
# :nodoc:
|
27
|
+
def size
|
28
|
+
self.images.size
|
29
|
+
end
|
30
|
+
alias_method :length, :size
|
31
|
+
|
32
|
+
# :nodoc:
|
33
|
+
def empty?
|
34
|
+
return true if self.size == 0
|
35
|
+
false
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
data/lib/stilts/configuration.rb
CHANGED
@@ -3,13 +3,16 @@ module Stilts
|
|
3
3
|
class Configuration
|
4
4
|
|
5
5
|
OPTIONS = [:api_key, :host, :http_open_timeout, :http_read_timeout, :project_root,
|
6
|
-
:port, :protocol, :
|
6
|
+
:port, :protocol, :secure, :framework].freeze
|
7
7
|
|
8
8
|
# The API key for your project, found on the project edit form.
|
9
9
|
attr_accessor :api_key
|
10
10
|
|
11
11
|
# The host to connect to
|
12
12
|
attr_accessor :host
|
13
|
+
|
14
|
+
# The CDN host to connect to
|
15
|
+
attr_accessor :cdn_host
|
13
16
|
|
14
17
|
# The port on which your server runs (defaults to 443 for secure
|
15
18
|
# connections, 80 for insecure connections).
|
@@ -21,20 +24,31 @@ module Stilts
|
|
21
24
|
# The path to the project in which the error occurred, such as the RAILS_ROOT
|
22
25
|
attr_accessor :project_root
|
23
26
|
|
24
|
-
|
25
27
|
# The logger used by
|
26
28
|
attr_accessor :logger
|
27
29
|
|
28
30
|
# The framework is configured to use
|
29
31
|
attr_accessor :framework
|
32
|
+
|
33
|
+
# The HTTP open timeout in seconds (defaults to 2).
|
34
|
+
attr_accessor :http_open_timeout
|
35
|
+
|
36
|
+
# The HTTP read timeout in seconds (defaults to 5).
|
37
|
+
attr_accessor :http_read_timeout
|
30
38
|
|
31
39
|
alias_method :secure?, :secure
|
32
40
|
|
33
41
|
def initialize
|
34
42
|
@secure = false
|
35
|
-
@host = '
|
43
|
+
# @host = 'stilts.developmentnow.com'
|
44
|
+
# @port = 80
|
45
|
+
@host = "localhost"
|
46
|
+
@port = 3000
|
47
|
+
@cdn_host = 'd15ceu2kbcb932.cloudfront.net'
|
36
48
|
@framework = 'Standalone'
|
37
49
|
@protocol = protocol
|
50
|
+
@http_open_timeout = 2
|
51
|
+
@http_read_timeout = 10
|
38
52
|
end
|
39
53
|
|
40
54
|
# Allows config options to be read like a hash
|
data/lib/stilts/image.rb
CHANGED
@@ -12,17 +12,17 @@ module Stilts
|
|
12
12
|
]
|
13
13
|
|
14
14
|
# The public location of the image
|
15
|
-
attr_accessor :
|
15
|
+
attr_accessor :source, :device_width_ratio
|
16
16
|
|
17
17
|
# :nodoc:
|
18
|
-
def initialize(
|
19
|
-
self.
|
20
|
-
self.device_width_ratio =
|
18
|
+
def initialize(source, options)
|
19
|
+
self.source = source
|
20
|
+
self.device_width_ratio = options[:device_width_ratio] || 1
|
21
21
|
end
|
22
22
|
|
23
23
|
# Generates a SHA1 represenation for a particular URL
|
24
24
|
def url_id
|
25
|
-
Digest::SHA1.hexdigest(self.
|
25
|
+
Digest::SHA1.hexdigest(self.source)
|
26
26
|
end
|
27
27
|
|
28
28
|
# Combines resizing parameters into a short, unique slug to be appended to the final image name
|
@@ -38,18 +38,27 @@ module Stilts
|
|
38
38
|
end
|
39
39
|
|
40
40
|
# Location on server that will server this image
|
41
|
-
def
|
41
|
+
def cdn_url
|
42
42
|
Stilts.configuration.protocol + "://" +
|
43
|
-
Stilts.configuration.
|
44
|
-
"/
|
45
|
-
Stilts.configuration.api_key +
|
46
|
-
|
43
|
+
Stilts.configuration.cdn_host +
|
44
|
+
"/images/" +
|
45
|
+
Stilts.configuration.api_key + "/" +
|
46
|
+
self.name
|
47
|
+
end
|
48
|
+
|
49
|
+
def deliver
|
50
|
+
Stilts.sender.send_image_transform_data("[#{self.to_json}]")
|
51
|
+
end
|
52
|
+
|
53
|
+
# Ready images for transport across voidy vastness of teh interweb
|
54
|
+
def to_json
|
55
|
+
JSON.generate(self.to_hash)
|
47
56
|
end
|
48
57
|
|
49
58
|
# A hash representation of the image attributes
|
50
59
|
def to_hash
|
51
60
|
{
|
52
|
-
:
|
61
|
+
:source => self.source,
|
53
62
|
:name => self.name,
|
54
63
|
}
|
55
64
|
end
|
data/lib/stilts/rails/helpers.rb
CHANGED
@@ -2,28 +2,25 @@ module Stilts
|
|
2
2
|
module Helpers
|
3
3
|
include ActionView::Helpers
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
# Take image transform parameters and generate an image tag and stick it into the batch
|
6
|
+
def transform_image(source, transform_options = {}, image_options = {})
|
7
|
+
image = Stilts::Image.new(source, transform_options).deliver
|
8
|
+
# @image_batch << image
|
9
|
+
image_tag(image["url"], image_options)
|
9
10
|
end
|
10
11
|
|
11
|
-
def stream_resize(image_source)
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
def url
|
25
|
-
Stilts.configuration.url.dup
|
26
|
-
end
|
12
|
+
# def stream_resize(image_source)
|
13
|
+
# b = Benchmark.measure do
|
14
|
+
# @params = Addressable::URI.parse(url.to_s) # TODO get URI.parse out of Addressable to remove the dependency
|
15
|
+
# @params.query_values = {:image_source => image_source, :stream => "1"}
|
16
|
+
# end
|
17
|
+
# # logger.debug { "STREAM BENCHMARK :: #{b}" }
|
18
|
+
#
|
19
|
+
# stream_url = url
|
20
|
+
# stream_url.path = "/resize"
|
21
|
+
# stream_url.query = @params.query
|
22
|
+
# stream_url.to_s
|
23
|
+
# end
|
27
24
|
|
28
25
|
def logger
|
29
26
|
Stilts.configuration.logger
|
data/lib/stilts/rails/hooks.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
module Stilts
|
2
2
|
module Hooks
|
3
|
-
|
3
|
+
|
4
4
|
def self.included(base)
|
5
|
-
base.before_filter :
|
6
|
-
base.
|
5
|
+
base.before_filter :image_batch
|
6
|
+
base.append_before_filter :deliver_batch
|
7
7
|
end
|
8
8
|
|
9
|
-
def
|
10
|
-
@
|
9
|
+
def image_batch
|
10
|
+
@image_batch = Stilts::Batch.new
|
11
11
|
end
|
12
|
-
def
|
13
|
-
@
|
12
|
+
def deliver_batch
|
13
|
+
@image_batch.deliver unless @image_batch.empty?
|
14
14
|
end
|
15
15
|
|
16
16
|
end
|
data/lib/stilts/receiver.rb
CHANGED
@@ -1,9 +1,29 @@
|
|
1
1
|
module Stilts
|
2
2
|
class Receiver
|
3
|
+
|
4
|
+
def initialize(options = {})
|
5
|
+
end
|
3
6
|
|
7
|
+
def receive(response)
|
8
|
+
case response
|
9
|
+
when Net::HTTPSuccess then
|
10
|
+
log :info, "Success: #{response.class}", response
|
11
|
+
|
12
|
+
return JSON.parse(response.body)
|
13
|
+
else
|
14
|
+
log :error, "Failure: #{response.class}", response
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
4
18
|
def logger
|
5
19
|
Stilts.configuration.logger
|
6
20
|
end
|
7
21
|
|
22
|
+
def log(level, message, response = nil)
|
23
|
+
logger.send level, LOG_PREFIX + message if logger
|
24
|
+
Stilts.report_environment_info
|
25
|
+
Stilts.report_response_body(response.body) if response && response.respond_to?(:body)
|
26
|
+
end
|
27
|
+
|
8
28
|
end
|
9
29
|
end
|
data/lib/stilts/sender.rb
CHANGED
@@ -1,16 +1,10 @@
|
|
1
1
|
module Stilts
|
2
2
|
class Sender
|
3
|
-
|
4
|
-
|
5
|
-
'
|
6
|
-
'Accept' => 'application/json'
|
3
|
+
TRANSFORM_HEADERS = {
|
4
|
+
'Content-Type' => 'application/json',
|
5
|
+
'Accept' => 'application/json'
|
7
6
|
}
|
8
7
|
|
9
|
-
STREAMER_PATH = "/resize"
|
10
|
-
STREAMER_HEADERS = {
|
11
|
-
'Content-Type' => 'image/jpeg',
|
12
|
-
'Accept' => 'image/jpeg'
|
13
|
-
}
|
14
8
|
HTTP_ERRORS = [Timeout::Error,
|
15
9
|
Errno::EINVAL,
|
16
10
|
Errno::ECONNRESET,
|
@@ -23,64 +17,27 @@ module Stilts
|
|
23
17
|
attr_accessor :user_agent
|
24
18
|
|
25
19
|
def initialize(options = {})
|
26
|
-
[:protocol, :host, :port, :secure].each do |option|
|
20
|
+
[:protocol, :host, :port, :secure, :http_open_timeout, :http_read_timeout].each do |option|
|
27
21
|
instance_variable_set("@#{option}", options[option])
|
28
22
|
end
|
29
|
-
# , :http_open_timeout, :http_read_timeout
|
30
|
-
end
|
31
|
-
|
32
|
-
def send_to_resizer(data)
|
33
|
-
http =
|
34
|
-
Net::HTTP.new(url.host, url.port)
|
35
|
-
|
36
|
-
http.read_timeout = 5
|
37
|
-
http.open_timeout = 5
|
38
|
-
http.use_ssl = false
|
39
|
-
headers = RESIZER_HEADERS.merge({'User-Agent' => user_agent})
|
40
|
-
|
41
|
-
response = begin
|
42
|
-
logger.debug{"POSTED JSON: #{data} TO: #{url.to_s}" }
|
43
|
-
http.post(RESIZER_PATH, data, headers)
|
44
|
-
rescue *HTTP_ERRORS => e
|
45
|
-
log :error, "Timeout while contacting the server. #{e}"
|
46
|
-
nil
|
47
|
-
end
|
48
|
-
|
49
|
-
case response
|
50
|
-
when Net::HTTPSuccess then
|
51
|
-
log :info, "Success: #{response.class}", response
|
52
|
-
return JSON.parse(response.body)
|
53
|
-
else
|
54
|
-
log :error, "Failure: #{response.class}", response
|
55
|
-
end
|
56
23
|
end
|
57
24
|
|
58
|
-
def
|
59
|
-
http
|
60
|
-
Net::HTTP.new(url.host, url.port)
|
25
|
+
def send_image_transform_data(data)
|
26
|
+
http = Net::HTTP.new(@host, @port)
|
61
27
|
|
62
|
-
http.read_timeout =
|
63
|
-
http.open_timeout =
|
28
|
+
http.read_timeout = @http_read_timeout
|
29
|
+
http.open_timeout = @http_open_timeout
|
64
30
|
http.use_ssl = false
|
31
|
+
headers = TRANSFORM_HEADERS.merge({'User-Agent' => user_agent})
|
65
32
|
|
66
33
|
response = begin
|
67
|
-
http.
|
34
|
+
http.post("/transform/#{Stilts.configuration.api_key}", data, headers)
|
68
35
|
rescue *HTTP_ERRORS => e
|
69
36
|
log :error, "Timeout while contacting the server. #{e}"
|
70
37
|
nil
|
71
38
|
end
|
72
39
|
|
73
|
-
|
74
|
-
when Net::HTTPSuccess then
|
75
|
-
log :info, "Success: #{response.class}", response
|
76
|
-
return response.body
|
77
|
-
else
|
78
|
-
log :error, "Failure: #{response.class}", response
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def url
|
83
|
-
Stilts.configuration.url.dup
|
40
|
+
Stilts.receiver.receive(response)
|
84
41
|
end
|
85
42
|
|
86
43
|
def log(level, message, response = nil)
|
data/lib/stilts/version.rb
CHANGED
data/spec/batch_spec.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/../lib/stilts/batch')
|
3
|
+
|
4
|
+
describe Stilts::Batch do
|
5
|
+
before(:each) do
|
6
|
+
@image1, @image2 = random_image, random_image
|
7
|
+
@batch = Stilts::Batch.new
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should gather up all the images on a page for resizing" do
|
11
|
+
pending "This should really be an integration test"
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should accept new images like an array" do
|
15
|
+
@batch << @image1
|
16
|
+
@batch.size.should be 1
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should respond to empty?" do
|
20
|
+
@batch.empty?.should be true
|
21
|
+
@batch << @image1
|
22
|
+
@batch.empty?.should be false
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should respond to #to_json" do
|
26
|
+
@batch << @image1
|
27
|
+
@batch << @image2
|
28
|
+
@batch.to_json.should be_a_kind_of(String)
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#deliver" do
|
32
|
+
before(:each) do
|
33
|
+
@batch << @image1
|
34
|
+
@batch << @image2
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should send a hash of unprocessed images to Stilts" do
|
38
|
+
Stilts.sender.user_agent = "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"
|
39
|
+
@batch.deliver
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# describe "#screen" do
|
44
|
+
# it "should check local cache to see if any of the images have already been processed" do
|
45
|
+
# pending
|
46
|
+
# end
|
47
|
+
# it "should skip sending of already processed images to Stilts" do
|
48
|
+
# pending
|
49
|
+
# # cache fake result, try to resend image
|
50
|
+
# end
|
51
|
+
# end
|
52
|
+
|
53
|
+
|
54
|
+
end
|
data/spec/helpers_spec.rb
CHANGED
@@ -6,13 +6,14 @@ include Stilts::Helpers
|
|
6
6
|
describe Stilts::Helpers do
|
7
7
|
|
8
8
|
before(:each) do
|
9
|
+
@image_batch = Stilts::Batch.new
|
9
10
|
@image = test_images[rand(3)]
|
10
11
|
end
|
11
12
|
|
12
13
|
describe "#transform" do
|
13
14
|
it "should respond with some image tag HTML" do
|
14
15
|
|
15
|
-
|
16
|
+
transform_image("http://bla.com/image.jpg", {}).should =~ /^\<img/
|
16
17
|
|
17
18
|
|
18
19
|
end
|
data/spec/hooks_spec.rb
CHANGED
@@ -2,18 +2,5 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
2
|
require File.expand_path(File.dirname(__FILE__) + '/../lib/stilts/rails/hooks')
|
3
3
|
|
4
4
|
describe Stilts::Hooks do
|
5
|
-
it "should gather up all the images on a page for resizing" do
|
6
|
-
pending "This should really be an integration test"
|
7
|
-
end
|
8
|
-
it "should check local cache to see if any of the images have already been processed" do
|
9
|
-
pending
|
10
|
-
end
|
11
|
-
it "should send a hash of unprocessed images to Stilts" do
|
12
|
-
pending
|
13
|
-
end
|
14
|
-
it "should skip sending of already processed images to Stilts" do
|
15
|
-
pending
|
16
|
-
# cache fake result, try to resend image
|
17
|
-
end
|
18
5
|
|
19
6
|
end
|
data/spec/image_spec.rb
CHANGED
@@ -4,7 +4,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../lib/stilts/image')
|
|
4
4
|
describe Stilts::Image do
|
5
5
|
|
6
6
|
before(:each) do
|
7
|
-
@image =
|
7
|
+
@image = random_image
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should have some default values assigned" do
|
@@ -31,9 +31,9 @@ describe Stilts::Image do
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
describe "#
|
35
|
-
it "should respond with the full url of a post-transform image" do
|
36
|
-
@image.
|
34
|
+
describe "#s3_url" do
|
35
|
+
it "should respond with the full url of a post-transform and distributed image" do
|
36
|
+
@image.cdn_url.should =~ /^http:\/\//
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -43,11 +43,28 @@ describe Stilts::Image do
|
|
43
43
|
end
|
44
44
|
it "should have some specific keys" do
|
45
45
|
hash = @image.to_hash
|
46
|
-
hash[:
|
46
|
+
hash[:source].should_not be nil
|
47
47
|
hash[:name].should_not be nil
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
+
describe "#cached?" do
|
52
|
+
it "should return true if the image name is in local cache" do
|
53
|
+
pending
|
54
|
+
end
|
55
|
+
it "should return false if the image name is not found in local cache" do
|
56
|
+
pending
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe "#to_json" do
|
61
|
+
it "should respond to to_json" do
|
62
|
+
json = @image.to_json
|
63
|
+
json.should be_a_kind_of(String)
|
64
|
+
JSON.parse(json).should be_a_kind_of(Hash)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
51
68
|
def assert_default_value(option, default_value)
|
52
69
|
default_value.should be @image.send(option)
|
53
70
|
end
|
data/spec/receiver_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -9,12 +9,20 @@ end
|
|
9
9
|
|
10
10
|
def test_images
|
11
11
|
[
|
12
|
-
{ :
|
13
|
-
|
14
|
-
{ :
|
12
|
+
{ :source => "http://www.crazy-frog.us/donthotlink-crazy-frog-1024x768-1.jpg",
|
13
|
+
:options => {} },
|
14
|
+
{ :source => "https://totalfright.websitesource.net/mm5/pics/32901.jpg",
|
15
|
+
:options => {} },
|
16
|
+
{ :source => "http://iamthatmommy.files.wordpress.com/2010/04/unicorn1.jpg",
|
17
|
+
:options => {} }
|
15
18
|
]
|
16
19
|
end
|
17
20
|
|
21
|
+
def random_image
|
22
|
+
image_number = rand(test_images.size)
|
23
|
+
Stilts::Image.new(test_images[image_number][:source], test_images[image_number][:options])
|
24
|
+
end
|
25
|
+
|
18
26
|
Stilts.configure do |c|
|
19
27
|
c.api_key = "1234123412341234"
|
20
28
|
end
|
data/stilts.gemspec
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 4
|
9
|
+
version: 0.0.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Graham Powrie
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-01-
|
17
|
+
date: 2011-01-21 00:00:00 -08:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -32,6 +32,21 @@ dependencies:
|
|
32
32
|
version: 2.2.2
|
33
33
|
type: :runtime
|
34
34
|
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: json
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
segments:
|
44
|
+
- 1
|
45
|
+
- 4
|
46
|
+
- 6
|
47
|
+
version: 1.4.6
|
48
|
+
type: :runtime
|
49
|
+
version_requirements: *id002
|
35
50
|
description: ""
|
36
51
|
email:
|
37
52
|
- graham@developmentnow.com
|
@@ -47,6 +62,7 @@ files:
|
|
47
62
|
- README.md
|
48
63
|
- Rakefile
|
49
64
|
- lib/stilts.rb
|
65
|
+
- lib/stilts/batch.rb
|
50
66
|
- lib/stilts/configuration.rb
|
51
67
|
- lib/stilts/image.rb
|
52
68
|
- lib/stilts/rack.rb
|
@@ -57,6 +73,7 @@ files:
|
|
57
73
|
- lib/stilts/receiver.rb
|
58
74
|
- lib/stilts/sender.rb
|
59
75
|
- lib/stilts/version.rb
|
76
|
+
- spec/batch_spec.rb
|
60
77
|
- spec/configuration_spec.rb
|
61
78
|
- spec/helpers_spec.rb
|
62
79
|
- spec/hooks_spec.rb
|
@@ -98,6 +115,7 @@ signing_key:
|
|
98
115
|
specification_version: 3
|
99
116
|
summary: On-the-fly image resizing and management for mobile devices
|
100
117
|
test_files:
|
118
|
+
- spec/batch_spec.rb
|
101
119
|
- spec/configuration_spec.rb
|
102
120
|
- spec/helpers_spec.rb
|
103
121
|
- spec/hooks_spec.rb
|