cloud_flow 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cloud_flow.rb +14 -4
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed7c28504ce14f5ee96bfbdc7d18e50a1d11316f
|
4
|
+
data.tar.gz: 57d9ed689c4a46f73c7bbb4a1761ff7f5a374615
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e68c05ea2464ba9cf1ca81acbd29a8dac2b1b11f2ee834bfd0924a0359db376e57e7cd69dc43645380ed6b10605b5c26d62cce14e24e4d7091be4edee525a9f1
|
7
|
+
data.tar.gz: 6e8aa8e71e47b111741ea8ef6d4769df013bfbcad0bdcde529d7fc2faf7bab4ca1a38fcd9d43d11ccdf9de7c36efadf40dc3ef1114a23db7775e5448c027f588
|
data/lib/cloud_flow.rb
CHANGED
@@ -5,11 +5,11 @@ class CloudFlow
|
|
5
5
|
def initialize(name)
|
6
6
|
@namespace = name
|
7
7
|
sqs = AWS::SQS.new
|
8
|
-
@queue = sqs
|
8
|
+
@queue = create_or_find_queue(sqs, "cloudflow_#{@namespace}")
|
9
9
|
end
|
10
10
|
|
11
|
-
#
|
12
|
-
#
|
11
|
+
# Create function correspond to given name.
|
12
|
+
# Please avoid 'on', 'poll' since they are used already by CloudFlow.
|
13
13
|
# flow.on(:somefunc, &blk) generates flow#somefunc which is used to call the work.
|
14
14
|
# @param name [String] the work's name.
|
15
15
|
# @param block [Block] the work.
|
@@ -18,7 +18,7 @@ class CloudFlow
|
|
18
18
|
define_receiving_method(name, &block)
|
19
19
|
end
|
20
20
|
|
21
|
-
#
|
21
|
+
# Starts its work.
|
22
22
|
def start
|
23
23
|
@queue.poll do |msg|
|
24
24
|
perform_message(msg)
|
@@ -27,6 +27,16 @@ class CloudFlow
|
|
27
27
|
|
28
28
|
private
|
29
29
|
|
30
|
+
# creates of finds SQS queue by given name
|
31
|
+
# @param sqs [AWS::SQS]
|
32
|
+
# @param name [String]
|
33
|
+
# @return [AWS::SQS::Queue]
|
34
|
+
def create_or_find_queue(sqs, name)
|
35
|
+
sqs.queues.named(name)
|
36
|
+
rescue AWS::SQS::Errors::NonExistentQueue
|
37
|
+
sqs.queues.create(name)
|
38
|
+
end
|
39
|
+
|
30
40
|
# defines method which does send message to SQS
|
31
41
|
def define_sending_method(name)
|
32
42
|
self.class.send(:define_method, name) do |*args|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloud_flow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kai Inui
|
@@ -10,7 +10,7 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2014-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
13
|
+
description: SQS Powered Multi-instance coding made easy
|
14
14
|
email: me@kaiinui.com
|
15
15
|
executables: []
|
16
16
|
extensions: []
|
@@ -38,8 +38,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
38
38
|
version: '0'
|
39
39
|
requirements: []
|
40
40
|
rubyforge_project:
|
41
|
-
rubygems_version: 2.
|
41
|
+
rubygems_version: 2.3.0
|
42
42
|
signing_key:
|
43
43
|
specification_version: 4
|
44
44
|
summary: SQS Powered Multi-instance coding made easy
|
45
45
|
test_files: []
|
46
|
+
has_rdoc:
|