mongoid-locker 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 46e4667e791c955ae115a24070ff3b1383c8d272f7263cb9f0199b9b9c82ab46
4
- data.tar.gz: ba19a3dc36bdf0522c2cc7d9dca31a8e89f0ac01c3d3073f476a64605db26cc2
3
+ metadata.gz: 1bd397a8299e68e225e9df96570840b39592559e458f808834722548fb486387
4
+ data.tar.gz: a6d879248d41b1f6e1b0eeb715dc4ba72c93042c7e382d56743f53c40868007e
5
5
  SHA512:
6
- metadata.gz: be8ec0af58ec384c7c1e374fd5ca5bbe133b95fb2be445628f6026a64665a866ebaf4396423f775fc8de51101c6cf920f61669859d32433d7bae2f9353e45a71
7
- data.tar.gz: 2148730176e46068be6b9bca45ef9b6f4d83107561e0b60ad8ada1254d40ada77ac69ea64cc792b21f565cde1b4ff338a4d740d11bf90866c9136d4cc831e715
6
+ metadata.gz: 29b6005758187e0020a375971f37da4c0d476cdec634f2dda35b0e78695b26da00c4ff6e8f2dab98c4f9b628514668be8135336d87f525cd974cf55c7c9cd8db
7
+ data.tar.gz: 1df8d96ae35dee15bf9ce2225cc3834ef0b055e95c68b4685e5f3efbeddab5a1af87fb129a800d558c9d2692fce59ce1fa72b9ca968a3519d9614a884f30cfc5
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
- # rcov
1
+ # simplecov
2
2
  coverage
3
- coverage.data
4
3
 
5
4
  # rdoc
6
5
  rdoc
@@ -1,7 +1,2 @@
1
- AllCops:
2
- Exclude:
3
- - vendor/**/*
4
- - bin/**/*
5
- - mongoid-locker.gemspec
6
-
7
1
  inherit_from: .rubocop_todo.yml
2
+ require: rubocop-rspec
@@ -1,12 +1,12 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2018-09-01 16:46:40 +0300 using RuboCop version 0.58.2.
3
+ # on 2018-11-23 00:20:08 +0300 using RuboCop version 0.60.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 6
9
+ # Offense count: 4
10
10
  # Configuration parameters: Include.
11
11
  # Include: **/*.gemfile, **/Gemfile, **/gems.rb
12
12
  Bundler/DuplicatedGem:
@@ -21,13 +21,21 @@ Metrics/AbcSize:
21
21
  # Configuration parameters: CountComments, ExcludedMethods.
22
22
  # ExcludedMethods: refine
23
23
  Metrics/BlockLength:
24
- Max: 493
24
+ Max: 505
25
25
 
26
- # Offense count: 2
27
- # Configuration parameters: CountComments.
26
+ # Offense count: 3
27
+ # Configuration parameters: CountComments, ExcludedMethods.
28
28
  Metrics/MethodLength:
29
29
  Max: 25
30
30
 
31
+ # Offense count: 2
32
+ # Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts, AllowedAcronyms.
33
+ # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
34
+ Naming/FileName:
35
+ Exclude:
36
+ - 'lib/mongoid-locker.rb'
37
+ - 'spec/mongoid-locker_spec.rb'
38
+
31
39
  # Offense count: 1
32
40
  # Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist, MethodDefinitionMacros.
33
41
  # NamePrefix: is_, has_, have_
@@ -39,6 +47,37 @@ Naming/PredicateName:
39
47
  - 'spec/**/*'
40
48
  - 'lib/mongoid/locker.rb'
41
49
 
50
+ # Offense count: 37
51
+ # Cop supports --auto-correct.
52
+ # Configuration parameters: SkipBlocks, EnforcedStyle.
53
+ # SupportedStyles: described_class, explicit
54
+ RSpec/DescribedClass:
55
+ Exclude:
56
+ - 'spec/mongoid-locker_spec.rb'
57
+
58
+ # Offense count: 19
59
+ # Configuration parameters: Max.
60
+ RSpec/ExampleLength:
61
+ Exclude:
62
+ - 'spec/mongoid-locker_spec.rb'
63
+
64
+ # Offense count: 1
65
+ # Configuration parameters: CustomTransform, IgnoreMethods.
66
+ RSpec/FilePath:
67
+ Exclude:
68
+ - 'spec/mongoid-locker_spec.rb'
69
+
70
+ # Offense count: 6
71
+ # Configuration parameters: .
72
+ # SupportedStyles: have_received, receive
73
+ RSpec/MessageSpies:
74
+ EnforcedStyle: receive
75
+
76
+ # Offense count: 16
77
+ # Configuration parameters: AggregateFailuresByDefault.
78
+ RSpec/MultipleExpectations:
79
+ Max: 5
80
+
42
81
  # Offense count: 2
