workflow_on_mongoid 0.8.0.6 → 0.8.0.7

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/.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
-