persistent-dmnd 1.0.4 β 2.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 +5 -5
- data/.gitlab-ci.yml +96 -17
- data/.ruby-version +1 -1
- data/README.adoc +5 -4
- data/gems.rb +3 -9
- data/lib/persistent-dmnd.rb +1 -0
- data/lib/persistent-/360/237/222/216.rb +1 -0
- data/lib/persistent_dmnd/array.rb +1 -0
- data/lib/persistent_dmnd/concurrent_ruby_support.rb +1 -0
- data/lib/persistent_dmnd/dmndifier.rb +1 -0
- data/lib/persistent_dmnd/everywhere.rb +1 -0
- data/lib/persistent_dmnd/hash.rb +1 -0
- data/lib/persistent_dmnd/is_persistent.rb +1 -0
- data/lib/persistent_dmnd/jruby_9_2_set_workaround.rb +1 -0
- data/lib/persistent_dmnd/jruby_workaround.rb +1 -0
- data/lib/persistent_dmnd/ruby_1_9_and_2_0_support.rb +1 -0
- data/lib/persistent_dmnd/self_conversion.rb +1 -0
- data/lib/persistent_dmnd/set.rb +11 -2
- data/lib/persistent_dmnd/version.rb +2 -1
- data/persistent-dmnd.gemspec +9 -9
- data/sorbet/config +2 -0
- data/sorbet/rbi/gems/concurrent-ruby.rbi +1587 -0
- data/sorbet/rbi/gems/hamster.rbi +682 -0
- data/sorbet/rbi/hidden-definitions/errors.txt +1473 -0
- data/sorbet/rbi/hidden-definitions/hidden.rbi +2877 -0
- data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +8684 -0
- data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +4222 -0
- data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +111 -0
- data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +543 -0
- data/sorbet/rbi/todo.rbi +10 -0
- metadata +39 -44
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 18107d065489d459738d19e722215ff48026e05cfada3ebc4b715cd23f581dd1
|
|
4
|
+
data.tar.gz: c017264cb8f9fa3b34e6e18840010a9f89167b0ec0dbdbe16a7e25910c97118a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 024bb094f00a73684868a10c1f44b082d3d19d67cbcec299771ce6b3d00c990d85fd636b8a5ae5e0f0f36309bce3e2d242c43dd32238a566f481dd1a7c3208a0
|
|
7
|
+
data.tar.gz: aa5d1cb013ba88de17850d4cb599f08f1d925f20f5bfbdacc976758472e4ca67838d44317f1d9cde1b79b56276165d102ab2b180f6acb44682fd3bb10d371f40
|
data/.gitlab-ci.yml
CHANGED
|
@@ -10,6 +10,7 @@ testruby_1_9_3:
|
|
|
10
10
|
- vendor/ruby
|
|
11
11
|
|
|
12
12
|
before_script:
|
|
13
|
+
- printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list
|
|
13
14
|
- apt-get update >/dev/null # Add UTF-8 support
|
|
14
15
|
- apt-get install -y locales >/dev/null # |
|
|
15
16
|
- echo "en_US UTF-8" > /etc/locale.gen # |
|
|
@@ -18,7 +19,7 @@ testruby_1_9_3:
|
|
|
18
19
|
- export LANGUAGE=en_US:en # |
|
|
19
20
|
- export LC_ALL=en_US.UTF-8 # v
|
|
20
21
|
- ruby -v # Print out ruby version for debugging
|
|
21
|
-
- gem install bundler
|
|
22
|
+
- gem install bundler -v '< 2' # Bundler is not installed with the image
|
|
22
23
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
23
24
|
|
|
24
25
|
script:
|
|
@@ -33,6 +34,7 @@ testruby_2_0:
|
|
|
33
34
|
- vendor/ruby
|
|
34
35
|
|
|
35
36
|
before_script:
|
|
37
|
+
- printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list
|
|
36
38
|
- apt-get update >/dev/null # Add UTF-8 support
|
|
37
39
|
- apt-get install -y locales >/dev/null # |
|
|
38
40
|
- echo "en_US UTF-8" > /etc/locale.gen # |
|
|
@@ -41,7 +43,7 @@ testruby_2_0:
|
|
|
41
43
|
- export LANGUAGE=en_US:en # |
|
|
42
44
|
- export LC_ALL=en_US.UTF-8 # v
|
|
43
45
|
- ruby -v # Print out ruby version for debugging
|
|
44
|
-
- gem install bundler
|
|
46
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
45
47
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
46
48
|
|
|
47
49
|
script:
|
|
@@ -56,6 +58,7 @@ testruby_2_1:
|
|
|
56
58
|
- vendor/ruby
|
|
57
59
|
|
|
58
60
|
before_script:
|
|
61
|
+
- printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list
|
|
59
62
|
- apt-get update >/dev/null # Add UTF-8 support
|
|
60
63
|
- apt-get install -y locales >/dev/null # |
|
|
61
64
|
- echo "en_US UTF-8" > /etc/locale.gen # |
|
|
@@ -64,7 +67,7 @@ testruby_2_1:
|
|
|
64
67
|
- export LANGUAGE=en_US:en # |
|
|
65
68
|
- export LC_ALL=en_US.UTF-8 # v
|
|
66
69
|
- ruby -v # Print out ruby version for debugging
|
|
67
|
-
- gem install bundler
|
|
70
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
68
71
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
69
72
|
|
|
70
73
|
script:
|
|
@@ -79,6 +82,7 @@ testruby_2_2:
|
|
|
79
82
|
- vendor/ruby
|
|
80
83
|
|
|
81
84
|
before_script:
|
|
85
|
+
- printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list
|
|
82
86
|
- apt-get update >/dev/null # Add UTF-8 support
|
|
83
87
|
- apt-get install -y locales >/dev/null # |
|
|
84
88
|
- echo "en_US UTF-8" > /etc/locale.gen # |
|
|
@@ -87,7 +91,7 @@ testruby_2_2:
|
|
|
87
91
|
- export LANGUAGE=en_US:en # |
|
|
88
92
|
- export LC_ALL=en_US.UTF-8 # v
|
|
89
93
|
- ruby -v # Print out ruby version for debugging
|
|
90
|
-
- gem install bundler
|
|
94
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
91
95
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
92
96
|
|
|
93
97
|
script:
|
|
@@ -110,7 +114,7 @@ testruby_2_3:
|
|
|
110
114
|
- export LANGUAGE=en_US:en # |
|
|
111
115
|
- export LC_ALL=en_US.UTF-8 # v
|
|
112
116
|
- ruby -v # Print out ruby version for debugging
|
|
113
|
-
- gem install bundler
|
|
117
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
114
118
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
115
119
|
|
|
116
120
|
script:
|
|
@@ -133,7 +137,7 @@ testruby_2_4:
|
|
|
133
137
|
- export LANGUAGE=en_US:en # |
|
|
134
138
|
- export LC_ALL=en_US.UTF-8 # v
|
|
135
139
|
- ruby -v # Print out ruby version for debugging
|
|
136
|
-
- gem install bundler
|
|
140
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
137
141
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
138
142
|
|
|
139
143
|
script:
|
|
@@ -156,14 +160,59 @@ testruby_2_5:
|
|
|
156
160
|
- export LANGUAGE=en_US:en # |
|
|
157
161
|
- export LC_ALL=en_US.UTF-8 # v
|
|
158
162
|
- ruby -v # Print out ruby version for debugging
|
|
159
|
-
- gem install bundler
|
|
163
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
160
164
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
161
165
|
|
|
162
166
|
script:
|
|
163
167
|
- bin/rspec
|
|
164
168
|
|
|
165
169
|
testruby_2_6:
|
|
166
|
-
image: "ruby:2.6
|
|
170
|
+
image: "ruby:2.6"
|
|
171
|
+
|
|
172
|
+
# Cache gems in between builds
|
|
173
|
+
cache:
|
|
174
|
+
paths:
|
|
175
|
+
- vendor/ruby
|
|
176
|
+
|
|
177
|
+
before_script:
|
|
178
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
|
179
|
+
- apt-get install -y locales >/dev/null # |
|
|
180
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
|
181
|
+
- locale-gen en_US.UTF-8 # |
|
|
182
|
+
- export LANG=en_US.UTF-8 # |
|
|
183
|
+
- export LANGUAGE=en_US:en # |
|
|
184
|
+
- export LC_ALL=en_US.UTF-8 # v
|
|
185
|
+
- ruby -v # Print out ruby version for debugging
|
|
186
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
187
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
188
|
+
|
|
189
|
+
script:
|
|
190
|
+
- bin/rspec
|
|
191
|
+
|
|
192
|
+
testruby_2_7:
|
|
193
|
+
image: "ruby:2.7"
|
|
194
|
+
|
|
195
|
+
# Cache gems in between builds
|
|
196
|
+
cache:
|
|
197
|
+
paths:
|
|
198
|
+
- vendor/ruby
|
|
199
|
+
|
|
200
|
+
before_script:
|
|
201
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
|
202
|
+
- apt-get install -y locales >/dev/null # |
|
|
203
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
|
204
|
+
- locale-gen en_US.UTF-8 # |
|
|
205
|
+
- export LANG=en_US.UTF-8 # |
|
|
206
|
+
- export LANGUAGE=en_US:en # |
|
|
207
|
+
- export LC_ALL=en_US.UTF-8 # v
|
|
208
|
+
- ruby -v # Print out ruby version for debugging
|
|
209
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
210
|
+
|
|
211
|
+
script:
|
|
212
|
+
- bin/rspec
|
|
213
|
+
|
|
214
|
+
testruby_3_0:
|
|
215
|
+
image: "ruby:3.0.0"
|
|
167
216
|
|
|
168
217
|
# Cache gems in between builds
|
|
169
218
|
cache:
|
|
@@ -179,7 +228,6 @@ testruby_2_6:
|
|
|
179
228
|
- export LANGUAGE=en_US:en # |
|
|
180
229
|
- export LC_ALL=en_US.UTF-8 # v
|
|
181
230
|
- ruby -v # Print out ruby version for debugging
|
|
182
|
-
- gem install bundler --no-ri --no-rdoc # Bundler is not installed with the image
|
|
183
231
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
184
232
|
|
|
185
233
|
script:
|
|
@@ -204,14 +252,43 @@ testjruby_1_7:
|
|
|
204
252
|
- apt-get install -y git >/dev/null # Add git binary
|
|
205
253
|
- export JRUBY_OPTS=--dev # Faster test runs
|
|
206
254
|
- ruby -v # Print out ruby version for debugging
|
|
207
|
-
- gem install bundler
|
|
255
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
208
256
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
209
257
|
|
|
210
258
|
script:
|
|
211
259
|
- bin/rspec
|
|
212
260
|
|
|
213
|
-
|
|
214
|
-
image: "jruby:9.0
|
|
261
|
+
testjruby_9_0:
|
|
262
|
+
image: "jruby:9.0"
|
|
263
|
+
|
|
264
|
+
# Cache gems in between builds
|
|
265
|
+
cache:
|
|
266
|
+
paths:
|
|
267
|
+
- vendor/ruby
|
|
268
|
+
|
|
269
|
+
before_script:
|
|
270
|
+
- rm /etc/apt/sources.list.d/jessie-backports.list
|
|
271
|
+
- apt-get update # Add UTF-8 support
|
|
272
|
+
- apt-get install -y locales >/dev/null # |
|
|
273
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
|
274
|
+
- locale-gen en_US.UTF-8 # |
|
|
275
|
+
- export LANG=en_US.UTF-8 # |
|
|
276
|
+
- export LANGUAGE=en_US:en # |
|
|
277
|
+
- export LC_ALL=en_US.UTF-8 # v
|
|
278
|
+
- apt-get install -y git >/dev/null # Add git binary
|
|
279
|
+
- export JRUBY_OPTS=--dev # Faster test runs
|
|
280
|
+
- ruby -v # Print out ruby version for debugging
|
|
281
|
+
- wget https://rubygems.org/downloads/jruby-openssl-0.9.21-java.gem # Needed to support newer ciphers when connecting to rubygems.org (otherwise gem downloads fail)
|
|
282
|
+
- gem install jruby-openssl-0.9.21-java.gem # Install the newer gem
|
|
283
|
+
- gem uninstall -x -i /opt/jruby/lib/ruby/gems/shared bundler # Remove any pre-existing bundler
|
|
284
|
+
- gem install bundler:'< 2' # Install latest bundler 1.x
|
|
285
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
286
|
+
|
|
287
|
+
script:
|
|
288
|
+
- bin/rspec
|
|
289
|
+
|
|
290
|
+
testjruby_9_1:
|
|
291
|
+
image: "jruby:9.1"
|
|
215
292
|
|
|
216
293
|
# Cache gems in between builds
|
|
217
294
|
cache:
|
|
@@ -229,7 +306,8 @@ testjruby_9_0_1_0:
|
|
|
229
306
|
- apt-get install -y git >/dev/null # Add git binary
|
|
230
307
|
- export JRUBY_OPTS=--dev # Faster test runs
|
|
231
308
|
- ruby -v # Print out ruby version for debugging
|
|
232
|
-
- gem
|
|
309
|
+
- gem uninstall -x -i /opt/jruby/lib/ruby/gems/shared bundler # Remove any pre-existing bundler
|
|
310
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
233
311
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
234
312
|
|
|
235
313
|
script:
|
|
@@ -254,7 +332,8 @@ testjruby_9_1:
|
|
|
254
332
|
- apt-get install -y git >/dev/null # Add git binary
|
|
255
333
|
- export JRUBY_OPTS=--dev # Faster test runs
|
|
256
334
|
- ruby -v # Print out ruby version for debugging
|
|
257
|
-
- gem
|
|
335
|
+
- gem uninstall -x -i /opt/jruby/lib/ruby/gems/shared bundler # Remove any pre-existing bundler
|
|
336
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
258
337
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
259
338
|
|
|
260
339
|
script:
|
|
@@ -281,7 +360,7 @@ testjruby9_2_0_0:
|
|
|
281
360
|
- apt-get install -y git >/dev/null # Add git binary
|
|
282
361
|
- export JRUBY_OPTS=--dev # Faster test runs
|
|
283
362
|
- ruby -v # Print out ruby version for debugging
|
|
284
|
-
- gem install bundler
|
|
363
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
285
364
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
286
365
|
|
|
287
366
|
script:
|
|
@@ -306,7 +385,8 @@ testjruby_9_2:
|
|
|
306
385
|
- apt-get install -y git >/dev/null # Add git binary
|
|
307
386
|
- export JRUBY_OPTS=--dev # Faster test runs
|
|
308
387
|
- ruby -v # Print out ruby version for debugging
|
|
309
|
-
- gem
|
|
388
|
+
- gem uninstall -a -x -i /opt/jruby/lib/ruby/gems/shared bundler # Remove any pre-existing bundler
|
|
389
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
|
310
390
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
|
311
391
|
|
|
312
392
|
script:
|
|
@@ -328,7 +408,6 @@ testtruffleruby:
|
|
|
328
408
|
- /graalvm*/jre/languages/ruby/lib/truffle/post_install_hook.sh # Rebuild openssl extension, as suggested by install
|
|
329
409
|
# notes
|
|
330
410
|
- ruby -v # Print out ruby version for debugging
|
|
331
|
-
- gem install bundler --no-ri --no-rdoc # Bundler is not installed with the image
|
|
332
411
|
- bundle install -j $(nproc) # Install dependencies
|
|
333
412
|
|
|
334
413
|
script:
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ruby-
|
|
1
|
+
ruby-3.0.0
|
data/README.adoc
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
:toclevels: 4
|
|
5
5
|
:toc-title:
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
image:https://badge.fury.io/rb/persistent-dmnd.svg["Gem Version", link="https://badge.fury.io/rb/persistent-dmnd"]
|
|
8
8
|
|
|
9
9
|
Are you tired of calling `.freeze` on your data structures (or your colleagues forgetting to do so)? +
|
|
10
10
|
Do you wish Ruby had a literal for creating immutable arrays?
|
|
@@ -97,8 +97,9 @@ It also (_optionally!_) interoperates with the https://github.com/ruby-concurren
|
|
|
97
97
|
Underneath the covers, persistent-π mostly builds atop the awesome https://github.com/hamstergem/hamster[hamster gem].
|
|
98
98
|
Big thanks to its equally-awesome authors!
|
|
99
99
|
|
|
100
|
-
Persistent-π is fully supported and tested on Ruby versions 1.9.3 to
|
|
101
|
-
If we don't support your Ruby, it's probably a Python binary instead
|
|
100
|
+
Persistent-π is fully supported and tested on Ruby versions 1.9.3 to 3.0.0, JRuby 1.7 to 9.2, and TruffleRuby 1.0+ π.
|
|
101
|
+
If we don't support your Ruby, it's probably a Python binary instead (or a potato?).
|
|
102
|
+
Keep calm and π away!
|
|
102
103
|
|
|
103
104
|
[discrete]
|
|
104
105
|
== Contents
|
|
@@ -373,7 +374,7 @@ When you need to go from thread-safe immutable data structures to thread-safe mu
|
|
|
373
374
|
|
|
374
375
|
You'll need to install concurrent-ruby first, see https://github.com/ruby-concurrency/concurrent-ruby#installation for instructions.
|
|
375
376
|
|
|
376
|
-
NOTE: If you're using TruffleRuby, you'll need to use concurrent-ruby >= 1.1.0
|
|
377
|
+
NOTE: If you're using TruffleRuby, you'll need to use concurrent-ruby >= 1.1.0, as older versions did not work correctly on TruffleRuby.
|
|
377
378
|
|
|
378
379
|
After that, you'll be able to:
|
|
379
380
|
|
data/gems.rb
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# typed: false
|
|
3
|
+
|
|
1
4
|
source 'https://rubygems.org'
|
|
2
5
|
|
|
3
6
|
gemspec
|
|
@@ -6,12 +9,3 @@ gemspec
|
|
|
6
9
|
# and JRuby with the same gems.lock
|
|
7
10
|
# Only used in development
|
|
8
11
|
gem 'ffi', '~> 1.9.18'
|
|
9
|
-
|
|
10
|
-
# As of this writing, the latest available version of concurrent-ruby on
|
|
11
|
-
# rubygems.org is 1.1.0.pre1, which is broken on TruffleRuby -- at least version
|
|
12
|
-
# 1.1.0.pre2 is needed to support it.
|
|
13
|
-
# So for now, let's use the git version of concurrent-ruby in development, so we
|
|
14
|
-
# can run the full test suite for the gem locally and in CI.
|
|
15
|
-
if RUBY_ENGINE == 'truffleruby'
|
|
16
|
-
gem 'concurrent-ruby', git: 'https://github.com/ruby-concurrency/concurrent-ruby'
|
|
17
|
-
end
|
data/lib/persistent-dmnd.rb
CHANGED
data/lib/persistent_dmnd/hash.rb
CHANGED
data/lib/persistent_dmnd/set.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
|
+
# typed: true
|
|
2
3
|
|
|
3
4
|
# Persistent-π: Ruby gem for easily creating immutable data structures
|
|
4
5
|
# Copyright (c) 2017 Ivo Anjo <ivo.anjo@ist.utl.pt>
|
|
@@ -64,9 +65,17 @@ module Persistentπ
|
|
|
64
65
|
::Set.new(self)
|
|
65
66
|
end
|
|
66
67
|
|
|
67
|
-
#
|
|
68
|
+
# Note: Behavior changed from Ruby < 3 (returned 0/nil) to match Ruby 3.0 Set#<=> (returns 0/nil/-1/+1);
|
|
69
|
+
# see also https://rubyreferences.github.io/rubychanges/3.0.html#standard-library for details
|
|
68
70
|
def <=>(other)
|
|
69
|
-
|
|
71
|
+
case size <=> other.size
|
|
72
|
+
when (-1)
|
|
73
|
+
(-1) if self < other
|
|
74
|
+
when (+1)
|
|
75
|
+
(+1) if self > other
|
|
76
|
+
else
|
|
77
|
+
0 if self == other
|
|
78
|
+
end
|
|
70
79
|
end
|
|
71
80
|
|
|
72
81
|
def to_aπ
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
|
+
# typed: strong
|
|
2
3
|
|
|
3
4
|
# Persistent-π: Ruby gem for easily creating immutable data structures
|
|
4
5
|
# Copyright (c) 2017 Ivo Anjo <ivo.anjo@ist.utl.pt>
|
|
@@ -30,5 +31,5 @@
|
|
|
30
31
|
# frozen_string_literal: true
|
|
31
32
|
|
|
32
33
|
module Persistentπ
|
|
33
|
-
VERSION = '
|
|
34
|
+
VERSION = '2.0.0'
|
|
34
35
|
end
|
data/persistent-dmnd.gemspec
CHANGED
|
@@ -37,7 +37,7 @@ Gem::Specification.new do |spec|
|
|
|
37
37
|
spec.name = 'persistent-dmnd'
|
|
38
38
|
spec.version = Persistentπ::VERSION
|
|
39
39
|
spec.authors = 'Ivo Anjo'
|
|
40
|
-
spec.email = 'ivo
|
|
40
|
+
spec.email = 'ivo@ivoanjo.me'
|
|
41
41
|
|
|
42
42
|
spec.summary = 'Persistent-π: Because Immutable Data Is Forever'
|
|
43
43
|
spec.description = 'A tiny ruby gem that gives you a beautiful short-hand syntax for creating immutable arrays, hashes and sets'
|
|
@@ -51,15 +51,15 @@ Gem::Specification.new do |spec|
|
|
|
51
51
|
|
|
52
52
|
spec.required_ruby_version = '>= 1.9.3'
|
|
53
53
|
|
|
54
|
-
spec.add_development_dependency 'bundler', '~> 1.16'
|
|
55
|
-
spec.add_development_dependency 'rake', '~> 12.2'
|
|
56
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
|
57
|
-
spec.add_development_dependency 'concurrent-ruby', '~> 1.
|
|
58
|
-
spec.add_development_dependency '
|
|
59
|
-
spec.add_development_dependency '
|
|
60
|
-
spec.add_development_dependency 'pry'
|
|
61
|
-
spec.add_development_dependency 'pry-byebug' if RUBY_ENGINE == 'ruby' && !RUBY_VERSION.start_with?('1.9.')
|
|
54
|
+
spec.add_development_dependency 'bundler', '~> 1.16' if RUBY_VERSION < '2.7'
|
|
55
|
+
spec.add_development_dependency 'rake', '~> 12.2' # Note: Rake 12.2 is the last that supports Ruby 1.9
|
|
56
|
+
spec.add_development_dependency 'rspec', '~> 3.8'
|
|
57
|
+
spec.add_development_dependency 'concurrent-ruby', '~> 1.1'
|
|
58
|
+
spec.add_development_dependency 'rufo', '~> 0.7' if RUBY_VERSION >= '2.4.5'
|
|
59
|
+
spec.add_development_dependency 'pry' if RUBY_VERSION >= '2.0.0'
|
|
60
|
+
spec.add_development_dependency 'pry-byebug' if RUBY_ENGINE == 'ruby' && RUBY_VERSION >= '2.4'
|
|
62
61
|
spec.add_development_dependency 'pry-debugger-jruby' if RUBY_ENGINE == 'jruby' && !JRUBY_VERSION.start_with?('1.7.')
|
|
62
|
+
spec.add_development_dependency 'sorbet' if RUBY_VERSION < '2.7'
|
|
63
63
|
|
|
64
64
|
spec.add_dependency 'hamster', '~> 3.0'
|
|
65
65
|
end
|