workflow_on_mongoid 0.8.0.6 → 0.8.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -2,11 +2,11 @@
2
2
  coverage/*
3
3
  pkg/*
4
4
  scratch_directory/*
5
- tmp/*
6
5
  *.gem
7
6
  RAILS
8
7
  .bundle
9
8
  Gemfile.lock
10
9
  .rvmrc
10
+ .rbenv*
11
11
  rdoc/*
12
12
  doc/*
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - jruby
5
+ before_script:
6
+ - sudo apt-get install -qq graphviz
7
+ services:
8
+ - mongodb
data/Gemfile CHANGED
@@ -1,3 +1,12 @@
1
1
  source :rubygems
2
2
 
3
- gemspec
3
+ gemspec
4
+
5
+ platforms :mri do
6
+ gem 'sqlite3'
7
+ end
8
+
9
+ platforms :jruby do
10
+ gem 'jruby-openssl'
11
+ gem 'activerecord-jdbcsqlite3-adapter'
12
+ end
data/README.rdoc CHANGED
@@ -1,3 +1,5 @@
1
+ {<img src="https://secure.travis-ci.org/bowsersenior/workflow_on_mongoid.png?branch=master" alt="Build Status" />}[http://travis-ci.org/bowsersenior/workflow_on_mongoid]
2
+
1
3
  = Overview
2
4
 
3
5
  == About workflow_on_mongoid
@@ -19,8 +21,6 @@ That is all. Now you can use {Workflow}[http://github.com/geekq/workflow] with y
19
21
 
20
22
  The version numbers of workflow_on_mongoid track the latest supported version of {Workflow}[http://github.com/geekq/workflow] . The major version number (x.x.x) matches the latest supported version of the Workflow gem, while the minor version number (0.7.0.x) tracks changes to workflow_on_mongoid itself.
21
23
 
22
- The current version is 0.8.0.3 .
23
-
24
24
  NOTE: workflow_on_mongoid 0.8.0 uses Mongoid 2.0.0.beta.20 . 0.8.0.1+ uses the latest Mongoid 2.0.0.rc . Please choose the appropriate version of workflow_on_mongoid based on the version of Mongoid you are using (the changes from Mongoid 2.0.0.beta to 2.0.0.rc are significant!)
25
25
 
26
26
  == Example
@@ -30,7 +30,8 @@ NOTE: workflow_on_mongoid 0.8.0 uses Mongoid 2.0.0.beta.20 . 0.8.0.1+ uses the l
30
30
  field :title
31
31
  field :status
32
32
 
33
- include Workflow
33
+ include Workflow # Note this *must* occur after at least one
34
+ # Mongoid::* include, otherwise your status will not be persisted.
34
35
 
35
36
  workflow_column :status
36
37
 
@@ -43,6 +44,7 @@ NOTE: workflow_on_mongoid 0.8.0 uses Mongoid 2.0.0.beta.20 . 0.8.0.1+ uses the l
43
44
  end
44
45
 
45
46
  See the {tests for Mongoid}[http://github.com/bowsersenior/workflow_on_mongoid/blob/master/test/mongoid_test.rb] for more examples.
47
+ Do ensure your <code>include Workflow</code> line occurs after at least one <code>Mongoid::Include</code> line.
46
48
 
47
49
  == Tests
48
50
 
data/Rakefile CHANGED
@@ -2,12 +2,8 @@ require 'bundler'
2
2
  Bundler.setup(:default, :development)
3
3
 
4
4
  require "rake"
5
- require "rake/rdoctask"
6
5
  require 'rake/testtask'
7
6
 
8
- # require "rspec"
9
- # require "rspec/core/rake_task"
10
-
11
7
  $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
12
8
  require "workflow_on_mongoid/version"
13
9
 
@@ -2,5 +2,5 @@
2
2
  module WorkflowOnMongoid #:nodoc
3
3
  # major version number matches the latest supported version of the Workflow gem
4
4
  # minor version number for tracking changes to workflow_on_mongoid itself
5
- VERSION = "0.8.0.6"
5
+ VERSION = "0.8.0.7"
6
6
  end
@@ -1,4 +1,5 @@
1
- # require File.join(File.dirname(__FILE__), 'test_helper')
1
+ test_dir = File.dirname(__FILE__)
2
+ $:.unshift test_dir unless $:.include?(test_dir)
2
3
 
3
4
  require 'test_helper'
4
5
 
data/test/main_test.rb CHANGED
@@ -1,14 +1,20 @@
1
- $LOAD_PATH.unshift File.expand_path( File.dirname(__FILE__) )
1
+ test_dir = File.dirname(__FILE__)
2
+ $:.unshift test_dir unless $:.include?(test_dir)
2
3
 
3
4
  require 'test_helper'
4
5
 
5
6
  $VERBOSE = false
6
7
  require 'active_record/base'
7
- require 'sqlite3'
8
+
9
+ if RUBY_PLATFORM == 'java'
10
+ require 'jdbc/sqlite3'
11
+ else
12
+ require 'sqlite3'
13
+ end
14
+
8
15
  require 'workflow'
9
16
  require 'mocha'
10
17
  require 'stringio'
11
- require 'ruby-debug'
12
18
 
13
19
  ActiveRecord::Migration.verbose = false
14
20
 
@@ -380,6 +386,7 @@ class MainTest < ActiveRecordTestCase
380
386
  test 'diagram generation' do
381
387
  begin
382
388
  $stdout = StringIO.new('', 'w')
389
+ `mkdir -p 'doc'`
383
390
  Workflow::create_workflow_diagram(Order, 'doc')
384
391
  assert_match(/open.+\.pdf/, $stdout.string,
385
392
  'PDF should be generate and a hint be given to the user.')
@@ -439,25 +446,24 @@ class MainTest < ActiveRecordTestCase
439
446
  assert article.rejected?, 'Transition should happen now'
440
447
  end
441
448
 
442
- # published gem doesn't have the `can_?` methods yet!
443
- # test 'can fire event?' do
444
- # c = Class.new do
445
- # include Workflow
446
- # workflow do
447
- # state :newborn do
448
- # event :go_to_school, :transitions_to => :schoolboy
449
- # end
450
- # state :schoolboy do
451
- # event :go_to_college, :transitions_to => :student
452
- # end
453
- # state :student
454
- # end
455
- # end
456
- #
457
- # human = c.new
458
- # assert human.can_go_to_school?
459
- # assert_equal false, human.can_go_to_college?
460
- # end
449
+ test 'can fire event?' do
450
+ c = Class.new do
451
+ include Workflow
452
+ workflow do
453
+ state :newborn do
454
+ event :go_to_school, :transitions_to => :schoolboy
455
+ end
456
+ state :schoolboy do
457
+ event :go_to_college, :transitions_to => :student
458
+ end
459
+ state :student
460
+ end
461
+ end
462
+
463
+ human = c.new
464
+ assert human.can_go_to_school?
465
+ assert_equal false, human.can_go_to_college?
466
+ end
461
467
 
462
468
  test 'workflow graph generation' do
463
469
  Dir.chdir('tmp') do
data/test/mongoid_test.rb CHANGED
@@ -1,3 +1,6 @@
1
+ test_dir = File.dirname(__FILE__)
2
+ $:.unshift test_dir unless $:.include?(test_dir)
3
+
1
4
  require 'test_helper'
2
5
 
3
6
  require 'mongoid'
@@ -1,6 +1,9 @@
1
+ test_dir = File.dirname(__FILE__)
2
+ $:.unshift test_dir unless $:.include?(test_dir)
3
+
1
4
  require 'test_helper'
2
5
 
3
- unless RUBY_VERSION =~ /^1\.9/
6
+ unless RUBY_VERSION =~ /^1\.9/
4
7
  class MultipleWorkflowsTest < ActiveRecordTestCase
5
8
 
6
9
  test 'multiple workflows' do
@@ -52,23 +55,29 @@ unless RUBY_VERSION =~ /^1\.9/
52
55
 
53
56
  end
54
57
 
55
- booking1 = Booking.find_by_title('booking1')
56
- booking1.initialize_workflow
58
+ if RUBY_PLATFORM == 'java'
59
+ # This test fails on jruby...
60
+ # ...not sure why, but all the class << self stuff above looks fishy
61
+ nil
62
+ else
63
+ booking1 = Booking.find_by_title('booking1')
64
+ booking1.initialize_workflow
57
65
 
58
- booking2 = Booking.find_by_title('booking2')
59
- booking2.initialize_workflow
66
+ booking2 = Booking.find_by_title('booking2')
67
+ booking2.initialize_workflow
60
68
 
61
- assert booking1.initial?
62
- booking1.progress!
63
- assert booking1.last?, 'booking1 should transition to the "last" state'
69
+ assert booking1.initial?
70
+ booking1.progress!
71
+ assert booking1.last?, 'booking1 should transition to the "last" state'
64
72
 
65
- assert booking2.initial?
66
- booking2.progress!
67
- assert booking2.intermediate?, 'booking2 should transition to the "intermediate" state'
73
+ assert booking2.initial?
74
+ booking2.progress!
75
+ assert booking2.intermediate?, 'booking2 should transition to the "intermediate" state'
68
76
 
69
- assert booking1.workflow_spec, 'can access the individual workflow specification'
70
- assert_equal 2, booking1.workflow_spec.states.length
71
- assert_equal 3, booking2.workflow_spec.states.length
77
+ assert booking1.workflow_spec, 'can access the individual workflow specification'
78
+ assert_equal 2, booking1.workflow_spec.states.length
79
+ assert_equal 3, booking2.workflow_spec.states.length
80
+ end
72
81
  end
73
82
 
74
83
  class Object
data/test/test_helper.rb CHANGED
@@ -4,6 +4,7 @@ Bundler.setup
4
4
 
5
5
  require 'test/unit'
6
6
  require 'active_record'
7
+
7
8
  require 'workflow_on_mongoid'
8
9
 
9
10
  class << Test::Unit::TestCase
@@ -44,14 +45,22 @@ end
44
45
  require 'mongoid'
45
46
  class MongoidTestCase < Test::Unit::TestCase
46
47
  Mongoid.configure do |config|
47
- config.master = Mongo::Connection.new('127.0.0.1', 27017).db("workflow_on_mongoid")
48
+ if config.respond_to?(:connect_to) # 3.x
49
+ config.connect_to("workflow_on_mongoid")
50
+ else # 2.x
51
+ config.master = Mongo::Connection.new('127.0.0.1', 27017).db("workflow_on_momgoid")
52
+ end
48
53
  end
49
54
 
50
55
  def teardown
51
- Mongoid.master.collections.select do |collection|
52
- collection.name !~ /system/
53
- end.each(&:drop)
56
+ if Mongoid.respond_to?(:purge!) # 3.x
57
+ Mongoid.purge!
58
+ else # 2.x
59
+ Mongoid.master.collections.select do |collection|
60
+ collection.name !~ /system/
61
+ end.each(&:drop)
62
+ end
54
63
  end
55
-
64
+
56
65
  def default_test; end
57
66
  end
@@ -1,4 +1,5 @@
1
- # require File.join(File.dirname(__FILE__), 'test_helper')
1
+ test_dir = File.dirname(__FILE__)
2
+ $:.unshift test_dir unless $:.include?(test_dir)
2
3
 
3
4
  require 'test_helper'
4
5
 
data/tmp/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ # this file is primarily here to force git to store the tmp directory
2
+ *.dot
3
+ *.pdf
@@ -15,14 +15,12 @@ Gem::Specification.new do |s|
15
15
  s.description = "Lets you use the Workflow gem with your Mongoid documents to add state machine functionality."
16
16
 
17
17
  s.add_dependency "workflow", '~>0.8'
18
- s.add_dependency "mongoid", '>=2.0.0.rc.1'
18
+ s.add_dependency "mongoid"
19
19
 
20
- s.add_development_dependency "rake", '0.9.2'
20
+ s.add_development_dependency "rake"
21
21
  s.add_development_dependency "rspec", '>=2.6.0'
22
22
  s.add_development_dependency "activerecord"
23
- s.add_development_dependency "sqlite3-ruby"
24
23
  s.add_development_dependency "mocha"
25
- s.add_development_dependency "ruby-debug"
26
24
 
27
25
  s.required_rubygems_version = ">= 1.3.7"
28
26
  s.files = `git ls-files`.split("\n")
metadata CHANGED
@@ -1,156 +1,124 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: workflow_on_mongoid
3
- version: !ruby/object:Gem::Version
4
- hash: 3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.8.0.7
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 8
9
- - 0
10
- - 6
11
- version: 0.8.0.6
12
6
  platform: ruby
13
- authors:
7
+ authors:
14
8
  - Mani Tadayon
15
9
  autorequire:
16
10
  bindir: bin
17
11
  cert_chain: []
18
-
19
- date: 2011-09-24 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-12-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: workflow
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
18
+ requirements:
27
19
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 27
30
- segments:
31
- - 0
32
- - 8
33
- version: "0.8"
20
+ - !ruby/object:Gem::Version
21
+ version: '0.8'
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: mongoid
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0.8'
30
+ - !ruby/object:Gem::Dependency
31
+ name: mongoid
32
+ requirement: !ruby/object:Gem::Requirement
40
33
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 15424087
45
- segments:
46
- - 2
47
- - 0
48
- - 0
49
- - rc
50
- - 1
51
- version: 2.0.0.rc.1
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
52
38
  type: :runtime
53
- version_requirements: *id002
54
- - !ruby/object:Gem::Dependency
55
- name: rake
56
39
  prerelease: false
57
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
58
49
  none: false
59
- requirements:
60
- - - "="
61
- - !ruby/object:Gem::Version
62
- hash: 63
63
- segments:
64
- - 0
65
- - 9
66
- - 2
67
- version: 0.9.2
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
68
54
  type: :development
69
- version_requirements: *id003
70
- - !ruby/object:Gem::Dependency
71
- name: rspec
72
55
  prerelease: false
73
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
74
57
  none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- hash: 23
79
- segments:
80
- - 2
81
- - 6
82
- - 0
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
83
69
  version: 2.6.0
84
70
  type: :development
85
- version_requirements: *id004
86
- - !ruby/object:Gem::Dependency
87
- name: activerecord
88
71
  prerelease: false
89
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
90
73
  none: false
91
- requirements:
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- hash: 3
95
- segments:
96
- - 0
97
- version: "0"
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 2.6.0
78
+ - !ruby/object:Gem::Dependency
79
+ name: activerecord
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
98
86
  type: :development
99
- version_requirements: *id005
100
- - !ruby/object:Gem::Dependency
101
- name: sqlite3-ruby
102
87
  prerelease: false
103
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
104
89
  none: false
105
- requirements:
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- hash: 3
109
- segments:
110
- - 0
111
- version: "0"
112
- type: :development
113
- version_requirements: *id006
114
- - !ruby/object:Gem::Dependency
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
115
95
  name: mocha
116
- prerelease: false
117
- requirement: &id007 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
118
97
  none: false
119
- requirements:
120
- - - ">="
121
- - !ruby/object:Gem::Version
122
- hash: 3
123
- segments:
124
- - 0
125
- version: "0"
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
126
102
  type: :development
127
- version_requirements: *id007
128
- - !ruby/object:Gem::Dependency
129
- name: ruby-debug
130
103
  prerelease: false
131
- requirement: &id008 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
132
105
  none: false
133
- requirements:
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- hash: 3
137
- segments:
138
- - 0
139
- version: "0"
140
- type: :development
141
- version_requirements: *id008
142
- description: Lets you use the Workflow gem with your Mongoid documents to add state machine functionality.
143
- email:
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ description: Lets you use the Workflow gem with your Mongoid documents to add state
111
+ machine functionality.
112
+ email:
144
113
  - bowsersenior@gmail.com
145
114
  executables: []
146
-
147
115
  extensions: []
148
-
149
- extra_rdoc_files:
116
+ extra_rdoc_files:
150
117
  - MIT_LICENSE
151
118
  - README.rdoc
152
- files:
119
+ files:
153
120
  - .gitignore
121
+ - .travis.yml
154
122
  - Gemfile
155
123
  - MIT_LICENSE
156
124
  - README.rdoc
@@ -165,41 +133,31 @@ files:
165
133
  - test/readme_example.rb
166
134
  - test/test_helper.rb
167
135
  - test/without_active_record_test.rb
136
+ - tmp/.gitignore
168
137
  - workflow_on_mongoid.gemspec
169
138
  homepage: http://github.com/bowsersenior/workflow_on_mongoid
170
139
  licenses: []
171
-
172
140
  post_install_message:
173
- rdoc_options:
141
+ rdoc_options:
174
142
  - --charset=UTF-8
175
- require_paths:
143
+ require_paths:
176
144
  - lib
177
- required_ruby_version: !ruby/object:Gem::Requirement
145
+ required_ruby_version: !ruby/object:Gem::Requirement
178
146
  none: false
179
- requirements:
180
- - - ">="
181
- - !ruby/object:Gem::Version
182
- hash: 3
183
- segments:
184
- - 0
185
- version: "0"
186
- required_rubygems_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
187
152
  none: false
188
- requirements:
189
- - - ">="
190
- - !ruby/object:Gem::Version
191
- hash: 21
192
- segments:
193
- - 1
194
- - 3
195
- - 7
153
+ requirements:
154
+ - - ! '>='
155
+ - !ruby/object:Gem::Version
196
156
  version: 1.3.7
197
157
  requirements: []
198
-
199
158
  rubyforge_project:
200
- rubygems_version: 1.8.6
159
+ rubygems_version: 1.8.24
201
160
  signing_key:
202
161
  specification_version: 3
203
162
  summary: Add Mongoid support to the Workflow gem.
204
163
  test_files: []
205
-