43
82
  Style/Documentation:
44
83
  Exclude:
@@ -51,28 +90,8 @@ Style/DoubleNegation:
51
90
  Exclude:
52
91
  - 'lib/mongoid/locker.rb'
53
92
 
54
- # Offense count: 1
55
- # Configuration parameters: MinBodyLength.
56
- Style/GuardClause:
57
- Exclude:
58
- - 'lib/mongoid/locker.rb'
59
-
60
- # Offense count: 1
61
- # Cop supports --auto-correct.
62
- # Configuration parameters: .
63
- # SupportedStyles: compact, exploded
64
- Style/RaiseArgs:
65
- EnforcedStyle: compact
66
-
67
- # Offense count: 1
68
- # Cop supports --auto-correct.
69
- # Configuration parameters: MinSize.
70
- # SupportedStyles: percent, brackets
71
- Style/SymbolArray:
72
- EnforcedStyle: brackets
73
-
74
- # Offense count: 63
93
+ # Offense count: 55
75
94
  # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
76
95
  # URISchemes: http, https
77
96
  Metrics/LineLength:
78
- Max: 184
97
+ Max: 180
@@ -11,26 +11,52 @@ before_install:
11
11
 
12
12
  matrix:
13
13
  include:
14
- - rvm: 2.3.6
14
+ - rvm: 2.3.8
15
15
  env: MONGOID_VERSION=4
16
- - rvm: 2.3.6
16
+ - rvm: 2.3.8
17
17
  env: MONGOID_VERSION=5
18
- - rvm: 2.3.6
18
+ - rvm: 2.3.8
19
19
  env: MONGOID_VERSION=6
20
- - rvm: 2.4.3
20
+ - rvm: 2.4.5
21
21
  env: MONGOID_VERSION=6
22
- - rvm: 2.4.3
22
+ - rvm: 2.4.5
23
23
  env: MONGOID_VERSION=7
24
- - rvm: 2.5.0
24
+ - rvm: 2.5.3
25
25
  env: MONGOID_VERSION=7
26
- before_script:
27
- - bundle exec danger
28
- - rvm: rbx-2
26
+ before_script: bundle exec danger
27
+ - rvm: jruby-9.1.17.0
28
+ env: MONGOID_VERSION=4
29
+ - rvm: jruby-9.1.17.0
30
+ env: MONGOID_VERSION=5
31
+ - rvm: jruby-9.1.17.0
32
+ env: MONGOID_VERSION=6
33
+ - rvm: jruby-9.2.4.0
34
+ env: MONGOID_VERSION=6
35
+ - rvm: jruby-9.2.4.0
36
+ env: MONGOID_VERSION=7
37
+ - name: Code Climate Test Coverage
38
+ rvm: 2.3.8
39
+ env: COVERAGE=true
40
+ script:
41
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
42
+ - chmod +x ./cc-test-reporter
43
+ - ./cc-test-reporter before-build
44
+ - for version in 4 5 6 7; do
45
+ MONGOID_VERSION=$version bundle update;
46
+ bundle exec rake;
47
+ ./cc-test-reporter format-coverage -t simplecov -o coverage/codeclimate.mongoid${version}.json;
48
+ done
49
+ - if [[ "$TRAVIS_TEST_RESULT" == 0 ]]; then
50
+ ./cc-test-reporter sum-coverage coverage/codeclimate.mongoid*.json -p 4;
51
+ ./cc-test-reporter upload-coverage;
52
+ fi
29
53
  - rvm: ruby-head
30
54
  - rvm: jruby-head
55
+ fast_finish: true
31
56
  allow_failures:
32
57
  - rvm: ruby-head
58
+ - rvm: jruby-9.1.17.0
59
+ - rvm: jruby-9.2.4.0
33
60
  - rvm: jruby-head
34
- - rvm: rbx-2
35
61
 
36
62
  bundler_args: --without development
@@ -1,5 +1,16 @@
1
1
  ## Changelog
2
2
 
