simple_qs 0.1.2 → 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/CHANGELOG.md +9 -0
- data/README.md +44 -10
- data/TODO.md +1 -1
- data/lib/simple_qs.rb +6 -5
- data/lib/simple_qs/queue.rb +26 -1
- data/lib/version.rb +1 -1
- metadata +1 -2
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,17 @@
|
|
1
|
+
## 0.2
|
2
|
+
|
3
|
+
Features:
|
4
|
+
|
5
|
+
- Add new SQS endpoints
|
6
|
+
- Add new support for MaximumMessageSize, MessageRetentionPeriod attributes for queue
|
7
|
+
|
1
8
|
## 0.1.2
|
2
9
|
|
3
10
|
Features:
|
11
|
+
|
4
12
|
- Add exists? class method to SimpleQS::Queue
|
5
13
|
- Add delete class method to SimpleQS::Queue
|
6
14
|
|
7
15
|
Bugfixes:
|
16
|
+
|
8
17
|
- Fix gemspec, gem now works as it should :)
|
data/README.md
CHANGED
@@ -15,13 +15,14 @@
|
|
15
15
|
|
16
16
|
You can select region for queue:
|
17
17
|
|
18
|
-
# :
|
19
|
-
# :us_west_1
|
20
|
-
# :eu_west_1
|
21
|
-
|
18
|
+
# :us_east_1 => 'sqs.us-east-1.amazonaws.com',
|
19
|
+
# :us_west_1 => 'sqs.us-west-1.amazonaws.com',
|
20
|
+
# :eu_west_1 => 'sqs.eu-west-1.amazonaws.com',
|
21
|
+
# :ap_southeast_1 => 'sqs.ap-southeast-1.amazonaws.com'
|
22
|
+
SimpleQS.host # => 'sqs.us-east-1.amazonaws.com'
|
22
23
|
|
23
24
|
SimpleQS.host = :eu_west_1
|
24
|
-
SimpleQS.host # => 'eu-west-1.
|
25
|
+
SimpleQS.host # => 'sqs.eu-west-1.amazonaws.com'
|
25
26
|
|
26
27
|
### Queues ###
|
27
28
|
|
@@ -47,10 +48,22 @@ List all account's queues starting with 'test':
|
|
47
48
|
|
48
49
|
SimpleQS::Queue.list('test')
|
49
50
|
|
51
|
+
Check if queue exists:
|
52
|
+
|
53
|
+
SimpleQS::Queue.exists?('queue_name')
|
54
|
+
|
50
55
|
Change default visibility timeout for queue:
|
51
56
|
|
52
57
|
SimpleQS::Queue.new('queue_name').set_visibility_timeout(120)
|
53
58
|
|
59
|
+
Change maximum message size for queue:
|
60
|
+
|
61
|
+
SimpleQS::Queue.new('queue_name').set_maximum_message_size(65536)
|
62
|
+
|
63
|
+
Change message retention period:
|
64
|
+
|
65
|
+
SimpleQS::Queue.new('queue_name').set_message_retention_period(1209600)
|
66
|
+
|
54
67
|
Set queue attributes:
|
55
68
|
|
56
69
|
SimpleQS::Queue.new('queue_name').set_attributes({:VisibilityTimeout => 120, :Policy => "policy JSON here"})
|
@@ -74,6 +87,10 @@ Delete queue:
|
|
74
87
|
|
75
88
|
SimpleQS::Queue.new('queue_name').delete
|
76
89
|
|
90
|
+
Or:
|
91
|
+
|
92
|
+
SimpleQS::Queue.delete('queue_name')
|
93
|
+
|
77
94
|
### Messages ###
|
78
95
|
|
79
96
|
Send message:
|
@@ -141,13 +158,14 @@ Marjan Krekoten' (krekoten@gmail.com)
|
|
141
158
|
|
142
159
|
Можна обрати регіон, в якому буде створена черга:
|
143
160
|
|
144
|
-
# :
|
145
|
-
# :us_west_1
|
146
|
-
# :eu_west_1
|
147
|
-
|
161
|
+
# :us_east_1 => 'sqs.us-east-1.amazonaws.com',
|
162
|
+
# :us_west_1 => 'sqs.us-west-1.amazonaws.com',
|
163
|
+
# :eu_west_1 => 'sqs.eu-west-1.amazonaws.com',
|
164
|
+
# :ap_southeast_1 => 'sqs.ap-southeast-1.amazonaws.com'
|
165
|
+
SimpleQS.host # => 'sqs.us-east-1.amazonaws.com'
|
148
166
|
|
149
167
|
SimpleQS.host = :eu_west_1
|
150
|
-
SimpleQS.host # => 'eu-west-1.
|
168
|
+
SimpleQS.host # => 'sqs.eu-west-1.amazonaws.com'
|
151
169
|
|
152
170
|
### Черги ###
|
153
171
|
|
@@ -173,10 +191,22 @@ Marjan Krekoten' (krekoten@gmail.com)
|
|
173
191
|
|
174
192
|
SimpleQS::Queue.list('test')
|
175
193
|
|
194
|
+
Перевірити чи черга існує:
|
195
|
+
|
196
|
+
SimpleQS::Queue.exists?('queue_name')
|
197
|
+
|
176
198
|
Змінити типовий час невидимості для даної черги:
|
177
199
|
|
178
200
|
SimpleQS::Queue.new('queue_name').set_visibility_timeout(120)
|
179
201
|
|
202
|
+
Змінити максимальний розмір повідомлення:
|
203
|
+
|
204
|
+
SimpleQS::Queue.new('queue_name').set_maximum_message_size(65536)
|
205
|
+
|
206
|
+
Змінити період зберігання повідомлень для черги:
|
207
|
+
|
208
|
+
SimpleQS::Queue.new('queue_name').set_message_retention_period(1209600)
|
209
|
+
|
180
210
|
Встановити атрибути черги:
|
181
211
|
|
182
212
|
SimpleQS::Queue.new('queue_name').set_attributes({:VisibilityTimeout => 120, :Policy => "policy JSON here"})
|
@@ -200,6 +230,10 @@ Marjan Krekoten' (krekoten@gmail.com)
|
|
200
230
|
|
201
231
|
SimpleQS::Queue.new('queue_name').delete
|
202
232
|
|
233
|
+
Або:
|
234
|
+
|
235
|
+
SimpleQS::Queue.delete('queue_name')
|
236
|
+
|
203
237
|
### Повідомлення ###
|
204
238
|
|
205
239
|
Відправити повідомлення:
|
data/TODO.md
CHANGED
data/lib/simple_qs.rb
CHANGED
@@ -7,9 +7,10 @@ module SimpleQS
|
|
7
7
|
API_VERSION = '2009-02-01'
|
8
8
|
|
9
9
|
SQS_HOSTS = {
|
10
|
-
:
|
11
|
-
:us_west_1
|
12
|
-
:eu_west_1
|
10
|
+
:us_east_1 => 'sqs.us-east-1.amazonaws.com',
|
11
|
+
:us_west_1 => 'sqs.us-west-1.amazonaws.com',
|
12
|
+
:eu_west_1 => 'sqs.eu-west-1.amazonaws.com',
|
13
|
+
:ap_southeast_1 => 'sqs.ap-southeast-1.amazonaws.com'
|
13
14
|
}
|
14
15
|
|
15
16
|
autoload :Message, 'simple_qs/message'
|
@@ -26,12 +27,12 @@ module SimpleQS
|
|
26
27
|
attr_reader :account_id
|
27
28
|
|
28
29
|
def host=(value)
|
29
|
-
raise ArgumentError, 'Expected value to be one of: :
|
30
|
+
raise ArgumentError, 'Expected value to be one of: :us_east_1, :us_west_1, :eu_west_1, :ap_southeast_1' unless SQS_HOSTS.key?(value)
|
30
31
|
@host = value
|
31
32
|
end
|
32
33
|
|
33
34
|
def host
|
34
|
-
@host ||= :
|
35
|
+
@host ||= :us_east_1
|
35
36
|
SQS_HOSTS[@host]
|
36
37
|
end
|
37
38
|
end
|
data/lib/simple_qs/queue.rb
CHANGED
@@ -2,6 +2,8 @@ module SimpleQS
|
|
2
2
|
class Queue
|
3
3
|
|
4
4
|
class MaxVisibilityError < StandardError; end
|
5
|
+
class MaxMessageSizeError < StandardError; end
|
6
|
+
class MessageRetentionPeriodError < StandardError; end
|
5
7
|
|
6
8
|
MAX_VISIBILITY_TIMEOUT = 43200
|
7
9
|
|
@@ -103,10 +105,33 @@ module SimpleQS
|
|
103
105
|
def set_policy(policy)
|
104
106
|
set_attributes({:Policy => policy})
|
105
107
|
end
|
108
|
+
|
109
|
+
def set_maximum_message_size(message_size)
|
110
|
+
set_attributes({:MaximumMessageSize => message_size})
|
111
|
+
end
|
112
|
+
|
113
|
+
def set_message_retention_period(period)
|
114
|
+
set_attributes({:MessageRetentionPeriod => period})
|
115
|
+
end
|
116
|
+
|
117
|
+
ALLOWED_ATTRIBUTES = [
|
118
|
+
:VisibilityTimeout,
|
119
|
+
:Policy,
|
120
|
+
:MaximumMessageSize,
|
121
|
+
:MessageRetentionPeriod
|
122
|
+
]
|
106
123
|
|
107
124
|
def set_attributes(attributes)
|
108
|
-
|
125
|
+
unless (attributes.keys - ALLOWED_ATTRIBUTES).empty?
|
126
|
+
raise ArgumentError, "Allowed attributes: #{ALLOWED_ATTRIBUTES.map {|attr| ":" << attr.to_s}.join(", ")}"
|
127
|
+
end
|
109
128
|
self.class.check_visibility_timeout(attributes[:VisibilityTimeout]) if attributes[:VisibilityTimeout]
|
129
|
+
if attributes[:MaximumMessageSize] && !(1024..65536).include?(attributes[:MaximumMessageSize])
|
130
|
+
raise MaxMessageSizeError, 'MaximumMessageSize should be between 1024 and 65536'
|
131
|
+
end
|
132
|
+
if attributes[:MessageRetentionPeriod] && !(3600..1209600).include?(attributes[:MessageRetentionPeriod])
|
133
|
+
raise MessageRetentionPeriodError, 'MessageRetentionPeriod should be between 3600 and 1209600'
|
134
|
+
end
|
110
135
|
|
111
136
|
params = {
|
112
137
|
'Action' => 'SetQueueAttributes'
|
data/lib/version.rb
CHANGED