aasm 4.0.7 → 4.0.8
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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -0
- data/CHANGELOG.md +4 -0
- data/aasm.gemspec +4 -3
- data/gemfiles/rails_4.2.gemfile +16 -0
- data/lib/aasm/base.rb +7 -7
- data/lib/aasm/instance_base.rb +1 -1
- data/lib/aasm/persistence/active_record_persistence.rb +2 -2
- data/lib/aasm/version.rb +1 -1
- data/spec/unit/complex_example_spec.rb +8 -8
- data/spec/unit/persistence/active_record_persistence_spec.rb +2 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9602429239af9631275cb2f9c1b3c175177aea51
|
4
|
+
data.tar.gz: 1dc343974f7348d43882b5f15908440012dcd6e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0c7e3300ea262db0385d2f4f403a227968ecc42cd99c0cc13eba81b2f356881b9a42b24a33191b286e1573233ca5ff8a9abdacffd51874d763494e66caabb08
|
7
|
+
data.tar.gz: f3ec766f78f6dd8bd9a781220764e35e28dbe0cd8217763a960675202e4001e3a647bb22db7be930a2079d0d832933bc4fc68da5aaa722a130369a2e12579942
|
data/.travis.yml
CHANGED
@@ -8,6 +8,7 @@ rvm:
|
|
8
8
|
- 1.9.3
|
9
9
|
- 2.0.0
|
10
10
|
- 2.1
|
11
|
+
- 2.2
|
11
12
|
# - jruby-18mode # JRuby in 1.8 mode
|
12
13
|
- jruby-19mode # JRuby in 1.9 mode
|
13
14
|
- rbx-2.2.1
|
@@ -18,6 +19,7 @@ gemfile:
|
|
18
19
|
- gemfiles/rails_3.2.gemfile
|
19
20
|
- gemfiles/rails_4.0.gemfile
|
20
21
|
- gemfiles/rails_4.1.gemfile
|
22
|
+
- gemfiles/rails_4.2.gemfile
|
21
23
|
|
22
24
|
matrix:
|
23
25
|
allow_failures:
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,10 @@
|
|
5
5
|
* `aasm_column` has been removed. Use `aasm.attribute_name` instead
|
6
6
|
* `aasm_human_event_name` has been removed. Use `aasm.human_event_name` instead
|
7
7
|
|
8
|
+
## 4.0.8
|
9
|
+
|
10
|
+
* bugfix: may_<event>? should return true or false only (see [issue #200](https://github.com/aasm/aasm/issues/200) for details)
|
11
|
+
|
8
12
|
## 4.0.7
|
9
13
|
|
10
14
|
* bugfix: take private methods into account when checking for callbacks (see [issue #197](https://github.com/aasm/aasm/issues/197) for details)
|
data/aasm.gemspec
CHANGED
@@ -9,10 +9,13 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.email = %q{scott@elitists.net, ttilley@gmail.com, aasm@mt7.de}
|
10
10
|
s.homepage = %q{https://github.com/aasm/aasm}
|
11
11
|
s.summary = %q{State machine mixin for Ruby objects}
|
12
|
-
s.description = %q{AASM is a continuation of the acts
|
12
|
+
s.description = %q{AASM is a continuation of the acts-as-state-machine rails plugin, built for plain Ruby objects.}
|
13
13
|
s.date = Time.now
|
14
14
|
s.licenses = ["MIT"]
|
15
15
|
|
16
|
+
s.platform = Gem::Platform::RUBY
|
17
|
+
s.required_ruby_version = '>= 1.9.3'
|
18
|
+
|
16
19
|
s.add_development_dependency 'rake'
|
17
20
|
s.add_development_dependency 'sdoc'
|
18
21
|
s.add_development_dependency 'rspec'
|
@@ -25,8 +28,6 @@ Gem::Specification.new do |s|
|
|
25
28
|
# s.add_development_dependency 'mime-types', '~> 1.25' # needed by coveralls (>= 2.0 needs Ruby >=1.9.2)
|
26
29
|
# s.add_development_dependency 'coveralls'
|
27
30
|
|
28
|
-
s.platform = Gem::Platform::RUBY
|
29
|
-
# s.required_ruby_version = '>= 1.9.3'
|
30
31
|
s.files = `git ls-files`.split("\n")
|
31
32
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
32
33
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
@@ -0,0 +1,16 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
gem "sqlite3", :platforms => :ruby
|
4
|
+
gem "coveralls"
|
5
|
+
gem 'rubysl', :platforms => :rbx
|
6
|
+
gem 'rubinius-developer_tools', :platforms => :rbx
|
7
|
+
gem "jruby-openssl", :platforms => :jruby
|
8
|
+
gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
|
9
|
+
gem "rails", "4.2.0"
|
10
|
+
|
11
|
+
# mongoid is not yet compatible with Rails >= 4
|
12
|
+
# gem 'mongoid' if Gem::Version.create(RUBY_VERSION.dup) >= Gem::Version.create('1.9.3')
|
13
|
+
|
14
|
+
gem 'sequel'
|
15
|
+
|
16
|
+
gemspec :path => "../"
|
data/lib/aasm/base.rb
CHANGED
@@ -56,12 +56,12 @@ module AASM
|
|
56
56
|
def state(name, options={})
|
57
57
|
@state_machine.add_state(name, @klass, options)
|
58
58
|
|
59
|
-
@klass.send(:define_method, "#{name
|
59
|
+
@klass.send(:define_method, "#{name}?") do
|
60
60
|
aasm.current_state == name
|
61
61
|
end
|
62
62
|
|
63
|
-
unless @klass.const_defined?("STATE_#{name.
|
64
|
-
@klass.const_set("STATE_#{name.
|
63
|
+
unless @klass.const_defined?("STATE_#{name.upcase}")
|
64
|
+
@klass.const_set("STATE_#{name.upcase}", name)
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
@@ -72,16 +72,16 @@ module AASM
|
|
72
72
|
# an addition over standard aasm so that, before firing an event, you can ask
|
73
73
|
# may_event? and get back a boolean that tells you whether the guard method
|
74
74
|
# on the transition will let this happen.
|
75
|
-
@klass.send(:define_method, "may_#{name
|
75
|
+
@klass.send(:define_method, "may_#{name}?") do |*args|
|
76
76
|
aasm.may_fire_event?(name, *args)
|
77
77
|
end
|
78
78
|
|
79
|
-
@klass.send(:define_method, "#{name
|
80
|
-
aasm.current_event = "#{name
|
79
|
+
@klass.send(:define_method, "#{name}!") do |*args, &block|
|
80
|
+
aasm.current_event = "#{name}!".to_sym
|
81
81
|
aasm_fire_event(name, {:persist => true}, *args, &block)
|
82
82
|
end
|
83
83
|
|
84
|
-
@klass.send(:define_method, "#{name
|
84
|
+
@klass.send(:define_method, "#{name}") do |*args, &block|
|
85
85
|
aasm.current_event = name.to_sym
|
86
86
|
aasm_fire_event(name, {:persist => false}, *args, &block)
|
87
87
|
end
|
data/lib/aasm/instance_base.rb
CHANGED
data/lib/aasm/version.rb
CHANGED
@@ -19,24 +19,24 @@ describe 'when being unsuspended' do
|
|
19
19
|
it 'should be able to be unsuspended' do
|
20
20
|
auth.activate!
|
21
21
|
auth.suspend!
|
22
|
-
expect(auth.may_unsuspend?).to
|
22
|
+
expect(auth.may_unsuspend?).to be true
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'should not be able to be unsuspended into active' do
|
26
26
|
auth.suspend!
|
27
|
-
expect(auth.may_unsuspend?(:active)).not_to
|
27
|
+
expect(auth.may_unsuspend?(:active)).not_to be true
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'should be able to be unsuspended into active if polite' do
|
31
31
|
auth.suspend!
|
32
|
-
expect(auth.may_wait?(:waiting, :please)).to
|
32
|
+
expect(auth.may_wait?(:waiting, :please)).to be true
|
33
33
|
auth.wait!(nil, :please)
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'should not be able to be unsuspended into active if not polite' do
|
37
37
|
auth.suspend!
|
38
|
-
expect(auth.may_wait?(:waiting)).not_to
|
39
|
-
expect(auth.may_wait?(:waiting, :rude)).not_to
|
38
|
+
expect(auth.may_wait?(:waiting)).not_to be true
|
39
|
+
expect(auth.may_wait?(:waiting, :rude)).not_to be true
|
40
40
|
expect {auth.wait!(nil, :rude)}.to raise_error(AASM::InvalidTransition)
|
41
41
|
expect {auth.wait!}.to raise_error(AASM::InvalidTransition)
|
42
42
|
end
|
@@ -46,7 +46,7 @@ describe 'when being unsuspended' do
|
|
46
46
|
auth.suspend!
|
47
47
|
auth.unsuspend!
|
48
48
|
|
49
|
-
expect(auth.may_unpassify?).not_to
|
49
|
+
expect(auth.may_unpassify?).not_to be true
|
50
50
|
expect {auth.unpassify!}.to raise_error(AASM::InvalidTransition)
|
51
51
|
end
|
52
52
|
|
@@ -74,11 +74,11 @@ describe 'when being unsuspended' do
|
|
74
74
|
end
|
75
75
|
|
76
76
|
it "should be able to fire known events" do
|
77
|
-
expect(auth.aasm.may_fire_event?(:activate)).to
|
77
|
+
expect(auth.aasm.may_fire_event?(:activate)).to be true
|
78
78
|
end
|
79
79
|
|
80
80
|
it "should not be able to fire unknown events" do
|
81
|
-
expect(auth.aasm.may_fire_event?(:unknown)).to
|
81
|
+
expect(auth.aasm.may_fire_event?(:unknown)).to be false
|
82
82
|
end
|
83
83
|
|
84
84
|
end
|
@@ -257,6 +257,7 @@ describe "instance methods" do
|
|
257
257
|
|
258
258
|
end
|
259
259
|
|
260
|
+
if ActiveRecord::VERSION::MAJOR < 4 && ActiveRecord::VERSION::MINOR < 2 # won't work with Rails >= 4.2
|
260
261
|
describe "direct state column access" do
|
261
262
|
it "accepts false states" do
|
262
263
|
f = FalseState.create!
|
@@ -266,6 +267,7 @@ describe "direct state column access" do
|
|
266
267
|
}.to_not raise_error
|
267
268
|
end
|
268
269
|
end
|
270
|
+
end
|
269
271
|
|
270
272
|
describe 'subclasses' do
|
271
273
|
it "should have the same states as its parent class" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aasm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Barron
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-12-
|
13
|
+
date: 2014-12-31 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
@@ -68,7 +68,7 @@ dependencies:
|
|
68
68
|
- - ">="
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
|
-
description: AASM is a continuation of the acts
|
71
|
+
description: AASM is a continuation of the acts-as-state-machine rails plugin, built
|
72
72
|
for plain Ruby objects.
|
73
73
|
email: scott@elitists.net, ttilley@gmail.com, aasm@mt7.de
|
74
74
|
executables: []
|
@@ -92,6 +92,7 @@ files:
|
|
92
92
|
- gemfiles/rails_3.2.gemfile
|
93
93
|
- gemfiles/rails_4.0.gemfile
|
94
94
|
- gemfiles/rails_4.1.gemfile
|
95
|
+
- gemfiles/rails_4.2.gemfile
|
95
96
|
- lib/aasm.rb
|
96
97
|
- lib/aasm/aasm.rb
|
97
98
|
- lib/aasm/base.rb
|
@@ -177,7 +178,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
177
178
|
requirements:
|
178
179
|
- - ">="
|
179
180
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
181
|
+
version: 1.9.3
|
181
182
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
183
|
requirements:
|
183
184
|
- - ">="
|