3
+ ### 1.0.1 (2019-03-23)
4
+
5
+ * [#74](https://github.com/mongoid/mongoid-locker/pull/74): Add JRuby tests - [@dks17](https://github.com/dks17).
6
+ * [#68](https://github.com/mongoid/mongoid-locker/pull/68): Fix Rubocop offenses, refactoring, update `ruby` versions, add `COVERAGE` test env, update `.travis.yml` matrix - [@dks17](https://github.com/dks17).
7
+ * [#67](https://github.com/mongoid/mongoid-locker/pull/67): Deprecate `:wait` in favor of `:retries` option, which can attempt to grab a lock multiple times - [@afeld](https://github.com/afeld), [@dks17](https://github.com/dks17).
8
+ * [#66](https://github.com/mongoid/mongoid-locker/pull/66): Fix Mongoid::Locker::LockError for not persisted document - [@dks17](https://github.com/dks17).
9
+ * [#65](https://github.com/mongoid/mongoid-locker/pull/65): Drop `mongoid-compatibility` gem dependency - [@dks17](https://github.com/dks17).
10
+ * [#64](https://github.com/mongoid/mongoid-locker/pull/64): Exclude demo files from the gem - [@dks17](https://github.com/dks17).
11
+ * [#60](https://github.com/mongoid/mongoid-locker/pull/60): Drop support for `mongoid` version `2` and `3` - [@dks17](https://github.com/dks17).
12
+ * [#60](https://github.com/mongoid/mongoid-locker/pull/60): Add SimpleCov - [@dks17](https://github.com/dks17).
13
+
3
14
  ### 1.0.0 (2018-09-02)
4
15
 
5
16
  * [#57](https://github.com/mongoid/mongoid-locker/pull/57): `Time.now` replaced by `Time.now.utc` - [@dks17](https://github.com/dks17).
data/Gemfile CHANGED
@@ -4,16 +4,11 @@ case ENV['MONGOID_VERSION']
4
4
  when /^7/
5
5
  gem 'mongoid', '~> 7.0'
6
6
  when /^6/
7
- gem 'mongoid', '~> 6.0'
7
+ gem 'mongoid', '~> 6.4'
8
8
  when /^5/
9
- gem 'mongoid', '~> 5.0'
9
+ gem 'mongoid', '~> 5.4'
10
10
  when /^4/
11
11
  gem 'mongoid', '~> 4.0'
12
- when /^3/
13
- gem 'mongoid', '~> 3.1'
14
- when /^2/
15
- gem 'bson_ext', platforms: :ruby
16
- gem 'mongoid', '~> 2.8'
17
12
  else
18
13
  gem 'mongoid', '>= 4.0'
19
14
  end
@@ -26,10 +21,11 @@ group :development do
26
21
  end
27
22
 
28
23
  group :development, :test do
29
- gem 'mongoid-compatibility'
30
24
  gem 'mongoid-danger', '~> 0.1.1'
31
25
  gem 'rack', '~> 1.5'
32
26
  gem 'rake', '11.3.0'
33
27
  gem 'rspec', '~> 3.0'
34
28
  gem 'rubocop'
29
+ gem 'rubocop-rspec'
30
+ gem 'simplecov', require: false
35
31
  end
data/README.md CHANGED
@@ -1,13 +1,14 @@
1
1
  # mongoid-locker
2
- [![Gem Version](https://badge.fury.io/rb/mongoid-locker.svg)](http://badge.fury.io/rb/mongoid-locker)
3
- [![Build Status](https://secure.travis-ci.org/mongoid/mongoid-locker.svg?branch=master)](http://travis-ci.org/mongoid/mongoid-locker)
4
- [![Code Climate](https://codeclimate.com/github/mongoid/mongoid-locker.svg)](https://codeclimate.com/github/mongoid/mongoid-locker)
2
+ [![Gem Version](https://badge.fury.io/rb/mongoid-locker.svg)](https://badge.fury.io/rb/mongoid-locker)
3
+ [![Build Status](https://travis-ci.org/mongoid/mongoid-locker.svg?branch=master)](https://travis-ci.org/mongoid/mongoid-locker)
4
+ [![Maintainability](https://api.codeclimate.com/v1/badges/04ee4ee75ff54659300a/maintainability)](https://codeclimate.com/github/mongoid/mongoid-locker/maintainability)
5
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/04ee4ee75ff54659300a/test_coverage)](https://codeclimate.com/github/mongoid/mongoid-locker/test_coverage)
5
6
 
6
- Document-level locking for MongoDB via Mongoid. The need arose at [Jux](https://jux.com) from multiple processes on multiple servers trying to act upon the same document and stepping on each other's toes. Mongoid-Locker is an easy way to ensure only one process can perform a certain operation on a document at a time.
7
+ Document-level locking for MongoDB via Mongoid. Mongoid-Locker is an easy way to ensure only one process can perform a certain operation on a document at a time.
7
8
 
8
- [Tested](http://travis-ci.org/mongoid/mongoid-locker) against:
9
- - MRI: `2.3.6`, `2.4.3`, `2.5.0`
10
- - Mongoid: `2`, `3`, `4`, `5`, `6`, `7`
9
+ [Tested](https://travis-ci.org/mongoid/mongoid-locker) against:
10
+ - MRI: `2.3.8`, `2.4.5`, `2.5.3`
11
+ - Mongoid: `4`, `5`, `6`, `7`
11
12
 
12
13
  See [.travis.yml](.travis.yml) for the latest test matrix.
13
14
 
@@ -56,7 +57,7 @@ class QueueItem
56
57
  end
57
58
  ```
58
59
 
59
- Note that these locks are only enforced when using `#with_lock`, not at the database level. It's useful for transactional operations, where you can make atomic modification of the document with checks. For example, you could deduct a purchase from a user's balance ... _unless_ they are broke.
60
+ Note that these locks are only enforced when using `#with_lock`, not at the database level. It's useful for transactional operations, where you can make atomic modification of the document with checks. For example, you could deduct a purchase from a user's balance ... _unless_ they are broke.
60
61
 
61
62
  More in-depth method documentation can be found at [rdoc.info](http://rdoc.info/github/mongoid/mongoid-locker/frames).
62
63
 
@@ -9,7 +9,7 @@ Run tests, check that all tests succeed locally.
9
9
 
10
10
  ```
11
11
  bundle install
12
- rake
12
+ bundle exec rake
13
13
  ```
14
14
 
15
15
  Check that the last build succeeded in [Travis CI](https://travis-ci.org/mongoid/mongoid-locker) for all supported platforms.
@@ -38,7 +38,7 @@ git push origin master
38
38
  Release.
39
39
 
40
40
  ```
41
- $ rake release
41
+ $ bundle exec rake release
42
42
 
43
43
  mongoid-locker 0.4.0 built to pkg/mongoid-locker-0.4.0.gem.
44
44
  Tagged v0.4.0.
data/Rakefile CHANGED
@@ -12,4 +12,4 @@ end
12
12
  require 'rubocop/rake_task'
13
13
  RuboCop::RakeTask.new(:rubocop)
14
14
 
15
- task default: [:rubocop, :spec]
15
+ task default: %i[rubocop spec]
@@ -108,23 +108,25 @@ module Mongoid
108
108
  #
109
109
  # @param [Hash] opts for the locking mechanism
110
110
  # @option opts [Fixnum] :timeout The number of seconds until the lock is considered "expired" - defaults to the {ClassMethods#lock_timeout}
111
- # @option opts [Fixnum] :retries If the document is currently locked, the number of times to retry. Defaults to 0 (note: setting this to 1 is the equivalent of using :wait => true)
111
+ # @option opts [Fixnum] :retries If the document is currently locked, the number of times to retry - defaults to 0
112
112
  # @option opts [Float] :retry_sleep How long to sleep between attempts to acquire lock - defaults to time left until lock is available
113
- # @option opts [Boolean] :wait If the document is currently locked, wait until the lock expires and try again - defaults to false. If set, :retries will be ignored
113
+ # @option opts [Boolean] :wait (deprecated) If the document is currently locked, wait until the lock expires and try again - defaults to false. If set, :retries will be ignored
114
114
  # @option opts [Boolean] :reload After acquiring the lock, reload the document - defaults to true
115
115
  # @return [void]
116
116
  def with_lock(opts = {})
117
- had_lock = has_lock?
117
+ unless !persisted? || (had_lock = has_lock?)
118
+ if opts[:wait]
119
+ opts[:retries] = 1
120
+ warn 'WARN: `:wait` option for Mongoid::Locker is deprecated - use `retries: 1` instead.'
121
+ end
118
122
 
119
- unless had_lock
120
- opts[:retries] = 1 if opts[:wait]
121
123
  lock(opts)
122
124
  end
123
125
 
124
126
  begin
125
127
  yield
126
128
  ensure
127
- unlock if locked? && !had_lock
129
+ unlock if !had_lock && locked?
128
130
  end
129
131
  end
130
132
 
@@ -175,19 +177,18 @@ module Mongoid
175
177
 
176
178
  attempts_left -= 1
177
179
 
178
- if attempts_left > 0
179
- # if not passed a retry_sleep value, we sleep for the remaining life of the lock
180
- unless retry_sleep
181
- locked_until = Mongoid::Locker::Wrapper.locked_until(self)
182
- # the lock might be released since the last check so make another attempt
183
- next unless locked_until
184
- retry_sleep = locked_until - Time.now.utc
185
- end
186
-
187
- sleep retry_sleep if retry_sleep > 0
188
- else
189
- raise LockError.new('could not get lock')
180
+ raise LockError, 'could not get lock' unless attempts_left > 0
181
+
182
+ # if not passed a retry_sleep value, we sleep for the remaining life of the lock
183
+ unless retry_sleep
184
+ locked_until = Mongoid::Locker::Wrapper.locked_until(self)
185
+ # the lock might be released since the last check so make another attempt
186
+ next unless locked_until
187
+
188
+ retry_sleep = locked_until - Time.now.utc
190
189
  end
190
+
191
+ sleep retry_sleep if retry_sleep > 0
191
192
  end
192
193
  end
193
194
 
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module Locker
3
- VERSION = '1.0.0'.freeze
3
+ VERSION = '1.0.1'.freeze
4
4
  end
5
5
  end
@@ -1,17 +1,3 @@
1
- require 'mongoid/compatibility'
1
+ raise "Incompatible Mongoid #{version} version" unless %w[4 5 6 7].include?(version = Mongoid::VERSION.split('.')[0])
2
2
 
3
- if Mongoid::Compatibility::Version.mongoid7?
4
- require 'mongoid/locker/wrapper7'
5
- elsif Mongoid::Compatibility::Version.mongoid6?
6
- require 'mongoid/locker/wrapper6'
7
- elsif Mongoid::Compatibility::Version.mongoid5?
8
- require 'mongoid/locker/wrapper5'
9
- elsif Mongoid::Compatibility::Version.mongoid4?
10
- require 'mongoid/locker/wrapper4'
11
- elsif Mongoid::Compatibility::Version.mongoid3?
12
- require 'mongoid/locker/wrapper3'
13
- elsif Mongoid::Compatibility::Version.mongoid2?
14
- require 'mongoid/locker/wrapper2'
15
- else
16
- raise 'incompatible Mongoid version'
17
- end
3
+ require "mongoid/locker/wrapper#{version}"
@@ -13,9 +13,8 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = 'https://github.com/mongoid/mongoid-locker'
14
14
  spec.license = 'MIT'
15
15
 
16
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec|demo)/}) }
17
17
  spec.require_paths = ['lib']
18
18
 
19
- spec.add_runtime_dependency 'mongoid', '>= 2.8'
20
- spec.add_runtime_dependency 'mongoid-compatibility', '>= 0.4.1'
19
+ spec.add_runtime_dependency 'mongoid', '>= 4.0', '< 8'
21
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-locker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aidan Feldman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-02 00:00:00.000000000 Z
11
+ date: 2019-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mongoid
@@ -16,28 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.8'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
19
+ version: '4.0'
20
+ - - "<"
25
21
  - !ruby/object:Gem::Version
26
- version: '2.8'
27
- - !ruby/object:Gem::Dependency
28
- name: mongoid-compatibility
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 0.4.1
22
+ version: '8'
34
23
  type: :runtime
35
24
  prerelease: false
36
25
  version_requirements: !ruby/object:Gem::Requirement
37
26
  requirements:
38
27
  - - ">="
39
28
  - !ruby/object:Gem::Version
40
- version: 0.4.1
29
+ version: '4.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '8'
41
33
  description: Allows multiple processes to operate on individual documents in MongoDB
42
34
  while ensuring that only one can act at a time.
43
35
  email:
@@ -62,18 +54,10 @@ files:
62
54
  - RELEASING.md
63
55
  - Rakefile
64
56
  - UPGRADING.md
65
- - demo/README.md
66
- - demo/config/mongoid.yml
67
- - demo/instagram.graffle
68
- - demo/instagram.png
69
- - demo/showoff.css
70
- - demo/showoff.md
71
57
  - lib/mongoid-locker.rb
72
58
  - lib/mongoid/locker.rb
73
59
  - lib/mongoid/locker/version.rb
74
60
  - lib/mongoid/locker/wrapper.rb
75
- - lib/mongoid/locker/wrapper2.rb
76
- - lib/mongoid/locker/wrapper3.rb
77
61
  - lib/mongoid/locker/wrapper4.rb
78
62
  - lib/mongoid/locker/wrapper5.rb
79
63
  - lib/mongoid/locker/wrapper6.rb
@@ -98,8 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
82
  - !ruby/object:Gem::Version
99
83
  version: '0'
100
84
  requirements: []
101
- rubyforge_project:
102
- rubygems_version: 2.7.6
85
+ rubygems_version: 3.0.3
103
86
  signing_key:
104
87
  specification_version: 4
105
88
  summary: Document-level locking for MongoDB via Mongoid.