lambda-queuer 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/lambda-queuer.rb +35 -0
  2. metadata +80 -0
@@ -0,0 +1,35 @@
1
+ require 'rubygems'
2
+ require 'amqp'
3
+ require 'sourcify'
4
+
5
+ class LambdaQueuer
6
+ def initialize(exchange, routing_key, host='127.0.0.1', port=5672)
7
+ @host = host
8
+ @port = port
9
+ @exchange = exchange
10
+ @routing_key = routing_key
11
+ end
12
+
13
+ def post(&block)
14
+ EventMachine.run do
15
+ begin
16
+ connection = AMQP.connect(:host => @host, :port => @port)
17
+ puts "Connected to AMQP broker. Running #{AMQP::VERSION} version of the gem..."
18
+ channel = AMQP::Channel.new(connection)
19
+ exchange = channel.direct(@exchange, :auto_delete => true)
20
+ queue = channel.queue(@routing_key, :auto_delete => false, :passive => true)
21
+ queue.bind(exchange, :routing_key => @routing_key)
22
+ v = block.to_source
23
+ exchange.publish(v, :routing_key => @routing_key)
24
+ EventMachine.add_timer(2) do
25
+ connection.close { EventMachine.stop }
26
+ end
27
+ rescue => e
28
+ puts e
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ LambdaQueuer.new('lambda_exchange', 'lambda').post {|all| all}
35
+
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lambda-queuer
3
+ version: !ruby/object:Gem::Version
4
+ hash: 31
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 0
10
+ version: 0.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Avishek Sen Gupta
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-09-17 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: sourcify
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 11
29
+ segments:
30
+ - 0
31
+ - 5
32
+ - 0
33
+ version: 0.5.0
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ description: A class atop sourcify and amqp which can queue stringified lambdas over RabbitMQ. It is untested on free variables.
37
+ email: avishek.sen.gupta@gmail.com
38
+ executables: []
39
+
40
+ extensions: []
41
+
42
+ extra_rdoc_files: []
43
+
44
+ files:
45
+ - lib/lambda-queuer.rb
46
+ homepage: http://rubygems.org/gems/lambda-queuer
47
+ licenses: []
48
+
49
+ post_install_message:
50
+ rdoc_options: []
51
+
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ hash: 3
69
+ segments:
70
+ - 0
71
+ version: "0"
72
+ requirements: []
73
+
74
+ rubyforge_project:
75
+ rubygems_version: 1.7.2
76
+ signing_key:
77
+ specification_version: 3
78
+ summary: A simple class atop sourcify and amqp which can queue stringified lambdas over RabbitMQ
79
+ test_files: []
80
+