stator 0.1.7 → 0.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 180601e58af4388c32de7aa763a4bfaa863d3c95
4
- data.tar.gz: fe619ed09b0337182e8a05674fac0c60dce52313
2
+ SHA256:
3
+ metadata.gz: f80f0783f3bbff0062fee1ebbb2e4f32ebb2f4dc8605809aab25273482a5f09f
4
+ data.tar.gz: 8a8f5f91f72f29fae9579048aae6e1e42c105f9fabf29f698b5c2b9c0382279d
5
5
  SHA512:
6
- metadata.gz: 56b0b46471626b08f35f0acd57cea57650c58388d7b87b98b2ffeaedb3ebae1b42dd49d5b0f747e429727613c7fe1957d1cc14adeb96fea680174e3951b82df6
7
- data.tar.gz: 1a502b1af92d195ffcd7167f8374ec83961c9227630a508222c904026c76a3a34031077bd60779e4a518c9320e3400d5432357e2b587a319153355beb8f025fa
6
+ metadata.gz: 21c4d54970b04402dba07658b815c13009bd0dd0a1f8c440202f62fa1f6670848a45abc163815c75d0ca69694343a139e76f5491ac83a768f364efd81c4f7500
7
+ data.tar.gz: '0280f986830d8065267696f1bc264123d75b06688d6327657e83ea7d49db7f95ffdf4f7eca0b1d8e3677cb3758d4e4d3eaee8b3bbba21c96c7e7725f949858ee'
@@ -1 +1 @@
1
- 2.2.3
1
+ 2.5.1
@@ -35,7 +35,7 @@ module Stator
35
35
 
36
36
  def self.included(base)
37
37
  base.class_eval do
38
- before_save :_stator_track_transition
38
+ before_validation :_stator_track_transition, prepend: true
39
39
  end
40
40
  end
41
41
 
@@ -1,7 +1,7 @@
1
1
  module Stator
2
2
  MAJOR = 0
3
- MINOR = 1
4
- PATCH = 7
3
+ MINOR = 2
4
+ PATCH = 0
5
5
  PRERELEASE = nil
6
6
 
7
7
  VERSION = [MAJOR, MINOR, PATCH, PRERELEASE].compact.join('.')
@@ -219,6 +219,15 @@ describe Stator::Model do
219
219
 
220
220
  end
221
221
 
222
+ it 'should prepend the setting of the timestamp so other callbacks can use it' do
223
+ u = User.new
224
+ u.tagged_at.should be_nil
225
+ u.semiactivate
226
+
227
+ u.semiactivated_state_at.should_not be_nil
228
+ u.tagged_at.should_not be_nil
229
+ end
230
+
222
231
  end
223
232
 
224
233
  describe 'aliasing' do
@@ -1,6 +1,7 @@
1
1
  class User < ActiveRecord::Base
2
2
  extend Stator::Model
3
3
 
4
+ before_validation :set_tagged_at
4
5
 
5
6
  # initial state = pending
6
7
  stator track: true do
@@ -85,6 +86,9 @@ class User < ActiveRecord::Base
85
86
  true
86
87
  end
87
88
 
89
+ def set_tagged_at
90
+ self.tagged_at = self.semiactivated_state_at
91
+ end
88
92
  end
89
93
 
90
94
  class Animal < ActiveRecord::Base
@@ -3,6 +3,7 @@ ActiveRecord::Schema.define(:version => 20130628161227) do
3
3
  create_table "users", :force => true do |t|
4
4
  t.string "name"
5
5
  t.string "email"
6
+ t.datetime "tagged_at"
6
7
  t.string "state", :default => 'pending'
7
8
  t.boolean "activated", :default => true
8
9
  t.datetime "created_at", :null => false
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Nelson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-30 00:00:00.000000000 Z
11
+ date: 2018-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  version: '0'
76
76
  requirements: []
77
77
  rubyforge_project:
78
- rubygems_version: 2.6.8
78
+ rubygems_version: 2.7.7
79
79
  signing_key:
80
80
  specification_version: 4
81
81
  summary: The simplest of ActiveRecord state machines