mongoid-userstamps 3.1.0 → 3.3.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/.rubocop.yml +6 -0
- data/.travis.yml +17 -0
- data/CHANGELOG.md +29 -0
- data/Gemfile +12 -4
- data/Rakefile +9 -10
- data/init.rb +1 -2
- data/lib/mongoid-userstamps.rb +1 -4
- data/lib/mongoid/userstamps.rb +8 -11
- data/lib/mongoid/userstamps/config.rb +9 -10
- data/lib/mongoid/userstamps/config/model.rb +13 -8
- data/lib/mongoid/userstamps/config/user.rb +0 -3
- data/lib/mongoid/userstamps/created.rb +4 -7
- data/lib/mongoid/userstamps/deleted.rb +4 -7
- data/lib/mongoid/userstamps/model.rb +0 -1
- data/lib/mongoid/userstamps/railtie.rb +3 -8
- data/lib/mongoid/userstamps/updated.rb +4 -7
- data/lib/mongoid/userstamps/user.rb +2 -4
- data/lib/mongoid/userstamps/version.rb +1 -4
- data/mongoid-userstamps.gemspec +17 -19
- data/spec/spec_helper.rb +9 -10
- data/spec/support/admin.rb +1 -2
- data/spec/support/book.rb +2 -3
- data/spec/support/post.rb +2 -3
- data/spec/support/user.rb +0 -1
- data/spec/unit/gem_config_spec.rb +8 -11
- data/spec/unit/model_config_spec.rb +15 -14
- data/spec/unit/model_spec.rb +41 -36
- data/spec/unit/user_config_spec.rb +5 -8
- data/spec/unit/user_spec.rb +38 -34
- data/spec/unit/userstamp_spec.rb +48 -51
- data/test/config_test.rb +12 -11
- data/test/model_test.rb +12 -13
- data/test/models/archive.rb +0 -1
- data/test/models/comment.rb +1 -2
- data/test/models/person.rb +0 -1
- data/test/models/post.rb +2 -1
- data/test/models/user.rb +0 -1
- data/test/paranoia_test.rb +2 -3
- data/test/test_helper.rb +9 -8
- data/test/user_test.rb +9 -10
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 85b23de4375ea2e8b1ac086aba81768247140873a94326df70d1c70c6d1084a8
|
4
|
+
data.tar.gz: 9aa08d63999497c7960f942dd50a8b47bddf0101a1e656d89cc686c4f79258c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a44d56d797831d102fcc6bf11b64a28c3310321182f85984a0164fe2aef318efe5d1aa04a4eba4856687c73dd92673e5c59a1cb3261e07787fb4a2cbd8763d91
|
7
|
+
data.tar.gz: 8a3c2f14885f76b5155700036e157d25226ff340fb5232440b4587e9615bbdcc17fd1fb322d00635c99078dca330be7c94c2b5bfd6960b075d2a7a6c795b32c8
|
data/.rubocop.yml
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
language: ruby
|
2
|
+
cache: bundler
|
3
|
+
rvm:
|
4
|
+
- 2.4.9
|
5
|
+
- 2.5.7
|
6
|
+
- 2.6.5
|
7
|
+
before_install:
|
8
|
+
- gem install bundler
|
9
|
+
install: bundle update --jobs=3 --retry=3
|
10
|
+
services:
|
11
|
+
- mongodb
|
12
|
+
env:
|
13
|
+
- "MONGOID_VERSION=6.2.0"
|
14
|
+
- "MONGOID_VERSION=6.3.0"
|
15
|
+
- "MONGOID_VERSION=6.4.0"
|
16
|
+
- "MONGOID_VERSION=7.0.0"
|
17
|
+
- "MONGOID_VERSION=7.1.0"
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,34 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 3.2.0
|
4
|
+
|
5
|
+
* Mongoid 7.0 support
|
6
|
+
|
7
|
+
## 3.1.3
|
8
|
+
|
9
|
+
* Mongoid 6.2 support
|
10
|
+
* Rails 5.1 support
|
11
|
+
|
12
|
+
## 3.1.2
|
13
|
+
|
14
|
+
* Mongoid 6.1 support
|
15
|
+
|
16
|
+
## 3.1.1
|
17
|
+
|
18
|
+
* Remove rails 5 warnings
|
19
|
+
|
20
|
+
## 3.1.0
|
21
|
+
|
22
|
+
* Mongoid 6 support
|
23
|
+
|
24
|
+
## 3.0.0.alpha1
|
25
|
+
|
26
|
+
* Mongoid 5 support
|
27
|
+
|
28
|
+
## 2.0.0
|
29
|
+
|
30
|
+
Gem has been imported and rewrote.
|
31
|
+
|
3
32
|
## [0.4.1](https://github.com/tbpro/mongoid_userstamp/releases/tag/v0.4.1) - 2014-08-21
|
4
33
|
|
5
34
|
* Improvement
|
data/Gemfile
CHANGED
@@ -1,9 +1,17 @@
|
|
1
|
-
source
|
1
|
+
source "http://rubygems.org"
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
|
5
|
+
mongoid_version = ENV["MONGOID_VERSION"] || "7.0.0"
|
6
6
|
|
7
|
-
gem
|
8
|
-
gem
|
7
|
+
gem "rake"
|
8
|
+
gem "mongoid", "~> #{mongoid_version}"
|
9
|
+
gem "request_store", require: false
|
9
10
|
|
11
|
+
group :development do
|
12
|
+
gem "simplecov", require: false
|
13
|
+
gem "pry-nav", "~> 0.2.4"
|
14
|
+
gem "standard", "~> 0.1.0"
|
15
|
+
gem "rubocop"
|
16
|
+
gem "rubocop-performance"
|
17
|
+
end
|
data/Rakefile
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
-
require
|
3
|
-
require
|
2
|
+
require "bundler/gem_tasks"
|
3
|
+
require "rake/testtask"
|
4
4
|
|
5
|
-
desc
|
6
|
-
task :
|
5
|
+
desc "Default: run unit tests"
|
6
|
+
task default: :test
|
7
7
|
|
8
|
-
desc
|
8
|
+
desc "Run tests"
|
9
9
|
Rake::TestTask.new(:test) do |t|
|
10
|
-
t.libs <<
|
11
|
-
t.libs <<
|
12
|
-
t.pattern =
|
13
|
-
t.
|
10
|
+
t.libs << "lib"
|
11
|
+
t.libs << "test"
|
12
|
+
t.pattern = "test/**/*_test.rb"
|
13
|
+
t.warning = false
|
14
14
|
end
|
15
|
-
|
data/init.rb
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
|
2
|
-
require 'mongoid_userstamp'
|
1
|
+
require "mongoid_userstamp"
|
data/lib/mongoid-userstamps.rb
CHANGED
data/lib/mongoid/userstamps.rb
CHANGED
@@ -1,13 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require 'mongoid/userstamps/deleted'
|
10
|
-
require 'mongoid/userstamps/railtie' if defined? Rails
|
1
|
+
require "mongoid/userstamps/version"
|
2
|
+
require "mongoid/userstamps/config"
|
3
|
+
require "mongoid/userstamps/user"
|
4
|
+
require "mongoid/userstamps/model"
|
5
|
+
require "mongoid/userstamps/created"
|
6
|
+
require "mongoid/userstamps/updated"
|
7
|
+
require "mongoid/userstamps/deleted"
|
8
|
+
require "mongoid/userstamps/railtie" if defined? Rails
|
11
9
|
|
12
10
|
module Mongoid
|
13
11
|
module Userstamps
|
@@ -27,4 +25,3 @@ module Mongoid
|
|
27
25
|
end
|
28
26
|
end
|
29
27
|
end
|
30
|
-
|
@@ -1,16 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'mongoid/userstamps/config/model'
|
4
|
-
require 'mongoid/userstamps/config/user'
|
1
|
+
require "mongoid/userstamps/config/model"
|
2
|
+
require "mongoid/userstamps/config/user"
|
5
3
|
|
6
4
|
module Mongoid
|
7
5
|
module Userstamps
|
8
6
|
module Config
|
9
7
|
class << self
|
10
|
-
attr_accessor :created_name
|
11
|
-
attr_accessor :updated_name
|
12
|
-
attr_accessor :deleted_name
|
13
|
-
|
14
8
|
DEFAULT_CREATED_NAME = :created_by
|
15
9
|
DEFAULT_UPDATED_NAME = :updated_by
|
16
10
|
DEFAULT_DELETED_NAME = :deleted_by
|
@@ -34,14 +28,20 @@ module Mongoid
|
|
34
28
|
model_classes << klass
|
35
29
|
end
|
36
30
|
|
31
|
+
attr_writer :created_name
|
32
|
+
|
37
33
|
def created_name
|
38
34
|
@created_name ||= DEFAULT_CREATED_NAME
|
39
35
|
end
|
40
36
|
|
37
|
+
attr_writer :updated_name
|
38
|
+
|
41
39
|
def updated_name
|
42
40
|
@updated_name ||= DEFAULT_UPDATED_NAME
|
43
41
|
end
|
44
42
|
|
43
|
+
attr_writer :deleted_name
|
44
|
+
|
45
45
|
def deleted_name
|
46
46
|
@deleted_name ||= DEFAULT_DELETED_NAME
|
47
47
|
end
|
@@ -55,7 +55,7 @@ module Mongoid
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def store(model, value = false)
|
58
|
-
return
|
58
|
+
return unless model
|
59
59
|
key = "mongoid-userstamps/#{model.to_s.underscore}".to_sym
|
60
60
|
store = defined?(RequestStore) ? RequestStore.store : Thread.current
|
61
61
|
if value == false
|
@@ -74,4 +74,3 @@ module Mongoid
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
77
|
-
|
@@ -1,13 +1,10 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
1
|
module Mongoid
|
4
2
|
module Userstamps
|
5
3
|
module Config
|
6
4
|
class Model
|
7
|
-
attr_accessor :user_model
|
8
|
-
|
9
5
|
def initialize(model)
|
10
6
|
@model = model
|
7
|
+
@user_model = nil
|
11
8
|
end
|
12
9
|
|
13
10
|
def config
|
@@ -24,12 +21,20 @@ module Mongoid
|
|
24
21
|
end
|
25
22
|
|
26
23
|
def set_user_model!
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
if Mongoid::VERSION.to_f < 7.0
|
25
|
+
%i[created_name updated_name deleted_name].each do |attr|
|
26
|
+
@model.relations[config.send(attr).to_s].try(:[]=, :class_name, user_model)
|
27
|
+
end
|
28
|
+
else
|
29
|
+
%i[created_name updated_name deleted_name].each do |attr|
|
30
|
+
if @model.relations[config.send(attr).to_s]
|
31
|
+
@model.relations[config.send(attr).to_s].instance_variable_set :@class_name, user_model
|
32
|
+
@model.relations[config.send(attr).to_s].options[:class_name] = user_model
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
30
36
|
end
|
31
37
|
end
|
32
38
|
end
|
33
39
|
end
|
34
40
|
end
|
35
|
-
|
@@ -1,19 +1,17 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
1
|
module Mongoid
|
4
2
|
module Userstamps
|
5
3
|
module Created
|
6
4
|
extend ActiveSupport::Concern
|
7
5
|
|
8
6
|
included do
|
9
|
-
|
7
|
+
unless included_modules.include?(Mongoid::Userstamps::Model)
|
10
8
|
include Mongoid::Userstamps::Model
|
11
9
|
end
|
12
10
|
|
13
11
|
belongs_to userstamps_config.created_name, {
|
14
12
|
class_name: userstamps_model.user_model,
|
15
13
|
inverse_of: nil,
|
16
|
-
optional: true
|
14
|
+
optional: true,
|
17
15
|
}
|
18
16
|
|
19
17
|
set_callback :create, :before, :set_created_by
|
@@ -21,10 +19,9 @@ module Mongoid
|
|
21
19
|
|
22
20
|
def set_created_by
|
23
21
|
user = self.class.current_user
|
24
|
-
return if !user ||
|
25
|
-
|
22
|
+
return if !user || public_send(userstamps_config.created_name)
|
23
|
+
public_send("#{userstamps_config.created_name}=", user)
|
26
24
|
end
|
27
25
|
end
|
28
26
|
end
|
29
27
|
end
|
30
|
-
|
@@ -1,19 +1,17 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
1
|
module Mongoid
|
4
2
|
module Userstamps
|
5
3
|
module Deleted
|
6
4
|
extend ActiveSupport::Concern
|
7
5
|
|
8
6
|
included do
|
9
|
-
|
7
|
+
unless included_modules.include?(Mongoid::Userstamps::Model)
|
10
8
|
include Mongoid::Userstamps::Model
|
11
9
|
end
|
12
10
|
|
13
11
|
belongs_to userstamps_config.deleted_name, {
|
14
12
|
class_name: userstamps_model.user_model,
|
15
13
|
inverse_of: nil,
|
16
|
-
optional: true
|
14
|
+
optional: true,
|
17
15
|
}
|
18
16
|
|
19
17
|
set_callback :destroy, :before, :set_deleted_by
|
@@ -21,10 +19,9 @@ module Mongoid
|
|
21
19
|
|
22
20
|
def set_deleted_by
|
23
21
|
user = self.class.current_user
|
24
|
-
return if !user ||
|
25
|
-
|
22
|
+
return if !user || public_send("#{userstamps_config.deleted_name}_id_changed?")
|
23
|
+
public_send("#{userstamps_config.deleted_name}=", user)
|
26
24
|
end
|
27
25
|
end
|
28
26
|
end
|
29
27
|
end
|
30
|
-
|
@@ -1,20 +1,15 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
1
|
module Mongoid
|
4
2
|
module Userstamps
|
5
3
|
class Railtie < Rails::Railtie
|
6
4
|
# Set current_user from controller reader method
|
7
5
|
ActiveSupport.on_load :action_controller do
|
8
|
-
|
6
|
+
before_action do |c|
|
9
7
|
Mongoid::Userstamps::Config.user_classes.each do |user_class|
|
10
|
-
|
11
|
-
|
12
|
-
rescue
|
13
|
-
end
|
8
|
+
user_class.current = c.public_send(user_class.userstamps_user.reader)
|
9
|
+
rescue
|
14
10
|
end
|
15
11
|
end
|
16
12
|
end
|
17
13
|
end
|
18
14
|
end
|
19
15
|
end
|
20
|
-
|
@@ -1,19 +1,17 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
1
|
module Mongoid
|
4
2
|
module Userstamps
|
5
3
|
module Updated
|
6
4
|
extend ActiveSupport::Concern
|
7
5
|
|
8
6
|
included do
|
9
|
-
|
7
|
+
unless included_modules.include?(Mongoid::Userstamps::Model)
|
10
8
|
include Mongoid::Userstamps::Model
|
11
9
|
end
|
12
10
|
|
13
11
|
belongs_to userstamps_config.updated_name, {
|
14
12
|
class_name: userstamps_model.user_model,
|
15
13
|
inverse_of: nil,
|
16
|
-
optional: true
|
14
|
+
optional: true,
|
17
15
|
}
|
18
16
|
|
19
17
|
set_callback :save, :before, :set_updated_by
|
@@ -21,10 +19,9 @@ module Mongoid
|
|
21
19
|
|
22
20
|
def set_updated_by
|
23
21
|
user = self.class.current_user
|
24
|
-
return if !user ||
|
25
|
-
|
22
|
+
return if !user || public_send("#{userstamps_config.updated_name}_id_changed?")
|
23
|
+
public_send("#{userstamps_config.updated_name}=", user)
|
26
24
|
end
|
27
25
|
end
|
28
26
|
end
|
29
27
|
end
|
30
|
-
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
1
|
module Mongoid
|
3
2
|
module Userstamps
|
4
3
|
module User
|
@@ -9,7 +8,7 @@ module Mongoid
|
|
9
8
|
end
|
10
9
|
|
11
10
|
def current?
|
12
|
-
|
11
|
+
id == self.class.current.try(:id)
|
13
12
|
end
|
14
13
|
|
15
14
|
class_methods do
|
@@ -22,7 +21,7 @@ module Mongoid
|
|
22
21
|
end
|
23
22
|
|
24
23
|
def sudo(user)
|
25
|
-
old =
|
24
|
+
old = current
|
26
25
|
self.current = user
|
27
26
|
yield
|
28
27
|
ensure
|
@@ -36,4 +35,3 @@ module Mongoid
|
|
36
35
|
end
|
37
36
|
end
|
38
37
|
end
|
39
|
-
|
data/mongoid-userstamps.gemspec
CHANGED
@@ -1,26 +1,24 @@
|
|
1
|
-
|
2
|
-
$:.push File.expand_path('../lib', __FILE__)
|
1
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
2
|
|
4
|
-
require
|
3
|
+
require "mongoid/userstamps/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
9
|
-
s.authors
|
10
|
-
s.homepage
|
11
|
-
s.license
|
12
|
-
s.summary
|
13
|
-
s.description =
|
14
|
-
s.email
|
6
|
+
s.name = "mongoid-userstamps"
|
7
|
+
s.version = Mongoid::Userstamps::VERSION
|
8
|
+
s.authors = ["Geoffroy Planquart", "Thomas Boerger", "Johnny Shields", "Bharat Gupta"]
|
9
|
+
s.homepage = "https://github.com/tbpro/mongoid_userstamp"
|
10
|
+
s.license = "MIT"
|
11
|
+
s.summary = "Userstamps for Mongoid"
|
12
|
+
s.description = "Userstamps for creator and updater fields using Mongoid"
|
13
|
+
s.email = ["geoffroy@planquart.fr", "tboerger@tbpro.de"]
|
15
14
|
|
16
|
-
s.files
|
17
|
-
s.executables
|
18
|
-
s.test_files
|
19
|
-
s.require_paths = [
|
15
|
+
s.files = `git ls-files`.split($/)
|
16
|
+
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
18
|
+
s.require_paths = ["lib"]
|
20
19
|
|
21
|
-
s.post_install_message = File.read(
|
20
|
+
s.post_install_message = File.read("UPGRADING") if File.exist?("UPGRADING")
|
22
21
|
|
23
|
-
s.add_dependency
|
24
|
-
s.add_dependency
|
22
|
+
s.add_dependency "mongoid", ">= 5.0.0", "< 7.2.0"
|
23
|
+
s.add_dependency "activesupport", ">= 4.2.0", "< 6.1.0"
|
25
24
|
end
|
26
|
-
|