glebtv_mongoid_userstamp 0.4.0 → 0.10.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 +5 -5
- data/Gemfile +1 -1
- data/README.md +10 -7
- data/lib/mongoid/userstamp/railtie.rb +1 -2
- data/lib/mongoid/userstamp/user.rb +3 -4
- data/lib/mongoid/userstamp/version.rb +1 -2
- data/lib/mongoid/userstamp.rb +4 -4
- data/lib/mongoid_userstamp.rb +1 -1
- data/mongoid_mongoid_userstamp.gemspec +4 -5
- data/spec/mongoid/userstamp_spec.rb +12 -0
- data/spec/mongoid.yml +11 -0
- data/spec/spec_helper.rb +7 -6
- metadata +20 -28
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 77649687478def5c2d3b302346acb4aaea31d765a1b67556a0a509f918ef45ab
|
|
4
|
+
data.tar.gz: be8a0be3f6870fbea333d90c03501be64c4a0839c34a172a7e2749832da41ca4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: aa8911e23c3115c20b1c83054bc6ea0b68703b8f66b1870abd936f3e267d3dd5b3e437b8928ed9de01b65755543cbd3557eaf7ec45e1701dc5391b6a65684088
|
|
7
|
+
data.tar.gz: b07e80c7a13454f9eb5239074e5dbd2e785a81500d9cde28e23745a8cd294672e121b852649fff7bd0c627ca6ae1bdcb0e7ff28717e265218c5f539d49130a95
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -3,23 +3,26 @@
|
|
|
3
3
|
This fork is INCOMPATIBLE with upstream due to different default field names
|
|
4
4
|
|
|
5
5
|
This fork uses actual mongoid belongs_to relations instead of low level work with BSON fields. Primary reason for doing
|
|
6
|
-
this is to support eager loading for creator/updater
|
|
6
|
+
this is to support eager loading for creator/updater relation.
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
Also, this gem uses [RequestStore](https://github.com/steveklabnik/request_store) instead of a thread local variable.
|
|
9
|
+
|
|
10
|
+
Current user is availiable to you any time via ```RequestStore.store[:user]```
|
|
11
|
+
|
|
12
|
+
MongoidUserstamp adds stamp columns for created by and updated by information within Rails applications using Mongoid ODM.
|
|
10
13
|
|
|
11
14
|
## Version Support
|
|
12
15
|
|
|
13
16
|
MongoidUserstamp is tested on the following versions:
|
|
14
17
|
|
|
15
|
-
* Ruby 1.
|
|
16
|
-
* Rails
|
|
17
|
-
* Mongoid
|
|
18
|
+
* Ruby 2.1.2
|
|
19
|
+
* Rails 4
|
|
20
|
+
* Mongoid 4
|
|
18
21
|
|
|
19
22
|
## Install
|
|
20
23
|
|
|
21
24
|
```ruby
|
|
22
|
-
gem '
|
|
25
|
+
gem 'glebtv_mongoid_userstamp'
|
|
23
26
|
```
|
|
24
27
|
|
|
25
28
|
## Usage
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
|
2
1
|
module Mongoid
|
|
3
2
|
module Userstamp
|
|
4
3
|
class Railtie < Rails::Railtie
|
|
5
4
|
ActiveSupport.on_load :action_controller do
|
|
6
|
-
|
|
5
|
+
before_action do |c|
|
|
7
6
|
unless Mongoid::Userstamp.config.user_model.respond_to? :current
|
|
8
7
|
Mongoid::Userstamp.config.user_model.send(
|
|
9
8
|
:include,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
|
2
1
|
module Mongoid
|
|
3
2
|
module Userstamp
|
|
4
3
|
module User
|
|
@@ -6,17 +5,17 @@ module Mongoid
|
|
|
6
5
|
|
|
7
6
|
included do
|
|
8
7
|
def current?
|
|
9
|
-
!
|
|
8
|
+
!RequestStore.store[:user].nil? && self._id == RequestStore.store[:user]._id
|
|
10
9
|
end
|
|
11
10
|
end
|
|
12
11
|
|
|
13
12
|
module ClassMethods
|
|
14
13
|
def current
|
|
15
|
-
|
|
14
|
+
RequestStore.store[:user]
|
|
16
15
|
end
|
|
17
16
|
|
|
18
17
|
def current=(value)
|
|
19
|
-
|
|
18
|
+
RequestStore.store[:user] = value
|
|
20
19
|
end
|
|
21
20
|
|
|
22
21
|
def do_as(user, &block)
|
data/lib/mongoid/userstamp.rb
CHANGED
|
@@ -3,11 +3,11 @@ module Mongoid
|
|
|
3
3
|
extend ActiveSupport::Concern
|
|
4
4
|
|
|
5
5
|
included do
|
|
6
|
-
belongs_to Userstamp.config.creator_field, class_name: Userstamp.config.user_model_name
|
|
7
|
-
belongs_to Userstamp.config.updater_field, class_name: Userstamp.config.user_model_name
|
|
6
|
+
belongs_to Userstamp.config.creator_field, class_name: Userstamp.config.user_model_name, autosave: false, optional: true
|
|
7
|
+
belongs_to Userstamp.config.updater_field, class_name: Userstamp.config.user_model_name, autosave: false, optional: true
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
before_validation :set_updater
|
|
10
|
+
before_validation :set_creator
|
|
11
11
|
|
|
12
12
|
protected
|
|
13
13
|
|
data/lib/mongoid_userstamp.rb
CHANGED
|
@@ -16,12 +16,11 @@ Gem::Specification.new do |s|
|
|
|
16
16
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
|
17
17
|
s.require_paths = ['lib']
|
|
18
18
|
|
|
19
|
-
s.post_install_message = File.read('UPGRADING') if File.
|
|
19
|
+
s.post_install_message = File.read('UPGRADING') if File.exist?('UPGRADING')
|
|
20
|
+
|
|
21
|
+
s.add_dependency 'mongoid', ['>= 6.0.0', '< 9.0']
|
|
22
|
+
s.add_runtime_dependency 'request_store'
|
|
20
23
|
|
|
21
|
-
s.add_runtime_dependency 'mongoid', '~> 4.0.0.beta1'
|
|
22
24
|
s.add_development_dependency 'rake'
|
|
23
25
|
s.add_development_dependency 'rspec'
|
|
24
|
-
s.add_development_dependency 'yard'
|
|
25
|
-
s.add_development_dependency 'gem-release'
|
|
26
26
|
end
|
|
27
|
-
|
|
@@ -130,6 +130,18 @@ describe Mongoid::Userstamp do
|
|
|
130
130
|
end
|
|
131
131
|
subject { Novel.new(name: 'Ethyl the Aardvark goes Quantity Surveying') }
|
|
132
132
|
|
|
133
|
+
context 'when created without user' do
|
|
134
|
+
before do
|
|
135
|
+
User.current = nil
|
|
136
|
+
subject.save!
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
it { expect(subject.c_by_id).to eq(nil) }
|
|
140
|
+
it { expect(subject.c_by).to eq(nil) }
|
|
141
|
+
it { expect(subject.u_by_id).to eq(nil) }
|
|
142
|
+
it { expect(subject.u_by).to eq(nil) }
|
|
143
|
+
end
|
|
144
|
+
|
|
133
145
|
context 'when created by a user' do
|
|
134
146
|
before do
|
|
135
147
|
User.current = user_1
|
data/spec/mongoid.yml
ADDED
data/spec/spec_helper.rb
CHANGED
|
@@ -7,19 +7,20 @@ require 'active_support/all'
|
|
|
7
7
|
require 'mongoid'
|
|
8
8
|
require 'mongoid_userstamp'
|
|
9
9
|
|
|
10
|
-
Mongoid.
|
|
11
|
-
config.connect_to(
|
|
12
|
-
'mongoid_userstamp_test'
|
|
13
|
-
)
|
|
14
|
-
end
|
|
10
|
+
Mongoid.load!("#{File.dirname(__FILE__)}/mongoid.yml", :test)
|
|
15
11
|
|
|
16
|
-
|
|
12
|
+
begin
|
|
13
|
+
Object.send :remove_const, :Config
|
|
14
|
+
rescue Exception => e
|
|
15
|
+
end
|
|
17
16
|
Config = RbConfig
|
|
18
17
|
|
|
19
18
|
Dir[File.expand_path('../support/**/*.rb', __FILE__)].each do |f|
|
|
20
19
|
require f
|
|
21
20
|
end
|
|
22
21
|
|
|
22
|
+
Mongo::Logger.logger.level = ::Logger::FATAL
|
|
23
|
+
|
|
23
24
|
RSpec.configure do |config|
|
|
24
25
|
config.mock_with :rspec
|
|
25
26
|
|
metadata
CHANGED
|
@@ -1,53 +1,45 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: glebtv_mongoid_userstamp
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.10.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GlebTv
|
|
8
8
|
- Thomas Boerger
|
|
9
9
|
- Johnny Shields
|
|
10
|
-
autorequire:
|
|
10
|
+
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2024-04-25 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: mongoid
|
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
|
18
18
|
requirements:
|
|
19
|
-
- - "
|
|
19
|
+
- - ">="
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: 6.0.0
|
|
22
|
+
- - "<"
|
|
20
23
|
- !ruby/object:Gem::Version
|
|
21
|
-
version:
|
|
24
|
+
version: '9.0'
|
|
22
25
|
type: :runtime
|
|
23
26
|
prerelease: false
|
|
24
27
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
requirements:
|
|
26
|
-
- - "~>"
|
|
27
|
-
- !ruby/object:Gem::Version
|
|
28
|
-
version: 4.0.0.beta1
|
|
29
|
-
- !ruby/object:Gem::Dependency
|
|
30
|
-
name: rake
|
|
31
|
-
requirement: !ruby/object:Gem::Requirement
|
|
32
28
|
requirements:
|
|
33
29
|
- - ">="
|
|
34
30
|
- !ruby/object:Gem::Version
|
|
35
|
-
version:
|
|
36
|
-
|
|
37
|
-
prerelease: false
|
|
38
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
39
|
-
requirements:
|
|
40
|
-
- - ">="
|
|
31
|
+
version: 6.0.0
|
|
32
|
+
- - "<"
|
|
41
33
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: '0'
|
|
34
|
+
version: '9.0'
|
|
43
35
|
- !ruby/object:Gem::Dependency
|
|
44
|
-
name:
|
|
36
|
+
name: request_store
|
|
45
37
|
requirement: !ruby/object:Gem::Requirement
|
|
46
38
|
requirements:
|
|
47
39
|
- - ">="
|
|
48
40
|
- !ruby/object:Gem::Version
|
|
49
41
|
version: '0'
|
|
50
|
-
type: :
|
|
42
|
+
type: :runtime
|
|
51
43
|
prerelease: false
|
|
52
44
|
version_requirements: !ruby/object:Gem::Requirement
|
|
53
45
|
requirements:
|
|
@@ -55,7 +47,7 @@ dependencies:
|
|
|
55
47
|
- !ruby/object:Gem::Version
|
|
56
48
|
version: '0'
|
|
57
49
|
- !ruby/object:Gem::Dependency
|
|
58
|
-
name:
|
|
50
|
+
name: rake
|
|
59
51
|
requirement: !ruby/object:Gem::Requirement
|
|
60
52
|
requirements:
|
|
61
53
|
- - ">="
|
|
@@ -69,7 +61,7 @@ dependencies:
|
|
|
69
61
|
- !ruby/object:Gem::Version
|
|
70
62
|
version: '0'
|
|
71
63
|
- !ruby/object:Gem::Dependency
|
|
72
|
-
name:
|
|
64
|
+
name: rspec
|
|
73
65
|
requirement: !ruby/object:Gem::Requirement
|
|
74
66
|
requirements:
|
|
75
67
|
- - ">="
|
|
@@ -104,6 +96,7 @@ files:
|
|
|
104
96
|
- lib/mongoid/userstamp/version.rb
|
|
105
97
|
- lib/mongoid_userstamp.rb
|
|
106
98
|
- mongoid_mongoid_userstamp.gemspec
|
|
99
|
+
- spec/mongoid.yml
|
|
107
100
|
- spec/mongoid/userstamp_spec.rb
|
|
108
101
|
- spec/spec_helper.rb
|
|
109
102
|
- spec/support/book.rb
|
|
@@ -112,7 +105,7 @@ homepage: https://github.com/glebtv/mongoid_userstamp
|
|
|
112
105
|
licenses:
|
|
113
106
|
- MIT
|
|
114
107
|
metadata: {}
|
|
115
|
-
post_install_message:
|
|
108
|
+
post_install_message:
|
|
116
109
|
rdoc_options: []
|
|
117
110
|
require_paths:
|
|
118
111
|
- lib
|
|
@@ -127,14 +120,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
127
120
|
- !ruby/object:Gem::Version
|
|
128
121
|
version: '0'
|
|
129
122
|
requirements: []
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
signing_key:
|
|
123
|
+
rubygems_version: 3.4.10
|
|
124
|
+
signing_key:
|
|
133
125
|
specification_version: 4
|
|
134
126
|
summary: Userstamp for Mongoid
|
|
135
127
|
test_files:
|
|
128
|
+
- spec/mongoid.yml
|
|
136
129
|
- spec/mongoid/userstamp_spec.rb
|
|
137
130
|
- spec/spec_helper.rb
|
|
138
131
|
- spec/support/book.rb
|
|
139
132
|
- spec/support/user.rb
|
|
140
|
-
has_rdoc:
|