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
data/spec/unit/userstamp_spec.rb
CHANGED
@@ -1,27 +1,24 @@
|
|
1
|
-
|
2
|
-
require 'spec_helper'
|
1
|
+
require "spec_helper"
|
3
2
|
|
4
3
|
describe Mongoid::Userstamp do
|
4
|
+
subject { Mongoid::Userstamp }
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
let(:
|
9
|
-
let(:user_2){ User.create!(name: 'Charles Dikkens') }
|
10
|
-
let(:admin_1){ Admin.create!(name: 'JK Rowling') }
|
11
|
-
|
12
|
-
describe '#config' do
|
6
|
+
let(:user_1) { User.create!(name: "Edmund Wells") }
|
7
|
+
let(:user_2) { User.create!(name: "Charles Dikkens") }
|
8
|
+
let(:admin_1) { Admin.create!(name: "JK Rowling") }
|
13
9
|
|
10
|
+
describe "#config" do
|
14
11
|
before { Mongoid::Userstamp.instance_variable_set(:'@config', nil) }
|
15
12
|
|
16
|
-
context
|
17
|
-
subject{ Mongoid::Userstamp.config }
|
13
|
+
context "without block" do
|
14
|
+
subject { Mongoid::Userstamp.config }
|
18
15
|
it { should be_a Mongoid::Userstamp::GemConfig }
|
19
16
|
it { subject.created_name.should eq :created_by }
|
20
17
|
it { subject.updated_name.should eq :updated_by }
|
21
18
|
it { subject.user_reader.should eq :current_user }
|
22
19
|
end
|
23
20
|
|
24
|
-
context
|
21
|
+
context "with block" do
|
25
22
|
subject do
|
26
23
|
Mongoid::Userstamp.config do |u|
|
27
24
|
u.created_name = :c_by
|
@@ -35,87 +32,87 @@ describe Mongoid::Userstamp do
|
|
35
32
|
it { subject.user_reader.should eq :foo }
|
36
33
|
end
|
37
34
|
|
38
|
-
context
|
39
|
-
subject{ Mongoid::Userstamp.configure }
|
35
|
+
context "deprecated method" do
|
36
|
+
subject { Mongoid::Userstamp.configure }
|
40
37
|
it { should be_a Mongoid::Userstamp::GemConfig }
|
41
38
|
end
|
42
39
|
end
|
43
40
|
|
44
|
-
describe
|
41
|
+
describe "#current_user" do
|
45
42
|
before do
|
46
43
|
Mongoid::Userstamp.set_current_user(user_1)
|
47
44
|
Mongoid::Userstamp.set_current_user(admin_1)
|
48
45
|
end
|
49
|
-
context
|
50
|
-
subject{ Mongoid::Userstamp.current_user(
|
51
|
-
it{ should eq user_1 }
|
46
|
+
context "when user_class is User" do
|
47
|
+
subject { Mongoid::Userstamp.current_user("User") }
|
48
|
+
it { should eq user_1 }
|
52
49
|
end
|
53
|
-
context
|
54
|
-
subject{ Mongoid::Userstamp.current_user(
|
55
|
-
it{ should eq admin_1 }
|
50
|
+
context "when user_class is Admin" do
|
51
|
+
subject { Mongoid::Userstamp.current_user("Admin") }
|
52
|
+
it { should eq admin_1 }
|
56
53
|
end
|
57
|
-
context
|
58
|
-
subject{ Mongoid::Userstamp.current_user(
|
59
|
-
it{ should be_nil }
|
54
|
+
context "when user_class is other" do
|
55
|
+
subject { Mongoid::Userstamp.current_user("foobar") }
|
56
|
+
it { should be_nil }
|
60
57
|
end
|
61
|
-
context
|
62
|
-
subject{ Mongoid::Userstamp.current_user }
|
63
|
-
it
|
58
|
+
context "when user_class is not given" do
|
59
|
+
subject { Mongoid::Userstamp.current_user }
|
60
|
+
it "should use the default user_class" do
|
64
61
|
should eq admin_1
|
65
62
|
end
|
66
63
|
end
|
67
64
|
end
|
68
65
|
|
69
|
-
describe
|
66
|
+
describe "#model_classes" do
|
70
67
|
before { Mongoid::Userstamp.instance_variable_set(:'@model_classes', nil) }
|
71
|
-
context
|
68
|
+
context "default value" do
|
72
69
|
it { subject.model_classes.should eq [] }
|
73
70
|
end
|
74
|
-
context
|
71
|
+
context "setting values" do
|
75
72
|
before do
|
76
|
-
subject.add_model_class
|
77
|
-
subject.add_model_class
|
73
|
+
subject.add_model_class "Book"
|
74
|
+
subject.add_model_class "Post"
|
78
75
|
end
|
79
76
|
it { subject.model_classes.should eq [Book, Post] }
|
80
77
|
end
|
81
78
|
end
|
82
79
|
|
83
|
-
describe
|
80
|
+
describe "#user_classes" do
|
84
81
|
before { Mongoid::Userstamp.instance_variable_set(:'@user_classes', nil) }
|
85
|
-
context
|
82
|
+
context "default value" do
|
86
83
|
it { subject.user_classes.should eq [] }
|
87
84
|
end
|
88
|
-
context
|
85
|
+
context "setting values" do
|
89
86
|
before do
|
90
|
-
subject.add_user_class
|
91
|
-
subject.add_user_class
|
87
|
+
subject.add_user_class "Book"
|
88
|
+
subject.add_user_class "Post"
|
92
89
|
end
|
93
90
|
it { subject.user_classes.should eq [Book, Post] }
|
94
91
|
end
|
95
92
|
end
|
96
93
|
|
97
|
-
describe
|
98
|
-
context
|
94
|
+
describe "#store" do
|
95
|
+
context "when RequestStore is defined" do
|
99
96
|
before do
|
100
|
-
stub_const(
|
101
|
-
RequestStore.stub(
|
97
|
+
stub_const("RequestStore", Object.new)
|
98
|
+
RequestStore.stub("store").and_return("foobar")
|
102
99
|
end
|
103
100
|
it { subject.store.should eq RequestStore.store }
|
104
101
|
end
|
105
|
-
context
|
106
|
-
before{ hide_const(
|
102
|
+
context "when RequestStore is not defined" do
|
103
|
+
before { hide_const("RequestStore") }
|
107
104
|
it { subject.store.should eq Thread.current }
|
108
105
|
end
|
109
106
|
end
|
110
107
|
|
111
|
-
describe
|
112
|
-
context
|
113
|
-
subject{ Mongoid::Userstamp.userstamp_key(User) }
|
114
|
-
it{ should eq :"mongoid_userstamp/user" }
|
115
|
-
end
|
116
|
-
context
|
117
|
-
subject{ Mongoid::Userstamp.userstamp_key(
|
118
|
-
it{ should eq :"mongoid_userstamp/my_namespace/user" }
|
108
|
+
describe "#userstamp_key" do
|
109
|
+
context "when model is a Class" do
|
110
|
+
subject { Mongoid::Userstamp.userstamp_key(User) }
|
111
|
+
it { should eq :"mongoid_userstamp/user" }
|
112
|
+
end
|
113
|
+
context "when model is a String" do
|
114
|
+
subject { Mongoid::Userstamp.userstamp_key("MyNamespace::User") }
|
115
|
+
it { should eq :"mongoid_userstamp/my_namespace/user" }
|
119
116
|
end
|
120
117
|
end
|
121
118
|
end
|
data/test/config_test.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
class ConfigTest < BaseTest
|
4
4
|
class ModelClass
|
5
|
-
|
5
|
+
def self.userstamps_model
|
6
|
+
self
|
7
|
+
end
|
6
8
|
|
7
|
-
def self.userstamps_model; self; end
|
8
9
|
def self.user_model
|
9
10
|
Mongoid::Userstamps::Config.user_classes.last
|
10
11
|
end
|
12
|
+
|
11
13
|
def self.set_user_model!
|
12
14
|
@@user_model = user_model
|
13
15
|
end
|
@@ -20,7 +22,7 @@ class ConfigTest < BaseTest
|
|
20
22
|
Mongoid::Userstamps::Config.user_classes.delete(UserClass)
|
21
23
|
end
|
22
24
|
|
23
|
-
test
|
25
|
+
test "should config using block" do
|
24
26
|
Mongoid::Userstamps.config do |c|
|
25
27
|
c.created_name = :creator
|
26
28
|
c.updated_name = :updater
|
@@ -31,21 +33,20 @@ class ConfigTest < BaseTest
|
|
31
33
|
assert_equal :deleter, Mongoid::Userstamps::Config.deleted_name
|
32
34
|
end
|
33
35
|
|
34
|
-
test
|
35
|
-
Mongoid::Userstamps::Config.set_current_user(Mongoid,
|
36
|
-
assert_equal
|
36
|
+
test "current_user" do
|
37
|
+
Mongoid::Userstamps::Config.set_current_user(Mongoid, "test")
|
38
|
+
assert_equal "test", Mongoid::Userstamps::Config.current_user(Mongoid)
|
37
39
|
end
|
38
40
|
|
39
|
-
test
|
40
|
-
assert_difference(->{Mongoid::Userstamps::Config.model_classes.count}) do
|
41
|
+
test "add_model_class" do
|
42
|
+
assert_difference(-> { Mongoid::Userstamps::Config.model_classes.count }) do
|
41
43
|
Mongoid::Userstamps::Config.add_model_class(ModelClass)
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
45
|
-
test
|
47
|
+
test "add_user_class" do
|
46
48
|
Mongoid::Userstamps::Config.add_model_class(ModelClass)
|
47
49
|
Mongoid::Userstamps::Config.add_user_class(UserClass)
|
48
50
|
assert_equal UserClass, ModelClass.user_model
|
49
51
|
end
|
50
52
|
end
|
51
|
-
|
data/test/model_test.rb
CHANGED
@@ -1,26 +1,26 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
class ModelTest < BaseTest
|
4
4
|
setup do
|
5
|
-
@user = User.create(name:
|
6
|
-
@user2 = User.create(name:
|
5
|
+
@user = User.create(name: "John")
|
6
|
+
@user2 = User.create(name: "Johnny")
|
7
7
|
Mongoid::Userstamps::Config.set_current_user(User, @user)
|
8
|
-
@person = Person.create(name:
|
9
|
-
@person2 = Person.create(name:
|
8
|
+
@person = Person.create(name: "Doe")
|
9
|
+
@person2 = Person.create(name: "Doe..")
|
10
10
|
Mongoid::Userstamps::Config.set_current_user(Person, @person)
|
11
11
|
end
|
12
12
|
|
13
|
-
test
|
14
|
-
@post = Post.create(title:
|
13
|
+
test "should set created_by and updated_by on creation" do
|
14
|
+
@post = Post.create(title: "Hello")
|
15
15
|
assert_equal @user, @post.created_by
|
16
16
|
assert_equal @user, @post.updated_by
|
17
17
|
end
|
18
18
|
|
19
|
-
test
|
20
|
-
assert_equal
|
19
|
+
test "model with user_model" do
|
20
|
+
assert_equal "Person", Comment.relations["updated_by"].class_name
|
21
21
|
end
|
22
22
|
|
23
|
-
test
|
23
|
+
test "set_created_by" do
|
24
24
|
@post = Post.new
|
25
25
|
@post.set_created_by
|
26
26
|
assert_equal @user, @post.created_by
|
@@ -36,7 +36,7 @@ class ModelTest < BaseTest
|
|
36
36
|
assert_nil @post.created_by
|
37
37
|
end
|
38
38
|
|
39
|
-
test
|
39
|
+
test "set_updated_by" do
|
40
40
|
@post = Post.new
|
41
41
|
@post.set_updated_by
|
42
42
|
assert_equal @user, @post.updated_by
|
@@ -52,7 +52,7 @@ class ModelTest < BaseTest
|
|
52
52
|
assert_nil @post.updated_by
|
53
53
|
end
|
54
54
|
|
55
|
-
test
|
55
|
+
test "set_deleted_by" do
|
56
56
|
@comment = Comment.new
|
57
57
|
@comment.set_deleted_by
|
58
58
|
assert_equal @person, @comment.deleted_by
|
@@ -68,4 +68,3 @@ class ModelTest < BaseTest
|
|
68
68
|
assert_nil @comment.deleted_by
|
69
69
|
end
|
70
70
|
end
|
71
|
-
|
data/test/models/archive.rb
CHANGED
data/test/models/comment.rb
CHANGED
data/test/models/person.rb
CHANGED
data/test/models/post.rb
CHANGED
data/test/models/user.rb
CHANGED
data/test/paranoia_test.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
module Mongoid::Paranoia
|
4
4
|
end
|
@@ -10,8 +10,7 @@ class ParanoiaTest < BaseTest
|
|
10
10
|
include Mongoid::Userstamps
|
11
11
|
end
|
12
12
|
|
13
|
-
test
|
13
|
+
test "deleted" do
|
14
14
|
assert ModelClass < Mongoid::Userstamps::Deleted
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
data/test/test_helper.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "bundler/setup"
|
2
|
+
require "simplecov"
|
3
3
|
SimpleCov.configure do
|
4
|
-
add_filter
|
4
|
+
add_filter "/test/"
|
5
5
|
end
|
6
|
-
SimpleCov.start if ENV[
|
6
|
+
SimpleCov.start if ENV["COVERAGE"]
|
7
7
|
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
8
|
+
require "minitest/autorun"
|
9
|
+
require "mongoid"
|
10
|
+
require "pry"
|
11
11
|
|
12
12
|
require File.expand_path("../../lib/mongoid-userstamps", __FILE__)
|
13
13
|
|
@@ -19,8 +19,9 @@ ActiveSupport::TestCase.test_order = :random
|
|
19
19
|
|
20
20
|
class BaseTest < ActiveSupport::TestCase
|
21
21
|
teardown do
|
22
|
-
Mongoid.default_client.use(
|
22
|
+
Mongoid.default_client.use("mongoid_userstamps_test").database.drop
|
23
23
|
Mongoid::Userstamps::Config.reset
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
puts "Testing against mongoid: #{Mongoid::VERSION}"
|
data/test/user_test.rb
CHANGED
@@ -1,35 +1,34 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
class UserTest < BaseTest
|
4
|
-
test
|
5
|
-
@user = User.create(name:
|
4
|
+
test "should set as current" do
|
5
|
+
@user = User.create(name: "John")
|
6
6
|
Mongoid::Userstamps::Config.set_current_user(User, @user)
|
7
7
|
assert_equal @user, Mongoid::Userstamps::Config.current_user(User)
|
8
8
|
assert @user.current?
|
9
9
|
assert_equal @user, User.current
|
10
10
|
|
11
|
-
@user2 = User.create(name:
|
11
|
+
@user2 = User.create(name: "Johnny")
|
12
12
|
User.current = @user2
|
13
13
|
assert @user2.current?
|
14
14
|
assert_equal @user2, Mongoid::Userstamps::Config.current_user(User)
|
15
15
|
end
|
16
16
|
|
17
|
-
test
|
17
|
+
test "reader" do
|
18
18
|
assert_equal :current_person, Person.userstamps_user.reader
|
19
19
|
assert_equal :current_admin, User.userstamps_user.reader
|
20
20
|
end
|
21
21
|
|
22
|
-
test
|
23
|
-
@user = User.create(name:
|
24
|
-
@user2 = User.create(name:
|
22
|
+
test "sudo" do
|
23
|
+
@user = User.create(name: "John")
|
24
|
+
@user2 = User.create(name: "Johnny")
|
25
25
|
User.current = @user
|
26
26
|
post = nil
|
27
27
|
User.sudo @user2 do
|
28
|
-
post = Post.create(title:
|
28
|
+
post = Post.create(title: "Hello")
|
29
29
|
end
|
30
30
|
|
31
31
|
assert_equal @user, User.current
|
32
32
|
assert_equal @user2, post.created_by
|
33
33
|
end
|
34
34
|
end
|
35
|
-
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid-userstamps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geoffroy Planquart
|
8
8
|
- Thomas Boerger
|
9
9
|
- Johnny Shields
|
10
10
|
- Bharat Gupta
|
11
|
-
autorequire:
|
11
|
+
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2020-12-17 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: mongoid
|
@@ -22,7 +22,7 @@ dependencies:
|
|
22
22
|
version: 5.0.0
|
23
23
|
- - "<"
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version:
|
25
|
+
version: 7.2.0
|
26
26
|
type: :runtime
|
27
27
|
prerelease: false
|
28
28
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 5.0.0
|
33
33
|
- - "<"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
35
|
+
version: 7.2.0
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
38
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
version: 4.2.0
|
43
43
|
- - "<"
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: 6.1.0
|
46
46
|
type: :runtime
|
47
47
|
prerelease: false
|
48
48
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
version: 4.2.0
|
53
53
|
- - "<"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
55
|
+
version: 6.1.0
|
56
56
|
description: Userstamps for creator and updater fields using Mongoid
|
57
57
|
email:
|
58
58
|
- geoffroy@planquart.fr
|
@@ -62,6 +62,8 @@ extensions: []
|
|
62
62
|
extra_rdoc_files: []
|
63
63
|
files:
|
64
64
|
- ".gitignore"
|
65
|
+
- ".rubocop.yml"
|
66
|
+
- ".travis.yml"
|
65
67
|
- CHANGELOG.md
|
66
68
|
- Gemfile
|
67
69
|
- LICENSE
|
@@ -107,7 +109,7 @@ homepage: https://github.com/tbpro/mongoid_userstamp
|
|
107
109
|
licenses:
|
108
110
|
- MIT
|
109
111
|
metadata: {}
|
110
|
-
post_install_message:
|
112
|
+
post_install_message:
|
111
113
|
rdoc_options: []
|
112
114
|
require_paths:
|
113
115
|
- lib
|
@@ -122,9 +124,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
124
|
- !ruby/object:Gem::Version
|
123
125
|
version: '0'
|
124
126
|
requirements: []
|
125
|
-
|
126
|
-
|
127
|
-
signing_key:
|
127
|
+
rubygems_version: 3.0.3
|
128
|
+
signing_key:
|
128
129
|
specification_version: 4
|
129
130
|
summary: Userstamps for Mongoid
|
130
131
|
test_files:
|