bumbleworks 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -89,8 +89,8 @@ module Bumbleworks
89
89
  # Registers all process_definitions in the configured definitions_directory
90
90
  # with the Ruote engine.
91
91
  #
92
- def load_definitions!
93
- Bumbleworks::ProcessDefinition.create_all_from_directory!(definitions_directory)
92
+ def load_definitions!(options = {})
93
+ Bumbleworks::ProcessDefinition.create_all_from_directory!(definitions_directory, options)
94
94
  end
95
95
 
96
96
  # @public
@@ -14,9 +14,25 @@ module Bumbleworks
14
14
  end
15
15
  end
16
16
 
17
+ # Start a worker, which will begin polling for messages in
18
+ # the workflow storage. You can run multiple workers if you
19
+ # are using a storage that supports them (such as Sequel or
20
+ # Redis, but not Hash) - they all just have to be connected
21
+ # to the same storage, and be able to instantiate participants
22
+ # in the participant list.
23
+ #
24
+ # @param [Hash] options startup options for the worker
25
+ # @option options [Boolean] :verbose whether or not to spin up
26
+ # a "noisy" worker, which will output all messages picked up
27
+ # @option options [Boolean] :join whether or not to join the worker
28
+ # thread; if false, this method will return, and the worker
29
+ # thread will be disconnected, and killed if the calling process
30
+ # exits.
31
+ #
17
32
  def start_worker!(options = {})
18
33
  @dashboard = nil
19
34
  dashboard(:start_worker => true)
35
+ dashboard.noisy = options[:verbose] == true
20
36
  dashboard.join if options[:join] == true
21
37
  dashboard.worker
22
38
  end
@@ -1,3 +1,3 @@
1
1
  module Bumbleworks
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -2,13 +2,13 @@ namespace :bumbleworks do
2
2
  desc 'Start a Bumbleworks worker'
3
3
  task :start_worker => :environment do
4
4
  puts "Starting Bumbleworks worker..." if verbose == true
5
- Bumbleworks.start_worker!(:join => true)
5
+ Bumbleworks.start_worker!(:join => true, :verbose => verbose)
6
6
  end
7
7
 
8
8
  desc 'Reload all process definitions from directory'
9
9
  task :reload_definitions => :environment do
10
10
  puts "Reloading all Bumbleworks process definitions..." if verbose == true
11
- Bumbleworks.load_definitions!
11
+ Bumbleworks.load_definitions!(:verbose => verbose)
12
12
  end
13
13
 
14
14
  desc 'Launch a given Bumbleworks process'
@@ -16,6 +16,7 @@ namespace :bumbleworks do
16
16
  process = args[:process]
17
17
  raise ArgumentError, "Process name required" unless process
18
18
  puts "Launching process '#{process}'..." if verbose == true
19
- Bumbleworks.launch!(process)
19
+ wfid = Bumbleworks.launch!(process)
20
+ puts "WFID: #{wfid}" if verbose == true
20
21
  end
21
22
  end
@@ -37,6 +37,7 @@ describe Bumbleworks::Ruote do
37
37
  it 'joins current thread if :join option is true' do
38
38
  Bumbleworks.storage = {}
39
39
  ::Ruote::Dashboard.stub(:new).and_return(dash_double = double('dash', :worker => nil))
40
+ dash_double.should_receive(:noisy=).with(false)
40
41
  dash_double.should_receive(:join)
41
42
  described_class.start_worker!(:join => true)
42
43
  end
@@ -44,9 +45,17 @@ describe Bumbleworks::Ruote do
44
45
  it 'returns if :join option not true' do
45
46
  Bumbleworks.storage = {}
46
47
  ::Ruote::Dashboard.stub(:new).and_return(dash_double = double('dash', :worker => nil))
48
+ dash_double.should_receive(:noisy=).with(false)
47
49
  dash_double.should_receive(:join).never
48
50
  described_class.start_worker!
49
51
  end
52
+
53
+ it 'sets dashboard to noisy if :verbose option true' do
54
+ Bumbleworks.storage = {}
55
+ ::Ruote::Dashboard.stub(:new).and_return(dash_double = double('dash', :worker => nil))
56
+ dash_double.should_receive(:noisy=).with(true)
57
+ described_class.start_worker!(:verbose => true)
58
+ end
50
59
  end
51
60
 
52
61
  describe '.register_participants' do
@@ -64,8 +64,8 @@ describe Bumbleworks do
64
64
  it 'creates all definitions from directory' do
65
65
  described_class.stub(:definitions_directory).and_return(:defs_dir)
66
66
  described_class.storage = {}
67
- Bumbleworks::ProcessDefinition.should_receive(:create_all_from_directory!).with(:defs_dir)
68
- described_class.load_definitions!
67
+ Bumbleworks::ProcessDefinition.should_receive(:create_all_from_directory!).with(:defs_dir, :fake_options)
68
+ described_class.load_definitions!(:fake_options)
69
69
  end
70
70
  end
71
71
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bumbleworks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-05-21 00:00:00.000000000 Z
15
+ date: 2013-05-22 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: ruote