cloudist 0.1.1 → 0.1.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/Rakefile CHANGED
@@ -16,7 +16,7 @@ Jeweler::Tasks.new do |gem|
16
16
  gem.homepage = "http://github.com/ivanvanderbyl/cloudist"
17
17
  gem.license = "MIT"
18
18
  gem.summary = %Q{Super fast job queue using AMQP}
19
- gem.description = %Q{Cloudist is a simple, highly scalable job queue for Ruby applications, it can run within Rails, or on EC2, and does not load your entire Rails stack like delayed job does.}
19
+ gem.description = %Q{Cloudist is a simple, highly scalable job queue for Ruby applications, it can run within Rails, DaemonKit or your own custom application. Refer to github page for examples}
20
20
  gem.email = "ivanvanderbyl@me.com"
21
21
  gem.authors = ["Ivan Vanderbyl"]
22
22
  # Include your dependencies below. Runtime dependencies are required when using your gem,
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
data/cloudist.gemspec CHANGED
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{cloudist}
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ivan Vanderbyl"]
12
12
  s.date = %q{2011-01-18}
13
- s.description = %q{Cloudist is a simple, highly scalable job queue for Ruby applications, it can run within Rails, or on EC2, and does not load your entire Rails stack like delayed job does.}
13
+ s.description = %q{Cloudist is a simple, highly scalable job queue for Ruby applications, it can run within Rails, DaemonKit or your own custom application. Refer to github page for examples}
14
14
  s.email = %q{ivanvanderbyl@me.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
32
32
  "lib/cloudist.rb",
33
33
  "lib/cloudist/basic_queue.rb",
34
34
  "lib/cloudist/callback.rb",
35
+ "lib/cloudist/callback_methods.rb",
35
36
  "lib/cloudist/core_ext/string.rb",
36
37
  "lib/cloudist/errors.rb",
37
38
  "lib/cloudist/job.rb",
@@ -19,9 +19,14 @@ Cloudist.start {
19
19
 
20
20
  log.info("Dispatching sandwich making job...")
21
21
  enqueue('make.sandwich', {:bread => 'white'})
22
+ # enqueue('make.sandwich', {:bread => 'brown'})
22
23
 
23
24
  # Listen to all sandwich jobs
24
25
  listen('make.sandwich') {
26
+ everything {
27
+ Cloudist.log.info("Job ID: #{job_id}")
28
+ }
29
+
25
30
  progress {
26
31
  Cloudist.log.info("Progress: #{data[:progress]}")
27
32
  }
data/lib/cloudist.rb CHANGED
@@ -17,6 +17,7 @@ require "cloudist/publisher"
17
17
  require "cloudist/payload"
18
18
  require "cloudist/request"
19
19
  require "cloudist/worker"
20
+ require "cloudist/callback_methods"
20
21
  require "cloudist/listener"
21
22
  require "cloudist/callback"
22
23
  require "cloudist/job"
@@ -1,6 +1,7 @@
1
1
  module Cloudist
2
2
  class Callback
3
-
3
+ include Cloudist::CallbackMethods
4
+
4
5
  attr_reader :payload, :source
5
6
 
6
7
  def initialize(source)
@@ -11,18 +12,5 @@ module Cloudist
11
12
  @payload = payload
12
13
  instance_eval(&source)
13
14
  end
14
-
15
- def data
16
- payload.body
17
- end
18
-
19
- def headers
20
- payload.headers
21
- end
22
-
23
- def runtime
24
-
25
- end
26
-
27
15
  end
28
16
  end
@@ -0,0 +1,19 @@
1
+ module Cloudist
2
+ module CallbackMethods
3
+ def data
4
+ payload.body
5
+ end
6
+
7
+ def headers
8
+ payload.headers
9
+ end
10
+
11
+ def job_id
12
+ headers[:message_id]
13
+ end
14
+
15
+ def runtime
16
+
17
+ end
18
+ end
19
+ end
@@ -1,5 +1,6 @@
1
1
  module Cloudist
2
2
  class Listener
3
+ include Cloudist::CallbackMethods
3
4
 
4
5
  attr_reader :job_queue_name, :job_id, :callbacks
5
6
 
@@ -30,6 +31,13 @@ module Cloudist
30
31
 
31
32
  key = [payload.message_type.to_s, payload.headers[:event]].compact.join(':')
32
33
 
34
+ # If we want to get a callback on every event, do it here
35
+ if callbacks.has_key?('everything')
36
+ callbacks['everything'].each do |c|
37
+ c.call(payload)
38
+ end
39
+ end
40
+
33
41
  if callbacks.has_key?(key)
34
42
  callbacks_to_call = callbacks[key]
35
43
  callbacks_to_call.each do |c|
@@ -39,6 +47,10 @@ module Cloudist
39
47
  end
40
48
  end
41
49
 
50
+ def everything(&blk)
51
+ (@callbacks['everything'] ||= []) << Callback.new(blk)
52
+ end
53
+
42
54
  def method_missing(meth, *args, &blk)
43
55
  if @@valid_callbacks.include?(meth.to_s)
44
56
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudist
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ivan Vanderbyl
@@ -188,7 +188,7 @@ dependencies:
188
188
  name: roodi
189
189
  prerelease: false
190
190
  version_requirements: *id011
191
- description: Cloudist is a simple, highly scalable job queue for Ruby applications, it can run within Rails, or on EC2, and does not load your entire Rails stack like delayed job does.
191
+ description: Cloudist is a simple, highly scalable job queue for Ruby applications, it can run within Rails, DaemonKit or your own custom application. Refer to github page for examples
192
192
  email: ivanvanderbyl@me.com
193
193
  executables: []
194
194
 
@@ -213,6 +213,7 @@ files:
213
213
  - lib/cloudist.rb
214
214
  - lib/cloudist/basic_queue.rb
215
215
  - lib/cloudist/callback.rb
216
+ - lib/cloudist/callback_methods.rb
216
217
  - lib/cloudist/core_ext/string.rb
217
218
  - lib/cloudist/errors.rb
218
219
  - lib/cloudist/job.rb