state_machine 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.rdoc CHANGED
@@ -1,5 +1,11 @@
1
1
  == master
2
2
 
3
+ == 0.9.2 / 2010-05-24
4
+
5
+ * Fix MongoMapper integration failing in Ruby 1.9.2
6
+ * Fix Rakefile not loading in Ruby 1.9.2 [Andrea Longhi]
7
+ * Fix nil / false :integration configuration not being respected
8
+
3
9
  == 0.9.1 / 2010-05-02
4
10
 
5
11
  * Fix ActiveRecord 2.0.0 - 2.2.3 integrations failing if version info isn't already loaded
data/README.rdoc CHANGED
@@ -110,8 +110,10 @@ Class definition:
110
110
  end
111
111
 
112
112
  event :repair do
113
+ # The first transition that matches the state and passes its conditions
114
+ # will be used
113
115
  transition :stalled => :parked, :if => :auto_shop_busy?
114
- transition :stalled => same # Loopback if we have to
116
+ transition :stalled => same
115
117
  end
116
118
 
117
119
  state :parked do
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ require 'rake/gempackagetask'
6
6
 
7
7
  spec = Gem::Specification.new do |s|
8
8
  s.name = 'state_machine'
9
- s.version = '0.9.1'
9
+ s.version = '0.9.2'
10
10
  s.platform = Gem::Platform::RUBY
11
11
  s.summary = 'Adds support for creating state machines for attributes on any Ruby class'
12
12
  s.description = s.summary
@@ -74,4 +74,4 @@ task :release => :package do
74
74
  Rake::Task['gem:push'].invoke
75
75
  end
76
76
 
77
- load 'lib/tasks/state_machine.rake'
77
+ load File.dirname(__FILE__) + '/lib/tasks/state_machine.rake'
@@ -253,7 +253,7 @@ module StateMachine
253
253
  owner_class.key(attribute, String) unless owner_class.keys.include?(attribute)
254
254
 
255
255
  name = self.name
