transitions 0.0.14 → 0.0.16
Sign up to get free protection for your applications and to get access to all the features.
- 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!
|