queuel 0.3.1 → 0.4.0

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.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- queuel (0.3.1)
4
+ queuel (0.4.0)
5
5
  mono_logger
6
6
  multi_json
7
7
  thread
data/README.md CHANGED
@@ -7,6 +7,7 @@
7
7
  Queuel is a kewl, lite wrapper around Queue interfaces. Currently it implements:
8
8
 
9
9
  * IronMQ
10
+ * Amazon SQS
10
11
  * Null pattern
11
12
 
12
13
  Each of these should reliably implement:
@@ -89,6 +90,11 @@ Queuel.receive break_if_nil: true do |message|
89
90
  end
90
91
  ```
91
92
 
93
+ Notes specific to the SQS engine:
94
+ A config should be added to provide `bucket_name`, `max_bytesize`, `access_key`
95
+ and `secret_access_key`. Without these, messages over the max_bytesize setting
96
+ (defaults to 64kb) will be dropped from the queue.
97
+
92
98
  #### Caveats of the receiver
93
99
 
94
100
  * Your block must return true in order to not replace the message to the Queue
@@ -105,7 +111,7 @@ message.delete # => Delete the message
105
111
  #### Parsing
106
112
 
107
113
  Queuel uses [MultiJson](https://github.com/intridea/multi_json) to provide
108
- some auto-message decoding/encodeing features. With MultiJson you may install your own engine
114
+ some auto-message decoding/encoding features. With MultiJson you may install your own engine
109
115
  (like [Oj](https://github.com/ohler55/oj)).
110
116
 
111
117
  Because of the parsing given, you will default to encoding and decoding JSON:
@@ -0,0 +1,9 @@
1
+ staging: &staging
2
+ s3:
3
+ access_key: "[access_key]"
4
+ secret_access_key: "[secret_key]"
5
+ bucket_name: "example-bucket-name"
6
+ max_bytesize: 100000
7
+
8
+ development:
9
+ <<: *staging
@@ -12,6 +12,7 @@ module Queuel
12
12
 
13
13
  def initialize(credentials = {})
14
14
  self.credentials = credentials
15
+ self.bucket_name = credentials[:bucket_name]
15
16
  self.memoized_queues = {}
16
17
  end
17
18
 
@@ -21,6 +22,7 @@ module Queuel
21
22
 
22
23
  private
23
24
  attr_accessor :credentials
25
+ attr_accessor :bucket_name
24
26
  attr_accessor :memoized_queues
25
27
 
26
28
  def client
@@ -32,6 +32,10 @@ module Queuel
32
32
  poller_klass.new(self, block, options, thread_count).poll
33
33
  end
34
34
 
35
+ def size
36
+ raise NotImplementedError, "must implement #size"
37
+ end
38
+
35
39
  private
36
40
  attr_accessor :client
37
41
  attr_accessor :name
@@ -17,6 +17,10 @@ module Queuel
17
17
  queue_connection.post build_push_message(message, options)
18
18
  end
19
19
 
20
+ def size
21
+ queue_connection.size
22
+ end
23
+
20
24
  private
21
25
  def pop_bare_message(options = {})
22
26
  queue_connection.get options.merge(default_get_message_options)
@@ -7,8 +7,13 @@ module Queuel
7
7
 
8
8
  AWSSDKMissingError = Class.new(StandardError)
9
9
 
10
+ def queue(which_queue)
11
+ memoized_queues[which_queue.to_s] ||= queue_klass.new(client, which_queue, credentials)
12
+ end
13
+
10
14
  private
11
15
 
16
+
12
17
  def client_klass
13
18
  if defined?(::AWS::SQS)
14
19
  ::AWS::SQS
@@ -1,10 +1,69 @@
1
1
  module Queuel
2
2
  module SQS
3
3
  class Message < Base::Message
4
+ # if message_object exists (not nil), receive the data, otherwise push
4
5
  def raw_body
5
- @raw_body ||
6
- (message_object && raw_body_with_sns_check) ||
7
- encoded_body
6
+ @raw_body ||= message_object.nil? ? push_message : pull_message
7
+ end
8
+
9
+ def generate_key
10
+ key = [
11
+ (Time.now.to_f * 10000).to_i,
12
+ SecureRandom.urlsafe_base64,
13
+ Thread.current.object_id
14
+ ].join('-')
15
+ key
16
+ end
17
+
18
+ def push_message
19
+ if encoded_body.bytesize > max_bytesize
20
+ key = generate_key
21
+ write_to_s3(encoded_body, key)
22
+ self.body = { 'queuel_s3_object' => key }
23
+ end
24
+ encoded_body
25
+ end
26
+
27
+ def pull_message
28
+ begin
29
+ decoded_body = JSON.parse(message_object.body)
30
+ if decoded_body.key?('queuel_s3_object')
31
+ read_from_s3 decoded_body[:queuel_s3_object]
32
+ else
33
+ message_object.body
34
+ end
35
+ rescue ::JSON::ParserError, TypeError
36
+ raw_body_with_sns_check
37
+ end
38
+ end
39
+
40
+ def max_bytesize
41
+ options[:max_bytesize] || 64 * 1024
42
+ end
43
+
44
+ def self.s3
45
+ @s3 ||= AWS::S3.new(
46
+ :access_key_id => options[:access_token],
47
+ :secret_access_key => options[:secret_access_token] )
48
+ end
49
+
50
+ def read_from_s3 key
51
+ object = s3.buckets[options[:bucket_name]].objects[key]
52
+ object.read
53
+ end
54
+
55
+ # this assumes you've set up some rules for file expiration on your
56
+ # configured bucket.
57
+ def write_to_s3(message, key)
58
+ begin
59
+ my_bucket = s3.buckets[options[:bucket_name]]
60
+ my_bucket.objects[key].write(message)
61
+ rescue
62
+ raise BucketDoesNotExistError, "Bucket has either expired or does not exist"
63
+ end
64
+ end
65
+
66
+ class BucketDoesNotExistError < StandardError
8
67
  end
9
68
 
10
69
  def delete
@@ -5,6 +5,15 @@ module Queuel
5
5
  class Queue < Base::Queue
6
6
  extend Forwardable
7
7
 
8
+ attr_accessor :credentials
9
+
10
+ def initialize(client, queue_name, credentials={})
11
+ self.client = client
12
+ self.name = queue_name
13
+ self.credentials = credentials
14
+ end
15
+
16
+
8
17
  def push(message, options = {})
9
18
  queue_connection.send_message build_push_message(message, options)
10
19
  end
@@ -13,7 +22,18 @@ module Queuel
13
22
  queue_connection.approximate_number_of_messages
14
23
  end
15
24
 
25
+ def size
26
+ approximate_number_of_messages
27
+ end
28
+
16
29
  private
30
+
31
+
32
+ def build_new_message(bare_message, options = {})
33
+ message_klass.new(bare_message, credentials)
34
+ end
35
+
36
+
17
37
  def pop_bare_message(options = {})
18
38
  queue_connection.receive_message options
19
39
  end
@@ -1,3 +1,3 @@
1
1
  module Queuel
2
- VERSION = "0.3.1"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -8,7 +8,7 @@ module Queuel
8
8
 
9
9
  its(:thread_count) { should == 1 }
10
10
 
11
- it "fails on non-impleneted push" do
11
+ it "fails on non-implemented push" do
12
12
  expect { subject.push("") }.to raise_error NotImplementedError
13
13
  end
14
14
 
@@ -2,9 +2,37 @@ require 'spec_helper'
2
2
  module Queuel
3
3
  module IronMq
4
4
  describe Queue do
5
+ let(:message) { double "Message", body: "uhuh" }
6
+ let(:client) { double "ClientObject" }
7
+ let(:name) { "venues queue" }
5
8
  let(:queue_object_with_message) { double "QueueObject", get: message, peek: [message] }
6
9
  let(:queue_object_with_nil_message) { double "QueueObject", get: nil, peek: nil }
10
+
11
+ subject do
12
+ described_class.new client, name
13
+ end
14
+
7
15
  it_should_behave_like "a queue"
16
+
17
+ describe "size" do
18
+ it "should check the queue_connection for size" do
19
+ client.stub queue: queue_object_with_message
20
+ queue_object_with_message.should_receive(:size)
21
+ subject.size
22
+ end
23
+ end
24
+
25
+ describe "peek" do
26
+ before do
27
+ not_for_null do
28
+ client.stub queue: queue_object_with_message
29
+ end
30
+ end
31
+
32
+ it "should take options and return an array" do
33
+ subject.peek(option: true).should be_an Array
34
+ end
35
+ end
8
36
  end
9
37
  end
10
38
  end
@@ -13,12 +13,33 @@ module Queuel
13
13
  before do
14
14
  subject.stub decode_body?: false
15
15
  message_object.stub(:as_sns_message).and_raise ::JSON::ParserError
16
+ Queuel.configure { engine :sqs }
16
17
  end
17
18
 
18
19
  its(:id) { should == 1 }
19
20
  its(:body) { should == "body" }
20
21
  its(:queue) { should == queue_double }
21
22
 
23
+ describe "when pulling an oversized message" do
24
+ let(:body) { '{"queuel_s3_object": "whatever" }' }
25
+
26
+ it "should call read_from_s3" do
27
+ subject.should_receive(:read_from_s3)
28
+ subject.raw_body
29
+ end
30
+ end
31
+
32
+ describe "when pushing an oversized json hash" do
33
+ before do
34
+ subject.send("message_object=", nil)
35
+ subject.stub(:encoded_body).and_return double("body", bytesize: subject.max_bytesize+1)
36
+ end
37
+ it "should call write_to_s3" do
38
+ subject.should_receive(:write_to_s3)
39
+ subject.raw_body
40
+ end
41
+ end
42
+
22
43
  describe "with json" do
23
44
  let(:body) { '{"username":"jon"}' }
24
45
  before do
@@ -30,14 +51,14 @@ module Queuel
30
51
  end
31
52
 
32
53
  describe "with valid SNS message" do
33
- let(:sns_body) { "Hello From SNS"}
54
+ let(:sns_body) { "Hello From SNS" }
34
55
  before do
35
56
  message_object.stub(:as_sns_message).and_return double("SNSMessage", body: sns_body)
36
57
  end
37
58
  its(:raw_body) { should == sns_body }
38
59
  its(:raw_body) { should_not == message_object.body}
39
60
 
40
- describe "that is json" do
61
+ describe "which is json" do
41
62
  let(:sns_body) { '{"username":"jon"}' }
42
63
  before do
43
64
  subject.stub decode_body?: true
@@ -1,11 +1,31 @@
1
1
  require 'spec_helper'
2
2
  module Queuel
3
- module IronMq
3
+ module SQS
4
4
  describe Queue do
5
- let(:queue_object_with_message) { double "QueueObject", get: message, peek: [message] }
6
- let(:queue_object_with_nil_message) { double "QueueObject", get: nil, peek: nil }
5
+ let(:message) { double "Message", body: "uhuh" }
6
+ let(:client) { double "ClientObject" }
7
+ let(:name) { "venues queue" }
8
+ let(:credentials) {{ access_key: "none", secret_access_key: "none" }}
9
+ let(:queue_object_with_message) { double "QueueObject", get: message, receive_message: message }
10
+ let(:queue_object_with_nil_message) { double "QueueObject", get: nil, receive_message: nil }
11
+
12
+ subject do
13
+ described_class.new client, name, credentials
14
+ end
15
+
16
+ before do
17
+ message.stub_chain :as_sns_message, body: "uhuh"
18
+ client.stub_chain :queues, named: queue_object_with_message
19
+ end
7
20
 
8
21
  it_should_behave_like "a queue"
22
+
23
+ describe "size" do
24
+ it "should check the queue_connection's approximate_number_of_messages for size" do
25
+ queue_object_with_message.should_receive :approximate_number_of_messages
26
+ subject.size
27
+ end
28
+ end
9
29
  end
10
30
  end
11
31
  end
@@ -7,29 +7,16 @@ shared_examples "a queue" do
7
7
  end
8
8
 
9
9
  # Poller object handles this
10
- it { should respond_to :receive }
11
10
  it { should respond_to :push }
12
11
  it { should respond_to :pop }
13
- it { should respond_to :peek }
14
-
15
- describe "peek" do
16
- before do
17
- not_for_null do
18
- client.stub queue: queue_object_with_message
19
- end
20
- end
21
-
22
- it "should take options and return an array" do
23
- subject.peek(option: true).should be_an Array
24
- end
25
- end
12
+ it { should respond_to :size }
26
13
 
27
14
  describe "pop" do
28
15
  describe "with messages" do
29
16
  before do
30
17
  not_for_null do
31
18
  client.stub queue: queue_object_with_message
32
- client.stub named: queue_object_with_message
19
+ client.stub_chain :queues, named: queue_object_with_message
33
20
  end
34
21
  end
35
22
 
@@ -52,7 +39,7 @@ shared_examples "a queue" do
52
39
  before do
53
40
  not_for_null do
54
41
  client.stub queue: queue_object_with_nil_message
55
- client.stub named: queue_object_with_message
42
+ client.stub_chain :queues, named: queue_object_with_nil_message
56
43
  end
57
44
  end
58
45
 
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: queuel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Jon Phenow
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-02-18 00:00:00.000000000 Z
12
+ date: 2014-04-07 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: rake
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ! '>='
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ! '>='
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rspec
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ! '>='
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: simplecov
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ! '>='
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ! '>='
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: iron_mq
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ! '>='
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ! '>='
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: typhoeus
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - ! '>='
88
100
  - !ruby/object:Gem::Version
@@ -90,6 +102,7 @@ dependencies:
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
107
  - - ! '>='
95
108
  - !ruby/object:Gem::Version
@@ -97,6 +110,7 @@ dependencies:
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: aws-sdk
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ! '>='
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - ! '>='
109
124
  - !ruby/object:Gem::Version
@@ -111,6 +126,7 @@ dependencies:
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: guard-bundler
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
131
  - - ! '>='
116
132
  - !ruby/object:Gem::Version
@@ -118,6 +134,7 @@ dependencies:
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
139
  - - ! '>='
123
140
  - !ruby/object:Gem::Version
@@ -125,6 +142,7 @@ dependencies:
125
142
  - !ruby/object:Gem::Dependency
126
143
  name: guard-rspec
127
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
128
146
  requirements:
129
147
  - - ! '>='
130
148
  - !ruby/object:Gem::Version
@@ -132,6 +150,7 @@ dependencies:
132
150
  type: :development
133
151
  prerelease: false
134
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
135
154
  requirements:
136
155
  - - ! '>='
137
156
  - !ruby/object:Gem::Version
@@ -139,6 +158,7 @@ dependencies:
139
158
  - !ruby/object:Gem::Dependency
140
159
  name: guard-cane
141
160
  requirement: !ruby/object:Gem::Requirement
161
+ none: false
142
162
  requirements:
143
163
  - - ! '>='
144
164
  - !ruby/object:Gem::Version
@@ -146,6 +166,7 @@ dependencies:
146
166
  type: :development
147
167
  prerelease: false
148
168
  version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
149
170
  requirements:
150
171
  - - ! '>='
151
172
  - !ruby/object:Gem::Version
@@ -153,6 +174,7 @@ dependencies:
153
174
  - !ruby/object:Gem::Dependency
154
175
  name: rb-inotify
155
176
  requirement: !ruby/object:Gem::Requirement
177
+ none: false
156
178
  requirements:
157
179
  - - ! '>='
158
180
  - !ruby/object:Gem::Version
@@ -160,6 +182,7 @@ dependencies:
160
182
  type: :development
161
183
  prerelease: false
162
184
  version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
163
186
  requirements:
164
187
  - - ! '>='
165
188
  - !ruby/object:Gem::Version
@@ -167,6 +190,7 @@ dependencies:
167
190
  - !ruby/object:Gem::Dependency
168
191
  name: rb-fsevent
169
192
  requirement: !ruby/object:Gem::Requirement
193
+ none: false
170
194
  requirements:
171
195
  - - ! '>='
172
196
  - !ruby/object:Gem::Version
@@ -174,6 +198,7 @@ dependencies:
174
198
  type: :development
175
199
  prerelease: false
176
200
  version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
177
202
  requirements:
178
203
  - - ! '>='
179
204
  - !ruby/object:Gem::Version
@@ -181,6 +206,7 @@ dependencies:
181
206
  - !ruby/object:Gem::Dependency
182
207
  name: rb-fchange
183
208
  requirement: !ruby/object:Gem::Requirement
209
+ none: false
184
210
  requirements:
185
211
  - - ! '>='
186
212
  - !ruby/object:Gem::Version
@@ -188,6 +214,7 @@ dependencies:
188
214
  type: :development
189
215
  prerelease: false
190
216
  version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
191
218
  requirements:
192
219
  - - ! '>='
193
220
  - !ruby/object:Gem::Version
@@ -195,6 +222,7 @@ dependencies:
195
222
  - !ruby/object:Gem::Dependency
196
223
  name: cane
197
224
  requirement: !ruby/object:Gem::Requirement
225
+ none: false
198
226
  requirements:
199
227
  - - ! '>='
200
228
  - !ruby/object:Gem::Version
@@ -202,6 +230,7 @@ dependencies:
202
230
  type: :development
203
231
  prerelease: false
204
232
  version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
205
234
  requirements:
206
235
  - - ! '>='
207
236
  - !ruby/object:Gem::Version
@@ -209,6 +238,7 @@ dependencies:
209
238
  - !ruby/object:Gem::Dependency
210
239
  name: json
211
240
  requirement: !ruby/object:Gem::Requirement
241
+ none: false
212
242
  requirements:
213
243
  - - ~>
214
244
  - !ruby/object:Gem::Version
@@ -216,6 +246,7 @@ dependencies:
216
246
  type: :development
217
247
  prerelease: false
218
248
  version_requirements: !ruby/object:Gem::Requirement
249
+ none: false
219
250
  requirements:
220
251
  - - ~>
221
252
  - !ruby/object:Gem::Version
@@ -223,6 +254,7 @@ dependencies:
223
254
  - !ruby/object:Gem::Dependency
224
255
  name: coveralls
225
256
  requirement: !ruby/object:Gem::Requirement
257
+ none: false
226
258
  requirements:
227
259
  - - ! '>='
228
260
  - !ruby/object:Gem::Version
@@ -230,6 +262,7 @@ dependencies:
230
262
  type: :development
231
263
  prerelease: false
232
264
  version_requirements: !ruby/object:Gem::Requirement
265
+ none: false
233
266
  requirements:
234
267
  - - ! '>='
235
268
  - !ruby/object:Gem::Version
@@ -237,6 +270,7 @@ dependencies:
237
270
  - !ruby/object:Gem::Dependency
238
271
  name: thread
239
272
  requirement: !ruby/object:Gem::Requirement
273
+ none: false
240
274
  requirements:
241
275
  - - ! '>='
242
276
  - !ruby/object:Gem::Version
@@ -244,6 +278,7 @@ dependencies:
244
278
  type: :runtime
245
279
  prerelease: false
246
280
  version_requirements: !ruby/object:Gem::Requirement
281
+ none: false
247
282
  requirements:
248
283
  - - ! '>='
249
284
  - !ruby/object:Gem::Version
@@ -251,6 +286,7 @@ dependencies:
251
286
  - !ruby/object:Gem::Dependency
252
287
  name: mono_logger
253
288
  requirement: !ruby/object:Gem::Requirement
289
+ none: false
254
290
  requirements:
255
291
  - - ! '>='
256
292
  - !ruby/object:Gem::Version
@@ -258,6 +294,7 @@ dependencies:
258
294
  type: :runtime
259
295
  prerelease: false
260
296
  version_requirements: !ruby/object:Gem::Requirement
297
+ none: false
261
298
  requirements:
262
299
  - - ! '>='
263
300
  - !ruby/object:Gem::Version
@@ -265,6 +302,7 @@ dependencies:
265
302
  - !ruby/object:Gem::Dependency
266
303
  name: multi_json
267
304
  requirement: !ruby/object:Gem::Requirement
305
+ none: false
268
306
  requirements:
269
307
  - - ! '>='
270
308
  - !ruby/object:Gem::Version
@@ -272,6 +310,7 @@ dependencies:
272
310
  type: :runtime
273
311
  prerelease: false
274
312
  version_requirements: !ruby/object:Gem::Requirement
313
+ none: false
275
314
  requirements:
276
315
  - - ! '>='
277
316
  - !ruby/object:Gem::Version
@@ -297,6 +336,7 @@ files:
297
336
  - LICENSE.txt
298
337
  - README.md
299
338
  - Rakefile
339
+ - config/s3_example.yml
300
340
  - lib/queuel.rb
301
341
  - lib/queuel/base/engine.rb
302
342
  - lib/queuel/base/message.rb
@@ -351,26 +391,33 @@ files:
351
391
  homepage: ''
352
392
  licenses:
353
393
  - MIT
354
- metadata: {}
355
394
  post_install_message:
356
395
  rdoc_options: []
357
396
  require_paths:
358
397
  - lib
359
398
  required_ruby_version: !ruby/object:Gem::Requirement
399
+ none: false
360
400
  requirements:
361
401
  - - ! '>='
362
402
  - !ruby/object:Gem::Version
363
403
  version: '0'
404
+ segments:
405
+ - 0
406
+ hash: 2472164195127432886
364
407
  required_rubygems_version: !ruby/object:Gem::Requirement
408
+ none: false
365
409
  requirements:
366
410
  - - ! '>='
367
411
  - !ruby/object:Gem::Version
368
412
  version: '0'
413
+ segments:
414
+ - 0
415
+ hash: 2472164195127432886
369
416
  requirements: []
370
417
  rubyforge_project:
371
- rubygems_version: 2.0.14
418
+ rubygems_version: 1.8.23.2
372
419
  signing_key:
373
- specification_version: 4
420
+ specification_version: 3
374
421
  summary: Light Queue wrapper tool
375
422
  test_files:
376
423
  - spec/lib/queuel/base/queue_spec.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MTYyYjg5NTFlNjA2ZjNkYjFlMWExNmM1MWE5OTAzYzRjZjFlZDU0ZQ==
5
- data.tar.gz: !binary |-
6
- MGNhN2Q4YzQ2ZGUzZjg4MGFjMDdhYTVlZDlkZjYwYzgwNjE1ZDI0MQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- MTFiMzQ3NjYzZDU3OGQxMTI0MzU5MWY2YTM5ODRmNzQ1MDE0ZDM0N2U0Njk1
10
- MWNjY2Q2Mjg0NmIyYTc2MWVjOTkxNzJlZjZlYWMyMGRmOGYyNjMxZmExN2U3
11
- NzAyYTNlZWY3NjFkYjVkOGU4Yzc3OWE1YmJiYjhmMmI5OGRlNjk=
12
- data.tar.gz: !binary |-
13
- ODM1OTBlYzhkMjNmMjE2MGZlYzE5MmU1ZWQxNDRjM2FlMmY1MzJkYTUwYmEz
14
- ZTVlMWE4MTdmYzdhZGYyMzI2Y2EzNzcwZjcyNjU0NzEyOGI4NGNlMjIyMzNl
15
- YWIyYmVjMGY3NDRiYjdkZmY4NDEwNmU2YTJiNDllMmQyMDllOWU=