256
- owner_class.validates_each(attribute, :logic => lambda {
256
+ owner_class.validates_each(attribute, :logic => lambda {|*|
257
257
  machine = self.class.state_machine(name)
258
258
  machine.invalidate(self, :state, :invalid) unless machine.states.match(self)
259
259
  })
@@ -419,7 +419,13 @@ module StateMachine
419
419
  assert_valid_keys(options, :attribute, :initial, :action, :plural, :namespace, :integration, :messages, :use_transactions)
420
420
 
421
421
  # Find an integration that matches this machine's owner class
422
- if integration = options[:integration] ? StateMachine::Integrations.find(options[:integration]) : StateMachine::Integrations.match(owner_class)
422
+ if options.include?(:integration)
423
+ integration = StateMachine::Integrations.find(options[:integration]) if options[:integration]
424
+ else
425
+ integration = StateMachine::Integrations.match(owner_class)
426
+ end
427
+
428
+ if integration
423
429
  extend integration
424
430
  options = integration.defaults.merge(options) if integration.respond_to?(:defaults)
425
431
  end
@@ -377,12 +377,33 @@ end
377
377
 
378
378
  class MachineWithCustomIntegrationTest < Test::Unit::TestCase
379
379
  def setup
380
- StateMachine::Integrations.const_set('Custom', Module.new)
381
- @machine = StateMachine::Machine.new(Class.new, :integration => :custom)
380
+ integration = Module.new do
381
+ def self.matches?(klass)
382
+ true
383
+ end
384
+ end
385
+
386
+ StateMachine::Integrations.const_set('Custom', integration)
382
387
  end
383
388
 
384
- def test_should_be_extended_by_the_integration
385
- assert (class << @machine; ancestors; end).include?(StateMachine::Integrations::Custom)
389
+ def test_should_be_extended_by_the_integration_if_explicit
390
+ machine = StateMachine::Machine.new(Class.new, :integration => :custom)
391
+ assert (class << machine; ancestors; end).include?(StateMachine::Integrations::Custom)
392
+ end
393
+
394
+ def test_should_be_extended_by_the_integration_if_implicit
395
+ machine = StateMachine::Machine.new(Class.new)
396
+ assert (class << machine; ancestors; end).include?(StateMachine::Integrations::Custom)
397
+ end
398
+
399
+ def test_should_not_be_extended_by_the_integration_if_nil
400
+ machine = StateMachine::Machine.new(Class.new, :integration => nil)
401
+ assert !(class << machine; ancestors; end).include?(StateMachine::Integrations::Custom)
402
+ end
403
+
404
+ def test_should_not_be_extended_by_the_integration_if_false
405
+ machine = StateMachine::Machine.new(Class.new, :integration => false)
406
+ assert !(class << machine; ancestors; end).include?(StateMachine::Integrations::Custom)
386
407
  end
387
408
 
388
409
  def teardown
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: state_machine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Pfeifer
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-05-02 00:00:00 -04:00
12
+ date: 2010-05-24 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -22,88 +22,88 @@ extensions: []
22
22
  extra_rdoc_files: []
23
23
 
24
24
  files:
25
- - examples/Car_state.png
26
- - examples/traffic_light.rb
27
- - examples/TrafficLight_state.png
25
+ - examples/AutoShop_state.png
26
+ - examples/vehicle.rb
28
27
  - examples/car.rb
29
- - examples/auto_shop.rb
30
- - examples/rails-rest/view_edit.html.erb
31
- - examples/rails-rest/model.rb
28
+ - examples/Vehicle_state.png
29
+ - examples/rails-rest/view_index.html.erb
30
+ - examples/rails-rest/view_new.html.erb
32
31
  - examples/rails-rest/view_show.html.erb
33
32
  - examples/rails-rest/controller.rb
33
+ - examples/rails-rest/view_edit.html.erb
34
+ - examples/rails-rest/model.rb
34
35
  - examples/rails-rest/migration.rb
35
- - examples/rails-rest/view_new.html.erb
36
- - examples/rails-rest/view_index.html.erb
37
- - examples/AutoShop_state.png
38
- - examples/Vehicle_state.png
39
- - examples/vehicle.rb
40
- - examples/merb-rest/view_edit.html.erb
41
- - examples/merb-rest/model.rb
36
+ - examples/Car_state.png
37
+ - examples/traffic_light.rb
38
+ - examples/merb-rest/view_index.html.erb
39
+ - examples/merb-rest/view_new.html.erb
42
40
  - examples/merb-rest/view_show.html.erb
43
41
  - examples/merb-rest/controller.rb
44
- - examples/merb-rest/view_new.html.erb
45
- - examples/merb-rest/view_index.html.erb
46
- - lib/state_machine/state.rb
47
- - lib/state_machine/machine_collection.rb
48
- - lib/state_machine/initializers/merb.rb
42
+ - examples/merb-rest/view_edit.html.erb
43
+ - examples/merb-rest/model.rb
44
+ - examples/auto_shop.rb
45
+ - examples/TrafficLight_state.png
46
+ - lib/state_machine.rb
47
+ - lib/tasks/state_machine.rake
48
+ - lib/tasks/state_machine.rb
49
+ - lib/state_machine/transition.rb
49
50
  - lib/state_machine/initializers/rails.rb
50
- - lib/state_machine/state_collection.rb
51
- - lib/state_machine/initializers.rb
51
+ - lib/state_machine/initializers/merb.rb
52
+ - lib/state_machine/condition_proxy.rb
53
+ - lib/state_machine/matcher.rb
54
+ - lib/state_machine/state.rb
55
+ - lib/state_machine/assertions.rb
56
+ - lib/state_machine/integrations.rb
57
+ - lib/state_machine/eval_helpers.rb
58
+ - lib/state_machine/event_collection.rb
59
+ - lib/state_machine/matcher_helpers.rb
60
+ - lib/state_machine/guard.rb
52
61
  - lib/state_machine/event.rb
62
+ - lib/state_machine/callback.rb
63
+ - lib/state_machine/machine_collection.rb
53
64
  - lib/state_machine/machine.rb
54
- - lib/state_machine/guard.rb
55
- - lib/state_machine/assertions.rb
56
65
  - lib/state_machine/transition_collection.rb
57
- - lib/state_machine/extensions.rb
58
- - lib/state_machine/integrations/data_mapper/observer.rb
59
- - lib/state_machine/integrations/active_model/observer.rb
60
- - lib/state_machine/integrations/active_model/locale.rb
61
- - lib/state_machine/integrations/sequel.rb
62
- - lib/state_machine/integrations/data_mapper.rb
63
66
  - lib/state_machine/integrations/active_model.rb
64
- - lib/state_machine/integrations/active_record.rb
65
67
  - lib/state_machine/integrations/mongo_mapper.rb
68
+ - lib/state_machine/integrations/data_mapper.rb
69
+ - lib/state_machine/integrations/active_record.rb
70
+ - lib/state_machine/integrations/sequel.rb
66
71
  - lib/state_machine/integrations/active_record/locale.rb
67
- - lib/state_machine/event_collection.rb
68
- - lib/state_machine/eval_helpers.rb
69
- - lib/state_machine/matcher_helpers.rb
72
+ - lib/state_machine/integrations/data_mapper/observer.rb
73
+ - lib/state_machine/integrations/active_model/locale.rb
74
+ - lib/state_machine/integrations/active_model/observer.rb
75
+ - lib/state_machine/state_collection.rb
70
76
  - lib/state_machine/node_collection.rb
71
- - lib/state_machine/callback.rb
72
- - lib/state_machine/integrations.rb
73
- - lib/state_machine/condition_proxy.rb
74
- - lib/state_machine/matcher.rb
75
- - lib/state_machine/transition.rb
76
- - lib/tasks/state_machine.rake
77
- - lib/tasks/state_machine.rb
78
- - lib/state_machine.rb
79
- - test/unit/transition_collection_test.rb
77
+ - lib/state_machine/extensions.rb
78
+ - lib/state_machine/initializers.rb
79
+ - test/classes/switch.rb
80
80
  - test/unit/callback_test.rb
81
- - test/unit/state_machine_test.rb
82
- - test/unit/invalid_event_test.rb
83
- - test/unit/state_collection_test.rb
84
- - test/unit/machine_collection_test.rb
85
- - test/unit/event_test.rb
86
81
  - test/unit/transition_test.rb
87
- - test/unit/matcher_helpers_test.rb
82
+ - test/unit/machine_test.rb
83
+ - test/unit/event_test.rb
84
+ - test/unit/event_collection_test.rb
85
+ - test/unit/invalid_transition_test.rb
86
+ - test/unit/state_collection_test.rb
87
+ - test/unit/invalid_event_test.rb
88
+ - test/unit/assertions_test.rb
89
+ - test/unit/integrations_test.rb
90
+ - test/unit/transition_collection_test.rb
88
91
  - test/unit/guard_test.rb
92
+ - test/unit/eval_helpers_test.rb
93
+ - test/unit/integrations/mongo_mapper_test.rb
89
94
  - test/unit/integrations/data_mapper_test.rb
90
95
  - test/unit/integrations/sequel_test.rb
91
- - test/unit/integrations/mongo_mapper_test.rb
92
96
  - test/unit/integrations/active_model_test.rb
93
97
  - test/unit/integrations/active_record_test.rb
94
- - test/unit/eval_helpers_test.rb
95
- - test/unit/invalid_transition_test.rb
96
- - test/unit/integrations_test.rb
97
- - test/unit/state_test.rb
98
- - test/unit/condition_proxy_test.rb
99
- - test/unit/assertions_test.rb
100
- - test/unit/event_collection_test.rb
101
- - test/unit/machine_test.rb
102
98
  - test/unit/matcher_test.rb
103
99
  - test/unit/node_collection_test.rb
104
- - test/classes/switch.rb
105
- - test/test_helper.rb
100
+ - test/unit/matcher_helpers_test.rb
101
+ - test/unit/state_test.rb
102
+ - test/unit/machine_collection_test.rb
103
+ - test/unit/state_machine_test.rb
104
+ - test/unit/condition_proxy_test.rb
106
105
  - test/functional/state_machine_test.rb
106
+ - test/test_helper.rb
107
107
  - CHANGELOG.rdoc
108
108
  - init.rb
109
109
  - LICENSE
@@ -138,29 +138,29 @@ signing_key:
138
138
  specification_version: 3
139
139
  summary: Adds support for creating state machines for attributes on any Ruby class
140
140
  test_files:
141
- - test/unit/transition_collection_test.rb
142
141
  - test/unit/callback_test.rb
143
- - test/unit/state_machine_test.rb
144
- - test/unit/invalid_event_test.rb
145
- - test/unit/state_collection_test.rb
146
- - test/unit/machine_collection_test.rb
147
- - test/unit/event_test.rb
148
142
  - test/unit/transition_test.rb
149
- - test/unit/matcher_helpers_test.rb
143
+ - test/unit/machine_test.rb
144
+ - test/unit/event_test.rb
145
+ - test/unit/event_collection_test.rb
146
+ - test/unit/invalid_transition_test.rb
147
+ - test/unit/state_collection_test.rb
148
+ - test/unit/invalid_event_test.rb
149
+ - test/unit/assertions_test.rb
150
+ - test/unit/integrations_test.rb
151
+ - test/unit/transition_collection_test.rb
150
152
  - test/unit/guard_test.rb
153
+ - test/unit/eval_helpers_test.rb
154
+ - test/unit/integrations/mongo_mapper_test.rb
151
155
  - test/unit/integrations/data_mapper_test.rb
152
156
  - test/unit/integrations/sequel_test.rb
153
- - test/unit/integrations/mongo_mapper_test.rb
154
157
  - test/unit/integrations/active_model_test.rb
155
158
  - test/unit/integrations/active_record_test.rb
156
- - test/unit/eval_helpers_test.rb
157
- - test/unit/invalid_transition_test.rb
158
- - test/unit/integrations_test.rb
159
- - test/unit/state_test.rb
160
- - test/unit/condition_proxy_test.rb
161
- - test/unit/assertions_test.rb
162
- - test/unit/event_collection_test.rb
163
- - test/unit/machine_test.rb
164
159
  - test/unit/matcher_test.rb
165
160
  - test/unit/node_collection_test.rb
161
+ - test/unit/matcher_helpers_test.rb
162
+ - test/unit/state_test.rb
163
+ - test/unit/machine_collection_test.rb
164
+ - test/unit/state_machine_test.rb
165
+ - test/unit/condition_proxy_test.rb
166
166
  - test/functional/state_machine_test.rb