stampable 0.0.2 → 0.0.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.
- data/.gitignore +1 -1
- data/.travis.yml +4 -0
- data/README.md +9 -3
- data/Rakefile +7 -1
- data/lib/stampable/base.rb +2 -1
- data/lib/stampable/version.rb +1 -1
- data/spec/stampable_spec.rb +13 -0
- metadata +8 -12
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
Stampable gem
|
2
|
-
|
1
|
+
Stampable gem [](http://travis-ci.org/anandagrawal84/stampable)
|
2
|
+
=====================
|
3
3
|
|
4
4
|
Overview
|
5
|
-
|
5
|
+
---------
|
6
6
|
|
7
7
|
The Stampable gem is used to stamp ActiveRecord model with current user. This is a simple gem that stores who modified/created the record in a single field.
|
8
8
|
|
@@ -58,3 +58,9 @@ To specify a default user add following
|
|
58
58
|
```ruby
|
59
59
|
Stampable::Base.config = {:default_user => 'robot'}
|
60
60
|
```
|
61
|
+
|
62
|
+
To skip the modification of stampable fields by some particular users, ex default is background_job
|
63
|
+
|
64
|
+
```ruby
|
65
|
+
Stampable::Base.config = {:except_user_list => ['background_job','user1']}
|
66
|
+
```
|
data/Rakefile
CHANGED
data/lib/stampable/base.rb
CHANGED
@@ -5,7 +5,7 @@ module Stampable
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def self.config
|
8
|
-
@config || {:stamp_field => :modified_by}
|
8
|
+
@config || {:stamp_field => :modified_by, :except_user_list => ['background_job']}
|
9
9
|
end
|
10
10
|
|
11
11
|
def self.included(klass)
|
@@ -15,6 +15,7 @@ module Stampable
|
|
15
15
|
def set_modified_by
|
16
16
|
return unless changed?
|
17
17
|
user_name = Thread.current['current_user'] || Stampable::Base.config[:default_user]
|
18
|
+
return if Stampable::Base.config[:except_user_list].include?(user_name)
|
18
19
|
stamp_writer = (Stampable::Base.config[:stamp_field].to_s + '=').to_sym
|
19
20
|
send(stamp_writer, user_name) if respond_to?(stamp_writer)
|
20
21
|
end
|
data/lib/stampable/version.rb
CHANGED
data/spec/stampable_spec.rb
CHANGED
@@ -73,4 +73,17 @@ describe Stampable do
|
|
73
73
|
model.touched_by.should == 'user'
|
74
74
|
model.modified_by.should == nil
|
75
75
|
end
|
76
|
+
|
77
|
+
it 'should not update the user if it belongs to except user list' do
|
78
|
+
Stampable::Base.config.merge({:except_user_list=>["job"]})
|
79
|
+
|
80
|
+
model = ActiveRecordModel.new
|
81
|
+
model.modified_by = 'some user'
|
82
|
+
Thread.current['current_user'] = 'job'
|
83
|
+
|
84
|
+
model.invoke_before_save
|
85
|
+
|
86
|
+
model.modified_by.should == 'some user'
|
87
|
+
end
|
88
|
+
|
76
89
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stampable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &70098752699180 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70098752699180
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70098752698200 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70098752698200
|
36
36
|
description: Stamp any ActiveRecord model with last created/updated by
|
37
37
|
email:
|
38
38
|
- anand.agrawal84@gmail.com
|
@@ -42,7 +42,9 @@ extensions: []
|
|
42
42
|
extra_rdoc_files: []
|
43
43
|
files:
|
44
44
|
- .gitignore
|
45
|
+
- .travis.yml
|
45
46
|
- Gemfile
|
47
|
+
- Gemfile.lock
|
46
48
|
- README.md
|
47
49
|
- Rakefile
|
48
50
|
- lib/stampable.rb
|
@@ -62,18 +64,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
62
64
|
- - ! '>='
|
63
65
|
- !ruby/object:Gem::Version
|
64
66
|
version: '0'
|
65
|
-
segments:
|
66
|
-
- 0
|
67
|
-
hash: -1196288843142832157
|
68
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
68
|
none: false
|
70
69
|
requirements:
|
71
70
|
- - ! '>='
|
72
71
|
- !ruby/object:Gem::Version
|
73
72
|
version: '0'
|
74
|
-
segments:
|
75
|
-
- 0
|
76
|
-
hash: -1196288843142832157
|
77
73
|
requirements: []
|
78
74
|
rubyforge_project: stampable
|
79
75
|
rubygems_version: 1.8.12
|