aasm 2.1.5 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,7 @@
1
+ = Alternatives
2
+
3
+ If you are looking for an alternative to AASM, I would highly suggest transitions: http://github.com/qoobaa/transitions
4
+
1
5
  = AASM - Ruby state machines
2
6
 
3
7
  This package contains AASM, a library for adding finite state machines to Ruby classes.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.5
1
+ 2.2.0
@@ -0,0 +1,94 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{aasm}
8
+ s.version = "2.2.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Scott Barron", "Scott Petersen", "Travis Tilley"]
12
+ s.date = %q{2010-09-13}
13
+ s.description = %q{AASM is a continuation of the acts as state machine rails plugin, built for plain Ruby objects.}
14
+ s.email = %q{scott@elitists.net, ttilley@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".gitignore",
22
+ "LICENSE",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "aasm.gemspec",
27
+ "lib/aasm.rb",
28
+ "lib/aasm/aasm.rb",
29
+ "lib/aasm/event.rb",
30
+ "lib/aasm/persistence.rb",
31
+ "lib/aasm/persistence/active_record_persistence.rb",
32
+ "lib/aasm/state.rb",
33
+ "lib/aasm/state_machine.rb",
34
+ "lib/aasm/state_transition.rb",
35
+ "lib/aasm/supporting_classes.rb",
36
+ "spec/functional/conversation.rb",
37
+ "spec/functional/conversation_spec.rb",
38
+ "spec/spec_helper.rb",
39
+ "spec/unit/aasm_spec.rb",
40
+ "spec/unit/active_record_persistence_spec.rb",
41
+ "spec/unit/before_after_callbacks_spec.rb",
42
+ "spec/unit/event_spec.rb",
43
+ "spec/unit/state_spec.rb",
44
+ "spec/unit/state_transition_spec.rb",
45
+ "test/functional/auth_machine_test.rb",
46
+ "test/test_helper.rb",
47
+ "test/unit/aasm_test.rb",
48
+ "test/unit/event_test.rb",
49
+ "test/unit/state_test.rb",
50
+ "test/unit/state_transition_test.rb"
51
+ ]
52
+ s.homepage = %q{http://rubyist.github.com/aasm/}
53
+ s.rdoc_options = ["--charset=UTF-8"]
54
+ s.require_paths = ["lib"]
55
+ s.rubygems_version = %q{1.3.7}
56
+ s.summary = %q{State machine mixin for Ruby objects}
57
+ s.test_files = [
58
+ "spec/functional/conversation.rb",
59
+ "spec/functional/conversation_spec.rb",
60
+ "spec/spec_helper.rb",
61
+ "spec/unit/aasm_spec.rb",
62
+ "spec/unit/active_record_persistence_spec.rb",
63
+ "spec/unit/before_after_callbacks_spec.rb",
64
+ "spec/unit/event_spec.rb",
65
+ "spec/unit/state_spec.rb",
66
+ "spec/unit/state_transition_spec.rb",
67
+ "test/functional/auth_machine_test.rb",
68
+ "test/test_helper.rb",
69
+ "test/unit/aasm_test.rb",
70
+ "test/unit/event_test.rb",
71
+ "test/unit/state_test.rb",
72
+ "test/unit/state_transition_test.rb"
73
+ ]
74
+
75
+ if s.respond_to? :specification_version then
76
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
77
+ s.specification_version = 3
78
+
79
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
80
+ s.add_development_dependency(%q<rspec>, [">= 0"])
81
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
82
+ s.add_development_dependency(%q<sdoc>, [">= 0"])
83
+ else
84
+ s.add_dependency(%q<rspec>, [">= 0"])
85
+ s.add_dependency(%q<shoulda>, [">= 0"])
86
+ s.add_dependency(%q<sdoc>, [">= 0"])
87
+ end
88
+ else
89
+ s.add_dependency(%q<rspec>, [">= 0"])
90
+ s.add_dependency(%q<shoulda>, [">= 0"])
91
+ s.add_dependency(%q<sdoc>, [">= 0"])
92
+ end
93
+ end
94
+
@@ -11,6 +11,7 @@ module AASM
11
11
  unless AASM::StateMachine[base]
12
12
  AASM::StateMachine[base] = AASM::StateMachine.new('')
13
13
  end
14
+ super
14
15
  end
15
16
 
16
17
  module ClassMethods
@@ -13,7 +13,7 @@ module AASM
13
13
  #
14
14
  # Adds
15
15
  #
16
- # before_validation_on_create :aasm_ensure_initial_state
16
+ # before_validation :aasm_ensure_initial_state, :on => :create
17
17
  #
18
18
  # As a result, it doesn't matter when you define your methods - the following 2 are equivalent
19
19
  #
@@ -38,24 +38,28 @@ module AASM
38
38
  base.send(:include, AASM::Persistence::ActiveRecordPersistence::WriteState) unless base.method_defined?(:aasm_write_state)
39
39
  base.send(:include, AASM::Persistence::ActiveRecordPersistence::WriteStateWithoutPersistence) unless base.method_defined?(:aasm_write_state_without_persistence)
40
40
 
41
- if base.respond_to?(:named_scope)
41
+ if base.respond_to?(:named_scope) || base.respond_to?(:scope)
42
42
  base.extend(AASM::Persistence::ActiveRecordPersistence::NamedScopeMethods)
43
43
 
44
44
  base.class_eval do
45
45
  class << self
46
- unless method_defined?(:aasm_state_without_named_scope)
47
- alias_method :aasm_state_without_named_scope, :aasm_state
48
- alias_method :aasm_state, :aasm_state_with_named_scope
46
+ unless method_defined?(:aasm_state_without_scope)
47
+ alias_method :aasm_state_without_scope, :aasm_state
48
+ alias_method :aasm_state, :aasm_state_with_scope
49
49
  end
50
50
  end
51
51
  end
52
52
  end
53
-
54
- base.before_validation_on_create :aasm_ensure_initial_state
53
+
54
+ if ActiveRecord::VERSION::MAJOR >= 3
55
+ base.before_validation(:aasm_ensure_initial_state, :on => :create)
56
+ else
57
+ base.before_validation_on_create(:aasm_ensure_initial_state)
58
+ end
55
59
  end
56
60
 
57
61
  module ClassMethods
58
- # Maps to the aasm_column in the database. Deafults to "aasm_state". You can write:
62
+ # Maps to the aasm_column in the database. Defaults to "aasm_state". You can write:
59
63
  #
60
64
  # create_table :foos do |t|
61
65
  # t.string :name
@@ -237,9 +241,15 @@ module AASM
237
241
  end
238
242
 
239
243
  module NamedScopeMethods
240
- def aasm_state_with_named_scope name, options = {}
241
- aasm_state_without_named_scope name, options
242
- self.named_scope name, :conditions => { "#{table_name}.#{self.aasm_column}" => name.to_s} unless self.respond_to?(name)
244
+ def aasm_state_with_scope name, options = {}
245
+ aasm_state_without_scope name, options
246
+
247
+ unless self.respond_to?(name)
248
+ scope_options = {:conditions => { "#{table_name}.#{self.aasm_column}" => name.to_s}}
249
+ scope_method = ActiveRecord::VERSION::MAJOR >= 3 ? :scope : :named_scope
250
+ self.send(scope_method, name, scope_options)
251
+ end
252
+
243
253
  end
244
254
  end
245
255
  end
@@ -1,5 +1,5 @@
1
- require File.join(File.dirname(__FILE__), "..", "spec_helper")
2
- require File.join(File.dirname(__FILE__), 'conversation')
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require File.expand_path(File.join(File.dirname(__FILE__), 'conversation'))
3
3
 
4
4
  describe Conversation, 'description' do
5
5
  it '.aasm_states should contain all of the states' do
@@ -1,5 +1,5 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
1
+ $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
2
+ $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
3
3
 
4
4
  require 'aasm'
5
5
 
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), '..', 'spec_helper')
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
2
 
