lambda-queuer 0.0.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.
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
+