mongoid-userstamps 3.1.0 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|