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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5d873bed4646aeb401c5a38861a424b2006b8772
4
- data.tar.gz: 79534179cd97ff59c8007a72f1fe519f6b1c2eda
2
+ SHA256:
3
+ metadata.gz: 77649687478def5c2d3b302346acb4aaea31d765a1b67556a0a509f918ef45ab
4
+ data.tar.gz: be8a0be3f6870fbea333d90c03501be64c4a0839c34a172a7e2749832da41ca4
5
5
  SHA512:
6
- metadata.gz: 797365acd8a2be727c354256545ca8edc2b8a60f65e86fd6672fa4904a39efc2cc6beed6fcf799106cef63fb5168db708cd91237311a0a0b737e5291684b55a1
7
- data.tar.gz: 8ae7c9dec30f9a1eb145989af3469adc9f51bd26bfec9be34a5e5f2ff4a4fc9d2f2617514cb73bdb5d41e5f2665cac013740af46fc6484eb5b271702f3d06cee
6
+ metadata.gz: aa8911e23c3115c20b1c83054bc6ea0b68703b8f66b1870abd936f3e267d3dd5b3e437b8928ed9de01b65755543cbd3557eaf7ec45e1701dc5391b6a65684088
7
+ data.tar.gz: b07e80c7a13454f9eb5239074e5dbd2e785a81500d9cde28e23745a8cd294672e121b852649fff7bd0c627ca6ae1bdcb0e7ff28717e265218c5f539d49130a95
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source 'http://rubygems.org'
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
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 modifier
6
+ this is to support eager loading for creator/updater relation.
7
7
 
8
- MongoidUserstamp adds stamp columns for created by and updated by
9
- information within Rails applications using Mongoid ORM.
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.9.3 and 2.0.0
16
- * Rails 3
17
- * Mongoid 3
18
+ * Ruby 2.1.2
19
+ * Rails 4
20
+ * Mongoid 4
18
21
 
19
22
  ## Install
20
23
 
21
24
  ```ruby
22
- gem 'mongoid_userstamp'
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
- before_filter do |c|
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
- !Thread.current[:user].nil? && self._id == Thread.current[:user]._id
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
- Thread.current[:user]
14
+ RequestStore.store[:user]
16
15
  end
17
16
 
18
17
  def current=(value)
19
- Thread.current[:user] = value
18
+ RequestStore.store[:user] = value
20
19
  end
21
20
 
22
21
  def do_as(user, &block)
@@ -1,6 +1,5 @@
1
- # -*- encoding : utf-8 -*-
2
1
  module Mongoid
3
2
  module Userstamp
4
- VERSION = '0.4.0'
3
+ VERSION = '0.10.0'
5
4
  end
6
5
  end
@@ -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
- before_save :set_updater
10
- before_create :set_creator
9
+ before_validation :set_updater
10
+ before_validation :set_creator
11
11
 
12
12
  protected
13
13
 
@@ -1,4 +1,4 @@
1
- # -*- encoding : utf-8 -*-
1
+ require 'request_store'
2
2
  require 'mongoid/userstamp'
3
3
  require 'mongoid/userstamp/version'
4
4
  require 'mongoid/userstamp/config'
@@ -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.exists?('UPGRADING')
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
@@ -0,0 +1,11 @@
1
+ test:
2
+ clients:
3
+ default:
4
+ database: mongoid_nested_set_test
5
+ hosts:
6
+ - localhost:27018
7
+ options:
8
+ user: 'admin'
9
+ password: 'rs123456'
10
+ auth_source: admin
11
+
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.configure do |config|
11
- config.connect_to(
12
- 'mongoid_userstamp_test'
13
- )
14
- end
10
+ Mongoid.load!("#{File.dirname(__FILE__)}/mongoid.yml", :test)
15
11
 
16
- Object.send :remove_const, :Config
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.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: 2014-06-07 00:00:00.000000000 Z
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: 4.0.0.beta1
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: '0'
36
- type: :development
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: rspec
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: :development
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: yard
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: gem-release
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
- rubyforge_project:
131
- rubygems_version: 2.2.2
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: