transitions 0.0.14 → 0.0.16
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/.rvmrc +1 -1
- data/CHANGELOG.md +8 -0
- data/Rakefile +1 -1
- data/lib/active_record/transitions.rb +2 -2
- data/lib/transitions/event.rb +3 -3
- data/lib/transitions/version.rb +1 -1
- data/lib/transitions.rb +2 -2
- data/test/db/create_db.rb +2 -2
- data/test/helper.rb +0 -7
- data/test/test_active_record_timestamps.rb +2 -2
- data/transitions.gemspec +3 -3
- metadata +24 -25
- data/Gemfile.lock +0 -54
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm
|
1
|
+
rvm 1.9.3@transitions --create
|
data/CHANGELOG.md
CHANGED
data/Rakefile
CHANGED
data/lib/transitions/event.rb
CHANGED
@@ -40,7 +40,7 @@ module Transitions
|
|
40
40
|
|
41
41
|
def fire(obj, to_state = nil, *args)
|
42
42
|
transitions = @transitions.select { |t| t.from == obj.current_state(@machine ? @machine.name : nil) }
|
43
|
-
raise InvalidTransition, error_message_for_invalid_transitions(obj) if transitions.size == 0
|
43
|
+
raise InvalidTransition, error_message_for_invalid_transitions(obj, to_state) if transitions.size == 0
|
44
44
|
|
45
45
|
next_state = nil
|
46
46
|
transitions.each do |transition|
|
@@ -134,8 +134,8 @@ module Transitions
|
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
137
|
-
def error_message_for_invalid_transitions(obj)
|
138
|
-
"
|
137
|
+
def error_message_for_invalid_transitions(obj, to_state)
|
138
|
+
"Cannot transition to #{to_state || 'default'} from #{obj.current_state} for `#{obj.class.name}` #{obj.class < ActiveRecord::Base && obj.persisted? ? "with ID #{obj.id} " : nil}"
|
139
139
|
end
|
140
140
|
end
|
141
141
|
end
|
data/lib/transitions/version.rb
CHANGED
data/lib/transitions.rb
CHANGED
@@ -54,8 +54,8 @@ module Transitions
|
|
54
54
|
block ? state_machines[name].update(options, &block) : state_machines[name]
|
55
55
|
end
|
56
56
|
|
57
|
-
def available_states
|
58
|
-
state_machines[name].states.map(&:name).
|
57
|
+
def available_states(name = :default)
|
58
|
+
state_machines[name].states.map(&:name).sort_by {|x| x.to_s}
|
59
59
|
end
|
60
60
|
|
61
61
|
def define_state_query_method(state_name)
|
data/test/db/create_db.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
# Use this schema to create all required tables
|
2
2
|
class CreateDb < ActiveRecord::Migration
|
3
3
|
def self.up
|
4
|
-
create_table(:traffic_lights, force
|
4
|
+
create_table(:traffic_lights, :force => true) do |t|
|
5
5
|
t.string :state
|
6
6
|
t.string :name
|
7
7
|
end
|
8
8
|
|
9
|
-
create_table(:orders, force
|
9
|
+
create_table(:orders, :force => true) do |t|
|
10
10
|
t.string :state
|
11
11
|
t.string :order_number
|
12
12
|
t.datetime :paid_at
|
data/test/helper.rb
CHANGED
@@ -4,17 +4,10 @@ require "active_support/all"
|
|
4
4
|
require "active_record"
|
5
5
|
require "mocha"
|
6
6
|
require "db/create_db"
|
7
|
-
require "ruby-debug"
|
8
7
|
|
9
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
10
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
11
8
|
require "transitions"
|
12
9
|
require "active_model/transitions"
|
13
10
|
|
14
|
-
class Test::Unit::TestCase
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
11
|
def create_database
|
19
12
|
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
|
20
13
|
ActiveRecord::Migration.verbose = false
|
@@ -57,7 +57,7 @@ class TestActiveRecordTimestamps < Test::Unit::TestCase
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def create_order(state = nil)
|
60
|
-
Order.create! order_number
|
60
|
+
Order.create! :order_number => SecureRandom.hex(4), :state => state
|
61
61
|
end
|
62
62
|
|
63
63
|
# control case, no timestamp has been set so we should expect default behaviour
|
@@ -106,7 +106,7 @@ class TestActiveRecordTimestamps < Test::Unit::TestCase
|
|
106
106
|
class Order < ActiveRecord::Base
|
107
107
|
include ActiveModel::Transitions
|
108
108
|
state_machine do
|
109
|
-
event :replace, timestamp
|
109
|
+
event :replace, :timestamp => 1 do
|
110
110
|
transitions :from => :prepared, :to => :placed
|
111
111
|
end
|
112
112
|
end
|
data/transitions.gemspec
CHANGED
@@ -5,7 +5,7 @@ Gem::Specification.new do |s|
|
|
5
5
|
s.name = "transitions"
|
6
6
|
s.version = Transitions::VERSION
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
|
-
s.authors = ["Jakub
|
8
|
+
s.authors = ["Jakub Kuzma", "Timo Roessner"]
|
9
9
|
s.email = "timo.roessner@googlemail.com"
|
10
10
|
s.homepage = "http://github.com/troessner/transitions"
|
11
11
|
s.summary = "State machine extracted from ActiveModel"
|
@@ -17,9 +17,9 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.add_development_dependency "bundler", "~> 1"
|
18
18
|
s.add_development_dependency "test-unit", "~> 2.2"
|
19
19
|
s.add_development_dependency "mocha"
|
20
|
-
s.add_development_dependency "
|
20
|
+
s.add_development_dependency "rake"
|
21
|
+
s.add_development_dependency "sqlite3"
|
21
22
|
s.add_development_dependency "activerecord", "~> 3"
|
22
|
-
s.add_development_dependency "ruby-debug19"
|
23
23
|
|
24
24
|
s.files = `git ls-files`.split("\n")
|
25
25
|
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
metadata
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: transitions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
- Jakub
|
9
|
-
- Timo
|
8
|
+
- Jakub Kuzma
|
9
|
+
- Timo Roessner
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-04-
|
13
|
+
date: 2012-04-18 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
17
|
-
requirement: &
|
17
|
+
requirement: &75905730 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '1'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *75905730
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: test-unit
|
28
|
-
requirement: &
|
28
|
+
requirement: &75904950 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '2.2'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *75904950
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: mocha
|
39
|
-
requirement: &
|
39
|
+
requirement: &75904680 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *75904680
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
50
|
-
requirement: &
|
49
|
+
name: rake
|
50
|
+
requirement: &75886600 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,29 +55,29 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *75886600
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
|
-
name:
|
61
|
-
requirement: &
|
60
|
+
name: sqlite3
|
61
|
+
requirement: &75886220 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
|
-
- -
|
64
|
+
- - ! '>='
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: '
|
66
|
+
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *75886220
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
72
|
-
requirement: &
|
71
|
+
name: activerecord
|
72
|
+
requirement: &75885690 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
77
|
+
version: '3'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *75885690
|
81
81
|
description: Lightweight state machine extracted from ActiveModel
|
82
82
|
email: timo.roessner@googlemail.com
|
83
83
|
executables: []
|
@@ -89,7 +89,6 @@ files:
|
|
89
89
|
- .travis.yml
|
90
90
|
- CHANGELOG.md
|
91
91
|
- Gemfile
|
92
|
-
- Gemfile.lock
|
93
92
|
- LICENSE
|
94
93
|
- README.rdoc
|
95
94
|
- Rakefile
|
@@ -130,7 +129,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
130
129
|
version: '0'
|
131
130
|
segments:
|
132
131
|
- 0
|
133
|
-
hash:
|
132
|
+
hash: -702570801
|
134
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
134
|
none: false
|
136
135
|
requirements:
|
data/Gemfile.lock
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
transitions (0.0.14)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: http://rubygems.org/
|
8
|
-
specs:
|
9
|
-
activemodel (3.0.0)
|
10
|
-
activesupport (= 3.0.0)
|
11
|
-
builder (~> 2.1.2)
|
12
|
-
i18n (~> 0.4.1)
|
13
|
-
activerecord (3.0.0)
|
14
|
-
activemodel (= 3.0.0)
|
15
|
-
activesupport (= 3.0.0)
|
16
|
-
arel (~> 1.0.0)
|
17
|
-
tzinfo (~> 0.3.23)
|
18
|
-
activesupport (3.0.0)
|
19
|
-
archive-tar-minitar (0.5.2)
|
20
|
-
arel (1.0.1)
|
21
|
-
activesupport (~> 3.0.0)
|
22
|
-
builder (2.1.2)
|
23
|
-
columnize (0.3.4)
|
24
|
-
i18n (0.4.1)
|
25
|
-
linecache19 (0.5.12)
|
26
|
-
ruby_core_source (>= 0.1.4)
|
27
|
-
mocha (0.9.8)
|
28
|
-
rake
|
29
|
-
rake (0.8.7)
|
30
|
-
ruby-debug-base19 (0.11.25)
|
31
|
-
columnize (>= 0.3.1)
|
32
|
-
linecache19 (>= 0.5.11)
|
33
|
-
ruby_core_source (>= 0.1.4)
|
34
|
-
ruby-debug19 (0.11.6)
|
35
|
-
columnize (>= 0.3.1)
|
36
|
-
linecache19 (>= 0.5.11)
|
37
|
-
ruby-debug-base19 (>= 0.11.19)
|
38
|
-
ruby_core_source (0.1.5)
|
39
|
-
archive-tar-minitar (>= 0.5.2)
|
40
|
-
sqlite3-ruby (1.3.1)
|
41
|
-
test-unit (2.4.1)
|
42
|
-
tzinfo (0.3.23)
|
43
|
-
|
44
|
-
PLATFORMS
|
45
|
-
ruby
|
46
|
-
|
47
|
-
DEPENDENCIES
|
48
|
-
activerecord (~> 3)
|
49
|
-
bundler (~> 1)
|
50
|
-
mocha
|
51
|
-
ruby-debug19
|
52
|
-
sqlite3-ruby
|
53
|
-
test-unit (~> 2.2)
|
54
|
-
transitions!
|