3
3
  class Foo
4
4
  include AASM
@@ -236,7 +236,7 @@ describe AASM, '- event firing without persistence' do
236
236
  def foo.aasm_write_state
237
237
  end
238
238
 
239
- foo.should_receive(:aasm_write_state_without_persistence)
239
+ foo.should_receive(:aasm_write_state_without_persistence).twice
240
240
 
241
241
  foo.close
242
242
  end
@@ -1,8 +1,9 @@
1
- require File.join(File.dirname(__FILE__), '..', '..', 'lib', 'aasm')
2
-
3
1
  begin
4
2
  require 'rubygems'
5
3
  require 'active_record'
4
+ require 'logger'
5
+
6
+ ActiveRecord::Base.logger = Logger.new(STDERR)
6
7
 
7
8
  # A dummy class for mocking the activerecord connection class
8
9
  class Connection
@@ -214,16 +215,16 @@ begin
214
215
  end
215
216
 
216
217
  context "Does not already respond_to? the scope name" do
217
- it "should add a named_scope" do
218
- NamedScopeExample.should_receive(:named_scope)
218
+ it "should add a scope" do
219
219
  NamedScopeExample.aasm_state :unknown_scope
220
+ NamedScopeExample.scopes.keys.should include(:unknown_scope)
220
221
  end
