sidestate 0.2.2 → 0.2.3

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.
@@ -4,7 +4,8 @@ module Sidestate::Hook
4
4
  extend Sidestate::Hook::ClassMethods
5
5
  has_many aasm_state_collection
6
6
 
7
- after_save :save_aasm_state_object
7
+ after_create :save_aasm_state_object_for_new_record
8
+ after_update :save_aasm_state_object
8
9
 
9
10
  define_method(aasm_state_object) do
10
11
  aasm_state_collection.last
@@ -47,6 +48,10 @@ module Sidestate::Hook
47
48
  aasm_state_collection.create! :name => new_state.to_s, self.class.name.underscore.to_sym => self
48
49
  end
49
50
 
51
+ def save_aasm_state_object_for_new_record
52
+ aasm_state_collection.create! :name => aasm_current_state.to_s, self.class.name.underscore.to_sym => self
53
+ end
54
+
50
55
  def aasm_state_collection
51
56
  send(self.class.aasm_state_collection)
52
57
  end
@@ -7,6 +7,11 @@ describe Sidestate::Hook do
7
7
  article.article_state.should_not be_nil
8
8
  end
9
9
 
10
+ it "should only create one state object when the model is created" do
11
+ article = Article.create
12
+ article.article_states.length.should == 1
13
+ end
14
+
10
15
  it "should set the state accordingly" do
11
16
  Article.create.article_state.name.should == 'draft'
12
17
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 2
9
- version: 0.2.2
8
+ - 3
9
+ version: 0.2.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Pat Allan
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-30 00:00:00 +11:00
17
+ date: 2010-04-29 00:00:00 +10:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency