state_machine_audits 0.1.1 → 0.1.2
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.
- data/.gitignore +1 -0
- data/README.md +28 -0
- data/lib/generators/state_machine_state_audit/USAGE +5 -0
- data/lib/generators/state_machine_state_audit/state_machine_state_audit_generator.rb +19 -0
- data/lib/generators/state_machine_state_audit/templates/create_state_machine_audits.rb +15 -0
- data/lib/state_machine_audits/version.rb +1 -1
- data/state_machine_audits.gemspec +3 -4
- metadata +19 -48
- data/README +0 -29
data/.gitignore
CHANGED
data/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
## StateMachineAudits
|
2
|
+
This gem is meant to be used in conjunction with the state_machine gem in a Rails3 project. It will hook into before_save and track any state changes that happen in its own database table.
|
3
|
+
|
4
|
+
To that end, you need a migration that looks something like this:
|
5
|
+
|
6
|
+
class CreateStateMachineStateAudits < ActiveRecord::Migration
|
7
|
+
def self.up
|
8
|
+
create_table :state_machine_state_audits do |t|
|
9
|
+
t.string :state_machine_auditable_type
|
10
|
+
t.integer :state_machine_auditable_id
|
11
|
+
t.string :state_field
|
12
|
+
t.string :state
|
13
|
+
t.timestamps
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.down
|
18
|
+
drop_table :state_machine_state_audits
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
After that, you just include the module in your class that uses state_machine like so:
|
23
|
+
|
24
|
+
class SomeClass < ActiveRecord::Base
|
25
|
+
include StateMachineAudits
|
26
|
+
end
|
27
|
+
|
28
|
+
That's it, you're done. Now it will keep a record of each state transition.
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'rails/generators/migration'
|
2
|
+
|
3
|
+
class StateMachineStateAuditsGenerator < Rails::Generators::Base
|
4
|
+
include Rails::Generators::Migration
|
5
|
+
|
6
|
+
class << self
|
7
|
+
def source_root
|
8
|
+
@state_machine_state_audits_source_root ||= File.expand_path('../templates', __FILE__)
|
9
|
+
end
|
10
|
+
|
11
|
+
def next_migration_number path
|
12
|
+
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def create_model_file
|
17
|
+
migration_template 'create_state_machine_state_audits.rb', 'db/migrate/create_state_machine_state_audits.rb'
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class CreateStateMachineStateAudits < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :state_machine_state_audits do |t|
|
4
|
+
t.string :state_machine_auditable_type
|
5
|
+
t.integer :state_machine_auditable_id
|
6
|
+
t.string :state_field
|
7
|
+
t.string :state
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.down
|
13
|
+
drop_table :state_machine_state_audits
|
14
|
+
end
|
15
|
+
end
|
@@ -13,13 +13,12 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.required_rubygems_version = ">= 1.3.6"
|
14
14
|
s.rubyforge_project = "state_machine_audits"
|
15
15
|
|
16
|
-
s.add_development_dependency "bundler", ">= 1.0.
|
16
|
+
s.add_development_dependency "bundler", ">= 1.0.2.1"
|
17
17
|
s.add_development_dependency "rspec", "~> 2.4.0"
|
18
18
|
s.add_development_dependency "sqlite3", "~> 1.3.3"
|
19
19
|
|
20
|
-
s.add_dependency '
|
21
|
-
s.add_dependency '
|
22
|
-
s.add_dependency 'state_machine', '~> 0.9.4'
|
20
|
+
s.add_dependency 'rails', '>= 3.0.0'
|
21
|
+
s.add_dependency 'state_machine', '>= 1.0.2'
|
23
22
|
|
24
23
|
s.files = `git ls-files`.split("\n")
|
25
24
|
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: state_machine_audits
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
8
|
+
- 2
|
9
|
+
version: 0.1.2
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Josh Adams
|
@@ -17,36 +16,31 @@ autorequire:
|
|
17
16
|
bindir: bin
|
18
17
|
cert_chain: []
|
19
18
|
|
20
|
-
date:
|
19
|
+
date: 2012-03-09 00:00:00 -06:00
|
21
20
|
default_executable:
|
22
21
|
dependencies:
|
23
22
|
- !ruby/object:Gem::Dependency
|
24
23
|
name: bundler
|
25
24
|
prerelease: false
|
26
25
|
requirement: &id001 !ruby/object:Gem::Requirement
|
27
|
-
none: false
|
28
26
|
requirements:
|
29
27
|
- - ">="
|
30
28
|
- !ruby/object:Gem::Version
|
31
|
-
hash: 15424057
|
32
29
|
segments:
|
33
30
|
- 1
|
34
31
|
- 0
|
35
|
-
-
|
36
|
-
-
|
37
|
-
|
38
|
-
version: 1.0.0.rc.6
|
32
|
+
- 2
|
33
|
+
- 1
|
34
|
+
version: 1.0.2.1
|
39
35
|
type: :development
|
40
36
|
version_requirements: *id001
|
41
37
|
- !ruby/object:Gem::Dependency
|
42
38
|
name: rspec
|
43
39
|
prerelease: false
|
44
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
45
|
-
none: false
|
46
41
|
requirements:
|
47
42
|
- - ~>
|
48
43
|
- !ruby/object:Gem::Version
|
49
|
-
hash: 31
|
50
44
|
segments:
|
51
45
|
- 2
|
52
46
|
- 4
|
@@ -58,11 +52,9 @@ dependencies:
|
|
58
52
|
name: sqlite3
|
59
53
|
prerelease: false
|
60
54
|
requirement: &id003 !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
55
|
requirements:
|
63
56
|
- - ~>
|
64
57
|
- !ruby/object:Gem::Version
|
65
|
-
hash: 29
|
66
58
|
segments:
|
67
59
|
- 1
|
68
60
|
- 3
|
@@ -71,14 +63,12 @@ dependencies:
|
|
71
63
|
type: :development
|
72
64
|
version_requirements: *id003
|
73
65
|
- !ruby/object:Gem::Dependency
|
74
|
-
name:
|
66
|
+
name: rails
|
75
67
|
prerelease: false
|
76
68
|
requirement: &id004 !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
78
69
|
requirements:
|
79
|
-
- -
|
70
|
+
- - ">="
|
80
71
|
- !ruby/object:Gem::Version
|
81
|
-
hash: 7
|
82
72
|
segments:
|
83
73
|
- 3
|
84
74
|
- 0
|
@@ -87,37 +77,19 @@ dependencies:
|
|
87
77
|
type: :runtime
|
88
78
|
version_requirements: *id004
|
89
79
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
80
|
+
name: state_machine
|
91
81
|
prerelease: false
|
92
82
|
requirement: &id005 !ruby/object:Gem::Requirement
|
93
|
-
none: false
|
94
83
|
requirements:
|
95
|
-
- -
|
84
|
+
- - ">="
|
96
85
|
- !ruby/object:Gem::Version
|
97
|
-
hash: 7
|
98
86
|
segments:
|
99
|
-
-
|
100
|
-
- 0
|
87
|
+
- 1
|
101
88
|
- 0
|
102
|
-
|
89
|
+
- 2
|
90
|
+
version: 1.0.2
|
103
91
|
type: :runtime
|
104
92
|
version_requirements: *id005
|
105
|
-
- !ruby/object:Gem::Dependency
|
106
|
-
name: state_machine
|
107
|
-
prerelease: false
|
108
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
109
|
-
none: false
|
110
|
-
requirements:
|
111
|
-
- - ~>
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
hash: 51
|
114
|
-
segments:
|
115
|
-
- 0
|
116
|
-
- 9
|
117
|
-
- 4
|
118
|
-
version: 0.9.4
|
119
|
-
type: :runtime
|
120
|
-
version_requirements: *id006
|
121
93
|
description:
|
122
94
|
email:
|
123
95
|
- josh@isotope11.com
|
@@ -130,8 +102,11 @@ extra_rdoc_files: []
|
|
130
102
|
files:
|
131
103
|
- .gitignore
|
132
104
|
- Gemfile
|
133
|
-
- README
|
105
|
+
- README.md
|
134
106
|
- Rakefile
|
107
|
+
- lib/generators/state_machine_state_audit/USAGE
|
108
|
+
- lib/generators/state_machine_state_audit/state_machine_state_audit_generator.rb
|
109
|
+
- lib/generators/state_machine_state_audit/templates/create_state_machine_audits.rb
|
135
110
|
- lib/state_machine_audits.rb
|
136
111
|
- lib/state_machine_audits/state_machine_state_audit.rb
|
137
112
|
- lib/state_machine_audits/version.rb
|
@@ -147,20 +122,16 @@ rdoc_options: []
|
|
147
122
|
require_paths:
|
148
123
|
- lib
|
149
124
|
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
-
none: false
|
151
125
|
requirements:
|
152
126
|
- - ">="
|
153
127
|
- !ruby/object:Gem::Version
|
154
|
-
hash: 3
|
155
128
|
segments:
|
156
129
|
- 0
|
157
130
|
version: "0"
|
158
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
|
-
none: false
|
160
132
|
requirements:
|
161
133
|
- - ">="
|
162
134
|
- !ruby/object:Gem::Version
|
163
|
-
hash: 23
|
164
135
|
segments:
|
165
136
|
- 1
|
166
137
|
- 3
|
@@ -169,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
140
|
requirements: []
|
170
141
|
|
171
142
|
rubyforge_project: state_machine_audits
|
172
|
-
rubygems_version: 1.
|
143
|
+
rubygems_version: 1.3.6
|
173
144
|
signing_key:
|
174
145
|
specification_version: 3
|
175
146
|
summary: Audits for the state_machine gem
|
data/README
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
== StateMachineAudits
|
2
|
-
|
3
|
-
This gem is meant to be used in conjunction with the state_machine gem in a Rails3 project. It will hook into before_save and track any state changes that happen in its own database table.
|
4
|
-
|
5
|
-
To that end, you need a migration that looks something like this:
|
6
|
-
|
7
|
-
class CreateStateMachineStateAudits < ActiveRecord::Migration
|
8
|
-
def self.up
|
9
|
-
create_table :state_machine_state_audits do |t|
|
10
|
-
t.string :state_machine_auditable_type
|
11
|
-
t.integer :state_machine_auditable_id
|
12
|
-
t.string :state_field
|
13
|
-
t.string :state
|
14
|
-
t.timestamps
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.down
|
19
|
-
drop_table :state_machine_state_audits
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
After that, you just include the module in your class that uses state_machine like so:
|
24
|
-
|
25
|
-
class SomeClass < ActiveRecord::Base
|
26
|
-
include StateMachineAudits
|
27
|
-
end
|
28
|
-
|
29
|
-
That's it, you're done. Now it will keep a record of each state transition.
|