aasm 3.0.18 → 3.0.19

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.
@@ -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