221
222
  end
222
223
 
223
224
  context "Already respond_to? the scope name" do
224
- it "should not add a named_scope" do
225
- NamedScopeExample.should_not_receive(:named_scope)
225
+ it "should not add a scope" do
226
226
  NamedScopeExample.aasm_state :new
227
+ NamedScopeExample.scopes.keys.should_not include(:new)
227
228
  end
228
229
  end
229
230
  end
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), '..', 'spec_helper')
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
2
 
3
3
  class Foo2
4
4
  include AASM
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), '..', 'spec_helper')
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
2
 
3
3
  describe AASM::SupportingClasses::Event do
4
4
  before(:each) do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), '..', 'spec_helper')
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
2
 
3
3
  # TODO These are specs ported from original aasm
4
4
  describe AASM::SupportingClasses::State do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), '..', 'spec_helper')
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
2
 
3
3
  describe AASM::SupportingClasses::StateTransition do
4
4
  it 'should set from, to, and opts attr readers' do
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aasm
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.5
4
+ prerelease: false
5
+ segments:
6
+ - 2
7
+ - 2
8
+ - 0
9
+ version: 2.2.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Scott Barron
@@ -11,39 +16,48 @@ autorequire:
11
16
  bindir: bin
12
17
  cert_chain: []
13
18
 
14
- date: 2010-01-30 00:00:00 -05:00
19
+ date: 2010-09-13 00:00:00 -04:00
15
20
  default_executable:
16
21
  dependencies:
17
22
  - !ruby/object:Gem::Dependency
18
23
  name: rspec
19
- type: :development
20
- version_requirement:
21
- version_requirements: !ruby/object:Gem::Requirement
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
22
27
  requirements:
23
28
  - - ">="
24
29
  - !ruby/object:Gem::Version
30
+ segments:
31
+ - 0
25
32
  version: "0"
26
- version:
33
+ type: :development
34
+ version_requirements: *id001
27
35
  - !ruby/object:Gem::Dependency
28
36
  name: shoulda
29
- type: :development
30
- version_requirement:
31
- version_requirements: !ruby/object:Gem::Requirement
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
32
40
  requirements:
33
41
  - - ">="
34
42
  - !ruby/object:Gem::Version
43
+ segments:
44
+ - 0
35
45
  version: "0"
36
- version:
46
+ type: :development
47
+ version_requirements: *id002
37
48
  - !ruby/object:Gem::Dependency
38
49
  name: sdoc
39
- type: :development
40
- version_requirement:
41
- version_requirements: !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ none: false
42
53
  requirements:
43
54
  - - ">="
44
55
  - !ruby/object:Gem::Version
56
+ segments:
57
+ - 0
45
58
  version: "0"
46
- version:
59
+ type: :development
60
+ version_requirements: *id003
47
61
  description: AASM is a continuation of the acts as state machine rails plugin, built for plain Ruby objects.
48
62
  email: scott@elitists.net, ttilley@gmail.com
49
63
  executables: []
@@ -60,6 +74,7 @@ files:
60
74
  - README.rdoc
61
75
  - Rakefile
62
76
  - VERSION
77
+ - aasm.gemspec
63
78
  - lib/aasm.rb
64
79
  - lib/aasm/aasm.rb
65
80
  - lib/aasm/event.rb
@@ -94,21 +109,25 @@ rdoc_options:
94
109
  require_paths:
95
110
  - lib
96
111
  required_ruby_version: !ruby/object:Gem::Requirement
112
+ none: false
97
113
  requirements:
98
114
  - - ">="
99
115
  - !ruby/object:Gem::Version
116
+ segments:
117
+ - 0
100
118
  version: "0"
101
- version:
102
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
+ none: false
103
121
  requirements:
104
122
  - - ">="
105
123
  - !ruby/object:Gem::Version
124
+ segments:
125
+ - 0
106
126
  version: "0"
107
- version:
108
127
  requirements: []
109
128
 
110
129
  rubyforge_project:
111
- rubygems_version: 1.3.5
130
+ rubygems_version: 1.3.7
112
131
  signing_key:
113
132
  specification_version: 3
114
133
  summary: State machine mixin for Ruby objects