aasm 3.0.18 → 3.0.19

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,10 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
- ## Unreleased
3
+ ## 3.0.19
4
+
5
+ * fixed deprecation warning with Rails 4 (Relation#update_all with conditions is deprecated)
6
+ * fixing issue #69 (ActiveRecord scopes are not chainable)
4
7
 
5
8
  ## 3.0.18
6
9
 
7
- * fixing issue #66
10
+ * fixing issue #66 (state methods not reflecting the current state)
8
11
 
9
12
  ## 3.0.17
10
13
 
data/README.md CHANGED
@@ -80,7 +80,7 @@ class Job
80
80
  state :sleeping, :initial => true, :before_enter => :do_something
81
81
  state :running
82
82
 
83
- event :run, :after => :notify_somebody do
83
+ event :run, :after => Proc.new { |user| notify_somebody(user) } do
84
84
  transitions :from => :sleeping, :to => :running, :on_transition => Proc.new {|obj, *args| obj.set_process(*args) }
85
85
  end
86
86
 
@@ -103,7 +103,7 @@ class Job
103
103
  ...
104
104
  end
105
105
 
106
- def notify_somebody
106
+ def notify_somebody(user)
107
107
  ...
108
108
  end
109
109
 
@@ -13,13 +13,14 @@ Gem::Specification.new do |s|
13
13
  s.date = Time.now
14
14
  s.licenses = ["MIT"]
15
15
 
16
- s.add_development_dependency 'activerecord'
16
+ s.add_development_dependency 'activerecord', '3.2.12'
17
+ # s.add_development_dependency 'activerecord', '4.0.0.rc1'
18
+
17
19
  s.add_development_dependency 'mongoid' if Gem::Version.create(RUBY_VERSION.dup) >= Gem::Version.create('1.9.3')
18
20
  s.add_development_dependency 'rake'
19
21
  s.add_development_dependency 'sdoc'
20
22
  s.add_development_dependency 'rspec', '~> 2.0'
21
23
  s.add_development_dependency 'rr'
22
- s.add_development_dependency 'shoulda'
23
24
  s.add_development_dependency 'sqlite3'
24
25
  s.add_development_dependency 'minitest'
25
26
  # s.add_development_dependency 'debugger'
@@ -82,7 +82,7 @@ module AASM
82
82
  write_attribute(self.class.aasm_column, state.to_s)
83
83
 
84
84
  success = if AASM::StateMachine[self.class].config.skip_validation_on_save
85
- self.class.update_all({ self.class.aasm_column => state.to_s }, self.class.primary_key => self.id) == 1
85
+ self.class.where(self.class.primary_key => self.id).update_all(self.class.aasm_column => state.to_s) == 1
86
86
  else
87
87
  self.save
88
88
  end
@@ -89,10 +89,21 @@ module AASM
89
89
  state_without_scope(name, *args)
90
90
  unless @clazz.respond_to?(name)
91
91
  if @clazz.ancestors.map {|klass| klass.to_s}.include?("ActiveRecord::Base")
92
- scope_options_hash = {:conditions => { "#{@clazz.table_name}.#{@clazz.aasm_column}" => name.to_s}}
93
- scope_method = ActiveRecord::VERSION::MAJOR >= 3 ? :scope : :named_scope
94
- scope_options = ActiveRecord::VERSION::MAJOR >= 4 ? lambda { where(scope_options_hash[:conditions])} : scope_options_hash
95
- @clazz.send(scope_method, name, scope_options)
92
+
93
+ conditions = {"#{@clazz.table_name}.#{@clazz.aasm_column}" => name.to_s}
94
+ if ActiveRecord::VERSION::MAJOR >= 4
95
+ @clazz.class_eval do
96
+ scope name, lambda { where(conditions) }
97
+ end
98
+ elsif ActiveRecord::VERSION::MAJOR >= 3
99
+ @clazz.class_eval do
100
+ scope name, where(conditions)
101
+ end
102
+ else
103
+ @clazz.class_eval do
104
+ named_scope name, :conditions => conditions
105
+ end
106
+ end
96
107
  elsif @clazz.ancestors.map {|klass| klass.to_s}.include?("Mongoid::Document")
97
108
  scope_options = lambda { @clazz.send(:where, {@clazz.aasm_column.to_sym => name.to_s}) }
98
109
  @clazz.send(:scope, name, scope_options)
@@ -1,3 +1,3 @@
1
1
  module AASM
2
- VERSION = "3.0.18"
2
+ VERSION = "3.0.19"
3
3
  end
@@ -81,7 +81,7 @@ describe "named scopes with the old DSL" do
81
81
  context "Does not already respond_to? the scope name" do
82
82
  it "should add a scope" do
83
83
  Simple.should respond_to(:unknown_scope)
84
- Simple.unknown_scope.class.should == ActiveRecord::Relation
84
+ SimpleNewDsl.unknown_scope.is_a?(ActiveRecord::Relation).should be_true
85
85
  end
86
86
  end
87
87
 
@@ -99,7 +99,7 @@ describe "named scopes with the new DSL" do
99
99
  context "Does not already respond_to? the scope name" do
100
100
  it "should add a scope" do
101
101
  SimpleNewDsl.should respond_to(:unknown_scope)
102
- SimpleNewDsl.unknown_scope.class.should == ActiveRecord::Relation
102
+ SimpleNewDsl.unknown_scope.is_a?(ActiveRecord::Relation).should be_true
103
103
  end
104
104
  end
105
105
 
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: 3.0.18
4
+ version: 3.0.19
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,22 +12,22 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-05-16 00:00:00.000000000 Z
15
+ date: 2013-05-29 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activerecord
19
- requirement: &70315275195540 !ruby/object:Gem::Requirement
19
+ requirement: &70095838288580 !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
- - - ! '>='
22
+ - - =
23
23
  - !ruby/object:Gem::Version
24
- version: '0'
24
+ version: 3.2.12
25
25
  type: :development
26
26
  prerelease: false
27
- version_requirements: *70315275195540
27
+ version_requirements: *70095838288580
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: mongoid
30
- requirement: &70315275193680 !ruby/object:Gem::Requirement
30
+ requirement: &70095838287920 !ruby/object:Gem::Requirement
31
31
  none: false
32
32
  requirements:
33
33
  - - ! '>='
@@ -35,10 +35,10 @@ dependencies:
35
35
  version: '0'
36
36
  type: :development
37
37
  prerelease: false
38
- version_requirements: *70315275193680
38
+ version_requirements: *70095838287920
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: rake
41
- requirement: &70315275191760 !ruby/object:Gem::Requirement
41
+ requirement: &70095838287460 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
44
  - - ! '>='
@@ -46,10 +46,10 @@ dependencies:
46
46
  version: '0'
47
47
  type: :development
48
48
  prerelease: false
49
- version_requirements: *70315275191760
49
+ version_requirements: *70095838287460
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: sdoc
52
- requirement: &70315275191120 !ruby/object:Gem::Requirement
52
+ requirement: &70095838287040 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ! '>='
@@ -57,10 +57,10 @@ dependencies:
57
57
  version: '0'
58
58
  type: :development
59
59
  prerelease: false
60
- version_requirements: *70315275191120
60
+ version_requirements: *70095838287040
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rspec
63
- requirement: &70315267341460 !ruby/object:Gem::Requirement
63
+ requirement: &70095838286540 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
66
66
  - - ~>
@@ -68,21 +68,10 @@ dependencies:
68
68
  version: '2.0'
69
69
  type: :development
70
70
  prerelease: false
71
- version_requirements: *70315267341460
71
+ version_requirements: *70095838286540
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: rr
74
- requirement: &70315267340520 !ruby/object:Gem::Requirement
75
- none: false
76
- requirements:
77
- - - ! '>='
78
- - !ruby/object:Gem::Version
79
- version: '0'
80
- type: :development
81
- prerelease: false
82
- version_requirements: *70315267340520
83
- - !ruby/object:Gem::Dependency
84
- name: shoulda
85
- requirement: &70315267339020 !ruby/object:Gem::Requirement
74
+ requirement: &70095838286120 !ruby/object:Gem::Requirement
86
75
  none: false
87
76
  requirements:
88
77
  - - ! '>='
@@ -90,10 +79,10 @@ dependencies:
90
79
  version: '0'
91
80
  type: :development
92
81
  prerelease: false
93
- version_requirements: *70315267339020
82
+ version_requirements: *70095838286120
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: sqlite3
96
- requirement: &70315267338380 !ruby/object:Gem::Requirement
85
+ requirement: &70095838285660 !ruby/object:Gem::Requirement
97
86
  none: false
98
87
  requirements:
99
88
  - - ! '>='
@@ -101,10 +90,10 @@ dependencies:
101
90
  version: '0'
102
91
  type: :development
103
92
  prerelease: false
104
- version_requirements: *70315267338380
93
+ version_requirements: *70095838285660
105
94
  - !ruby/object:Gem::Dependency
106
95
  name: minitest
107
- requirement: &70315267336860 !ruby/object:Gem::Requirement
96
+ requirement: &70095838285240 !ruby/object:Gem::Requirement
108
97
  none: false
109
98
  requirements:
110
99
  - - ! '>='
@@ -112,10 +101,10 @@ dependencies:
112
101
  version: '0'
113
102
  type: :development
114
103
  prerelease: false
115
- version_requirements: *70315267336860
104
+ version_requirements: *70095838285240
116
105
  - !ruby/object:Gem::Dependency
117
106
  name: ruby-debug-completion
118
- requirement: &70315267334180 !ruby/object:Gem::Requirement
107
+ requirement: &70095838284820 !ruby/object:Gem::Requirement
119
108
  none: false
120
109
  requirements:
121
110
  - - ! '>='
@@ -123,10 +112,10 @@ dependencies:
123
112
  version: '0'
124
113
  type: :development
125
114
  prerelease: false
126
- version_requirements: *70315267334180
115
+ version_requirements: *70095838284820
127
116
  - !ruby/object:Gem::Dependency
128
117
  name: coveralls
129
- requirement: &70315267318500 !ruby/object:Gem::Requirement
118
+ requirement: &70095838284400 !ruby/object:Gem::Requirement
130
119
  none: false
131
120
  requirements:
132
121
  - - ! '>='
@@ -134,7 +123,7 @@ dependencies:
134
123
  version: '0'
135
124
  type: :development
136
125
  prerelease: false
137
- version_requirements: *70315267318500
126
+ version_requirements: *70095838284400
138
127
  description: AASM is a continuation of the acts as state machine rails plugin, built
139
128
  for plain Ruby objects.
140
129
  email: scott@elitists.net, ttilley@gmail.com, aasm@mt7.de