sequenced 3.2.0 → 4.0.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 +4 -4
- data/.github/workflows/ci.yml +100 -0
- data/Appraisals +19 -0
- data/CHANGELOG.md +10 -2
- data/Gemfile +8 -5
- data/README.md +1 -1
- data/Rakefile +18 -18
- data/gemfiles/rails_5_2.gemfile +17 -0
- data/gemfiles/rails_5_2.gemfile.lock +193 -0
- data/gemfiles/rails_6.gemfile +17 -0
- data/gemfiles/rails_6.gemfile.lock +204 -0
- data/gemfiles/rails_6_1.gemfile +17 -0
- data/gemfiles/rails_6_1.gemfile.lock +207 -0
- data/gemfiles/rails_7.gemfile +17 -0
- data/gemfiles/rails_7.gemfile.lock +206 -0
- data/gemfiles/rails_master.gemfile +17 -0
- data/gemfiles/rails_master.gemfile.lock +215 -0
- data/lib/sequenced/acts_as_sequenced.rb +3 -3
- data/lib/sequenced/generator.rb +11 -9
- data/lib/sequenced/version.rb +1 -1
- data/lib/sequenced.rb +5 -3
- data/sequenced.gemspec +7 -7
- metadata +18 -8
- data/.travis.yml +0 -13
data/lib/sequenced/generator.rb
CHANGED
@@ -21,7 +21,7 @@ module Sequenced
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def skip?
|
24
|
-
skip
|
24
|
+
skip&.call(record)
|
25
25
|
end
|
26
26
|
|
27
27
|
def next_id
|
@@ -32,8 +32,11 @@ module Sequenced
|
|
32
32
|
|
33
33
|
def next_id_in_sequence
|
34
34
|
start_at = self.start_at.respond_to?(:call) ? self.start_at.call(record) : self.start_at
|
35
|
-
|
36
|
-
|
35
|
+
if (last_record = find_last_record)
|
36
|
+
max(last_record.send(column) + 1, start_at)
|
37
|
+
else
|
38
|
+
start_at
|
39
|
+
end
|
37
40
|
end
|
38
41
|
|
39
42
|
def unique?(id)
|
@@ -44,7 +47,7 @@ module Sequenced
|
|
44
47
|
end.count == 0
|
45
48
|
end
|
46
49
|
|
47
|
-
|
50
|
+
private
|
48
51
|
|
49
52
|
def lock_table
|
50
53
|
if postgresql?
|
@@ -54,7 +57,7 @@ module Sequenced
|
|
54
57
|
|
55
58
|
def postgresql?
|
56
59
|
defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter) &&
|
57
|
-
record.class.connection.
|
60
|
+
record.class.connection.is_a?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
|
58
61
|
end
|
59
62
|
|
60
63
|
def base_relation
|
@@ -63,9 +66,9 @@ module Sequenced
|
|
63
66
|
|
64
67
|
def find_last_record
|
65
68
|
build_scope(*scope) do
|
66
|
-
base_relation
|
67
|
-
|
68
|
-
|
69
|
+
base_relation
|
70
|
+
.where("#{column} IS NOT NULL")
|
71
|
+
.order("#{column} DESC")
|
69
72
|
end.first
|
70
73
|
end
|
71
74
|
|
@@ -78,6 +81,5 @@ module Sequenced
|
|
78
81
|
def max(*values)
|
79
82
|
values.to_a.max
|
80
83
|
end
|
81
|
-
|
82
84
|
end
|
83
85
|
end
|
data/lib/sequenced/version.rb
CHANGED
data/lib/sequenced.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "sequenced/generator"
|
2
|
+
require "sequenced/acts_as_sequenced"
|
3
3
|
|
4
|
-
|
4
|
+
ActiveSupport.on_load(:active_record) do
|
5
|
+
include Sequenced::ActsAsSequenced
|
6
|
+
end
|
data/sequenced.gemspec
CHANGED
@@ -2,13 +2,13 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
2
2
|
require "sequenced/version"
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
|
-
s.name
|
6
|
-
s.version
|
7
|
-
s.authors
|
8
|
-
s.licenses
|
9
|
-
s.email
|
10
|
-
s.homepage
|
11
|
-
s.summary
|
5
|
+
s.name = "sequenced"
|
6
|
+
s.version = Sequenced::VERSION
|
7
|
+
s.authors = ["Derrick Reimer"]
|
8
|
+
s.licenses = ["MIT"]
|
9
|
+
s.email = ["derrickreimer@gmail.com"]
|
10
|
+
s.homepage = "https://github.com/derrickreimer/sequenced"
|
11
|
+
s.summary = "Generate scoped sequential IDs for ActiveRecord models"
|
12
12
|
s.description = "Sequenced is a gem that generates scoped sequential IDs for ActiveRecord models."
|
13
13
|
|
14
14
|
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequenced
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derrick Reimer
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -60,13 +60,24 @@ executables: []
|
|
60
60
|
extensions: []
|
61
61
|
extra_rdoc_files: []
|
62
62
|
files:
|
63
|
+
- ".github/workflows/ci.yml"
|
63
64
|
- ".gitignore"
|
64
|
-
-
|
65
|
+
- Appraisals
|
65
66
|
- CHANGELOG.md
|
66
67
|
- Gemfile
|
67
68
|
- MIT-LICENSE
|
68
69
|
- README.md
|
69
70
|
- Rakefile
|
71
|
+
- gemfiles/rails_5_2.gemfile
|
72
|
+
- gemfiles/rails_5_2.gemfile.lock
|
73
|
+
- gemfiles/rails_6.gemfile
|
74
|
+
- gemfiles/rails_6.gemfile.lock
|
75
|
+
- gemfiles/rails_6_1.gemfile
|
76
|
+
- gemfiles/rails_6_1.gemfile.lock
|
77
|
+
- gemfiles/rails_7.gemfile
|
78
|
+
- gemfiles/rails_7.gemfile.lock
|
79
|
+
- gemfiles/rails_master.gemfile
|
80
|
+
- gemfiles/rails_master.gemfile.lock
|
70
81
|
- lib/sequenced.rb
|
71
82
|
- lib/sequenced/acts_as_sequenced.rb
|
72
83
|
- lib/sequenced/generator.rb
|
@@ -76,7 +87,7 @@ homepage: https://github.com/derrickreimer/sequenced
|
|
76
87
|
licenses:
|
77
88
|
- MIT
|
78
89
|
metadata: {}
|
79
|
-
post_install_message:
|
90
|
+
post_install_message:
|
80
91
|
rdoc_options: []
|
81
92
|
require_paths:
|
82
93
|
- lib
|
@@ -91,9 +102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
102
|
- !ruby/object:Gem::Version
|
92
103
|
version: '0'
|
93
104
|
requirements: []
|
94
|
-
|
95
|
-
|
96
|
-
signing_key:
|
105
|
+
rubygems_version: 3.3.7
|
106
|
+
signing_key:
|
97
107
|
specification_version: 4
|
98
108
|
summary: Generate scoped sequential IDs for ActiveRecord models
|
99
109
|
test_files: []
|