ruby-ulid 0.1.6 → 0.2.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/README.md +8 -7
- data/lib/ulid/version.rb +1 -1
- data/lib/ulid.rb +2 -12
- data/sig/ulid.rbs +1 -2
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd21fa1c7af3acea07d2f4e6e7842927f1b33367e26b84bc5eef9a65a64c5582
|
4
|
+
data.tar.gz: da03f786abbbffa4411a4eb8b4ea189aecb3a920fb37026f1ae7f66398c5661f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41143d43ef0f41f7441d0f2570bd73cad4ac6e382ea531c5f8aa30fccd5a4ff99790a356c6563c577153857b56eca8545d1b561f66b1ccdb5baa2aa281f2b692
|
7
|
+
data.tar.gz: 8c3bca9d754e6003af6af000bcb0d63fddb779586f3022cb33771182efa41ee0939c8d0a781ede46807c5cbf106b3389fbbefb684122c3d5ba704a8921b9f9a5
|
data/README.md
CHANGED
@@ -10,8 +10,9 @@ Also providing [ruby/rbs](https://github.com/ruby/rbs) signature files.
|
|
10
10
|
|
11
11
|

|
12
12
|
|
13
|
-

|
13
|
+
[](https://github.com/kachick/ruby-ulid/actions/workflows/test_behaviors.yml/?branch=main)
|
14
14
|
[](http://badge.fury.io/rb/ruby-ulid)
|
15
|
+
[](https://github.dev/kachick/ruby-ulid)
|
15
16
|
|
16
17
|
## Universally Unique Lexicographically Sortable Identifier
|
17
18
|
|
@@ -37,7 +38,7 @@ Instead, herein is proposed ULID:
|
|
37
38
|
|
38
39
|
### Install
|
39
40
|
|
40
|
-
Require Ruby 2.
|
41
|
+
Require Ruby 2.7 or later
|
41
42
|
|
42
43
|
This command will install the latest version into your environment
|
43
44
|
|
@@ -49,7 +50,7 @@ Should be installed!
|
|
49
50
|
Add this line to your application/library's `Gemfile` is needed in basic use-case
|
50
51
|
|
51
52
|
```ruby
|
52
|
-
gem 'ruby-ulid', '
|
53
|
+
gem 'ruby-ulid', '~> 0.2.0'
|
53
54
|
```
|
54
55
|
|
55
56
|
### Generator and Parser
|
@@ -170,8 +171,7 @@ exclude_end = ULID.range(time1...time2) #=> The end of `Range[ULID]` will be the
|
|
170
171
|
|
171
172
|
# Below patterns are acceptable
|
172
173
|
pinpointing = ULID.range(time1..time1) #=> This will match only for all IDs in `time1`
|
173
|
-
|
174
|
-
until_the_end = ULID.range(ULID.min.to_time..time1) #=> This is same as above for Ruby 2.6
|
174
|
+
until_the_end = ULID.range(..time1) #=> This will match only for all IDs upto `time1`
|
175
175
|
until_the_ulid_limit = ULID.range(time1..) # This will match only for all IDs from `time1` to max value of the ULID limit
|
176
176
|
|
177
177
|
# So you can use the generated range objects as below
|
@@ -401,7 +401,7 @@ So you can replace the code as below
|
|
401
401
|
+ULID.generate.to_s
|
402
402
|
```
|
403
403
|
|
404
|
-
NOTE:
|
404
|
+
NOTE: In version before `1.3.0`, timestamps might not be correct value.
|
405
405
|
|
406
406
|
1. [Sort order does not respect millisecond ordering](https://github.com/rafaelsales/ulid/issues/22)
|
407
407
|
1. [Fixed in this PR](https://github.com/rafaelsales/ulid/pull/23)
|
@@ -425,11 +425,12 @@ Major methods can be replaced as below.
|
|
425
425
|
+ULID.max(time).to_s
|
426
426
|
```
|
427
427
|
|
428
|
-
NOTE:
|
428
|
+
NOTE: In version before `1.0.2`, timestamps might not be correct value.
|
429
429
|
|
430
430
|
1. [Parsed time object has more than milliseconds](https://github.com/abachman/ulid-ruby/issues/3)
|
431
431
|
1. [Fix to handle timestamp precision in parser](https://github.com/abachman/ulid-ruby/pull/5)
|
432
432
|
1. [Fix to handle timestamp precision in generator](https://github.com/abachman/ulid-ruby/pull/4)
|
433
|
+
1. [Released in 1.0.2](https://github.com/abachman/ulid-ruby/compare/v1.0.0...v1.0.2)
|
433
434
|
|
434
435
|
### Compare performance with them
|
435
436
|
|
data/lib/ulid/version.rb
CHANGED
data/lib/ulid.rb
CHANGED
@@ -208,11 +208,7 @@ class ULID
|
|
208
208
|
def self.floor(time)
|
209
209
|
raise ArgumentError, 'ULID.floor takes only `Time` instance' unless Time === time
|
210
210
|
|
211
|
-
|
212
|
-
time.floor(3)
|
213
|
-
else
|
214
|
-
Time.at(0, milliseconds_from_time(time), :millisecond)
|
215
|
-
end
|
211
|
+
time.floor(3)
|
216
212
|
end
|
217
213
|
|
218
214
|
# @api private
|
@@ -406,13 +402,7 @@ class ULID
|
|
406
402
|
|
407
403
|
# @return [Time]
|
408
404
|
def to_time
|
409
|
-
@time ||=
|
410
|
-
if RUBY_VERSION >= '2.7'
|
411
|
-
Time.at(0, @milliseconds, :millisecond, in: 'UTC').freeze
|
412
|
-
else
|
413
|
-
Time.at(0, @milliseconds, :millisecond).utc.freeze
|
414
|
-
end
|
415
|
-
end
|
405
|
+
@time ||= Time.at(0, @milliseconds, :millisecond, in: 'UTC').freeze
|
416
406
|
end
|
417
407
|
|
418
408
|
# @return [Array(Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer)]
|
data/sig/ulid.rbs
CHANGED
@@ -185,8 +185,7 @@ class ULID < Object
|
|
185
185
|
#
|
186
186
|
# # Below patterns are acceptable
|
187
187
|
# pinpointing = ULID.range(time1..time1) #=> This will match only for all IDs in `time1`
|
188
|
-
# until_the_end = ULID.range(..time1) #=> This will match only for all IDs upto `time1`
|
189
|
-
# until_the_end = ULID.range(ULID.min.to_time..time1) #=> This is same as above for Ruby 2.6
|
188
|
+
# until_the_end = ULID.range(..time1) #=> This will match only for all IDs upto `time1`
|
190
189
|
# until_the_ulid_limit = ULID.range(time1..) # This will match only for all IDs from `time1` to max value of the ULID limit
|
191
190
|
#
|
192
191
|
# # So you can use the generated range objects as below
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-ulid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kenichi Kamiya
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |2
|
14
14
|
The ULID(Universally Unique Lexicographically Sortable Identifier) has useful specs for applications (e.g. `Database key`), especially possess all `uniqueness`, `randomness`, `extractable timestamps` and `sortable` features.
|
@@ -37,7 +37,8 @@ metadata:
|
|
37
37
|
homepage_uri: https://github.com/kachick/ruby-ulid
|
38
38
|
source_code_uri: https://github.com/kachick/ruby-ulid
|
39
39
|
bug_tracker_uri: https://github.com/kachick/ruby-ulid/issues
|
40
|
-
|
40
|
+
rubygems_mfa_required: 'true'
|
41
|
+
post_install_message:
|
41
42
|
rdoc_options: []
|
42
43
|
require_paths:
|
43
44
|
- lib
|
@@ -45,15 +46,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
45
46
|
requirements:
|
46
47
|
- - ">="
|
47
48
|
- !ruby/object:Gem::Version
|
48
|
-
version: 2.
|
49
|
+
version: 2.7.0
|
49
50
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
51
|
requirements:
|
51
52
|
- - ">="
|
52
53
|
- !ruby/object:Gem::Version
|
53
54
|
version: '0'
|
54
55
|
requirements: []
|
55
|
-
rubygems_version: 3.
|
56
|
-
signing_key:
|
56
|
+
rubygems_version: 3.3.7
|
57
|
+
signing_key:
|
57
58
|
specification_version: 4
|
58
59
|
summary: ULID manipulation library
|
59
60
|
test_files: []
|