persistent-dmnd 1.0.0 β 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 +4 -4
- data/.gitlab-ci.yml +414 -0
- data/.ruby-version +1 -1
- data/README.adoc +18 -8
- data/bin/bundle +105 -0
- data/bin/pry +12 -4
- data/bin/rspec +12 -4
- data/gems.rb +3 -0
- data/lib/persistent-dmnd.rb +1 -0
- data/lib/persistent-/360/237/222/216.rb +5 -0
- data/lib/persistent_dmnd/array.rb +5 -0
- data/lib/persistent_dmnd/concurrent_ruby_support.rb +2 -1
- data/lib/persistent_dmnd/dmndifier.rb +2 -1
- data/lib/persistent_dmnd/everywhere.rb +1 -0
- data/lib/persistent_dmnd/hash.rb +6 -0
- data/lib/persistent_dmnd/is_persistent.rb +1 -0
- data/lib/persistent_dmnd/jruby_9_2_set_workaround.rb +155 -0
- data/lib/persistent_dmnd/jruby_workaround.rb +5 -5
- data/lib/persistent_dmnd/ruby_1_9_and_2_0_support.rb +1 -0
- data/lib/persistent_dmnd/self_conversion.rb +2 -0
- data/lib/persistent_dmnd/set.rb +15 -2
- data/lib/persistent_dmnd/version.rb +2 -1
- data/persistent-dmnd.gemspec +11 -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 +30 -20
- data/.travis.yml +0 -23
- data/Gemfile +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
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
ADDED
@@ -0,0 +1,414 @@
|
|
1
|
+
# MRI Ruby version list:
|
2
|
+
# https://hub.docker.com/r/library/ruby/tags/
|
3
|
+
|
4
|
+
testruby_1_9_3:
|
5
|
+
image: "ruby:1.9.3"
|
6
|
+
|
7
|
+
# Cache gems in between builds
|
8
|
+
cache:
|
9
|
+
paths:
|
10
|
+
- vendor/ruby
|
11
|
+
|
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
|
14
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
15
|
+
- apt-get install -y locales >/dev/null # |
|
16
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
17
|
+
- locale-gen en_US.UTF-8 # |
|
18
|
+
- export LANG=en_US.UTF-8 # |
|
19
|
+
- export LANGUAGE=en_US:en # |
|
20
|
+
- export LC_ALL=en_US.UTF-8 # v
|
21
|
+
- ruby -v # Print out ruby version for debugging
|
22
|
+
- gem install bundler -v '< 2' # Bundler is not installed with the image
|
23
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
24
|
+
|
25
|
+
script:
|
26
|
+
- bin/rspec
|
27
|
+
|
28
|
+
testruby_2_0:
|
29
|
+
image: "ruby:2.0"
|
30
|
+
|
31
|
+
# Cache gems in between builds
|
32
|
+
cache:
|
33
|
+
paths:
|
34
|
+
- vendor/ruby
|
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
|
38
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
39
|
+
- apt-get install -y locales >/dev/null # |
|
40
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
41
|
+
- locale-gen en_US.UTF-8 # |
|
42
|
+
- export LANG=en_US.UTF-8 # |
|
43
|
+
- export LANGUAGE=en_US:en # |
|
44
|
+
- export LC_ALL=en_US.UTF-8 # v
|
45
|
+
- ruby -v # Print out ruby version for debugging
|
46
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
47
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
48
|
+
|
49
|
+
script:
|
50
|
+
- bin/rspec
|
51
|
+
|
52
|
+
testruby_2_1:
|
53
|
+
image: "ruby:2.1"
|
54
|
+
|
55
|
+
# Cache gems in between builds
|
56
|
+
cache:
|
57
|
+
paths:
|
58
|
+
- vendor/ruby
|
59
|
+
|
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
|
62
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
63
|
+
- apt-get install -y locales >/dev/null # |
|
64
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
65
|
+
- locale-gen en_US.UTF-8 # |
|
66
|
+
- export LANG=en_US.UTF-8 # |
|
67
|
+
- export LANGUAGE=en_US:en # |
|
68
|
+
- export LC_ALL=en_US.UTF-8 # v
|
69
|
+
- ruby -v # Print out ruby version for debugging
|
70
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
71
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
72
|
+
|
73
|
+
script:
|
74
|
+
- bin/rspec
|
75
|
+
|
76
|
+
testruby_2_2:
|
77
|
+
image: "ruby:2.2"
|
78
|
+
|
79
|
+
# Cache gems in between builds
|
80
|
+
cache:
|
81
|
+
paths:
|
82
|
+
- vendor/ruby
|
83
|
+
|
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
|
86
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
87
|
+
- apt-get install -y locales >/dev/null # |
|
88
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
89
|
+
- locale-gen en_US.UTF-8 # |
|
90
|
+
- export LANG=en_US.UTF-8 # |
|
91
|
+
- export LANGUAGE=en_US:en # |
|
92
|
+
- export LC_ALL=en_US.UTF-8 # v
|
93
|
+
- ruby -v # Print out ruby version for debugging
|
94
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
95
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
96
|
+
|
97
|
+
script:
|
98
|
+
- bin/rspec
|
99
|
+
|
100
|
+
testruby_2_3:
|
101
|
+
image: "ruby:2.3"
|
102
|
+
|
103
|
+
# Cache gems in between builds
|
104
|
+
cache:
|
105
|
+
paths:
|
106
|
+
- vendor/ruby
|
107
|
+
|
108
|
+
before_script:
|
109
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
110
|
+
- apt-get install -y locales >/dev/null # |
|
111
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
112
|
+
- locale-gen en_US.UTF-8 # |
|
113
|
+
- export LANG=en_US.UTF-8 # |
|
114
|
+
- export LANGUAGE=en_US:en # |
|
115
|
+
- export LC_ALL=en_US.UTF-8 # v
|
116
|
+
- ruby -v # Print out ruby version for debugging
|
117
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
118
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
119
|
+
|
120
|
+
script:
|
121
|
+
- bin/rspec
|
122
|
+
|
123
|
+
testruby_2_4:
|
124
|
+
image: "ruby:2.4"
|
125
|
+
|
126
|
+
# Cache gems in between builds
|
127
|
+
cache:
|
128
|
+
paths:
|
129
|
+
- vendor/ruby
|
130
|
+
|
131
|
+
before_script:
|
132
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
133
|
+
- apt-get install -y locales >/dev/null # |
|
134
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
135
|
+
- locale-gen en_US.UTF-8 # |
|
136
|
+
- export LANG=en_US.UTF-8 # |
|
137
|
+
- export LANGUAGE=en_US:en # |
|
138
|
+
- export LC_ALL=en_US.UTF-8 # v
|
139
|
+
- ruby -v # Print out ruby version for debugging
|
140
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
141
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
142
|
+
|
143
|
+
script:
|
144
|
+
- bin/rspec
|
145
|
+
|
146
|
+
testruby_2_5:
|
147
|
+
image: "ruby:2.5"
|
148
|
+
|
149
|
+
# Cache gems in between builds
|
150
|
+
cache:
|
151
|
+
paths:
|
152
|
+
- vendor/ruby
|
153
|
+
|
154
|
+
before_script:
|
155
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
156
|
+
- apt-get install -y locales >/dev/null # |
|
157
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
158
|
+
- locale-gen en_US.UTF-8 # |
|
159
|
+
- export LANG=en_US.UTF-8 # |
|
160
|
+
- export LANGUAGE=en_US:en # |
|
161
|
+
- export LC_ALL=en_US.UTF-8 # v
|
162
|
+
- ruby -v # Print out ruby version for debugging
|
163
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
164
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
165
|
+
|
166
|
+
script:
|
167
|
+
- bin/rspec
|
168
|
+
|
169
|
+
testruby_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"
|
216
|
+
|
217
|
+
# Cache gems in between builds
|
218
|
+
cache:
|
219
|
+
paths:
|
220
|
+
- vendor/ruby
|
221
|
+
|
222
|
+
before_script:
|
223
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
224
|
+
- apt-get install -y locales >/dev/null # |
|
225
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
226
|
+
- locale-gen en_US.UTF-8 # |
|
227
|
+
- export LANG=en_US.UTF-8 # |
|
228
|
+
- export LANGUAGE=en_US:en # |
|
229
|
+
- export LC_ALL=en_US.UTF-8 # v
|
230
|
+
- ruby -v # Print out ruby version for debugging
|
231
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
232
|
+
|
233
|
+
script:
|
234
|
+
- bin/rspec
|
235
|
+
|
236
|
+
testjruby_1_7:
|
237
|
+
image: "jruby:1.7"
|
238
|
+
|
239
|
+
# Cache gems in between builds
|
240
|
+
cache:
|
241
|
+
paths:
|
242
|
+
- vendor/ruby
|
243
|
+
|
244
|
+
before_script:
|
245
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
246
|
+
- apt-get install -y locales >/dev/null # |
|
247
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
248
|
+
- locale-gen en_US.UTF-8 # |
|
249
|
+
- export LANG=en_US.UTF-8 # |
|
250
|
+
- export LANGUAGE=en_US:en # |
|
251
|
+
- export LC_ALL=en_US.UTF-8 # v
|
252
|
+
- apt-get install -y git >/dev/null # Add git binary
|
253
|
+
- export JRUBY_OPTS=--dev # Faster test runs
|
254
|
+
- ruby -v # Print out ruby version for debugging
|
255
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
256
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
257
|
+
|
258
|
+
script:
|
259
|
+
- bin/rspec
|
260
|
+
|
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"
|
292
|
+
|
293
|
+
# Cache gems in between builds
|
294
|
+
cache:
|
295
|
+
paths:
|
296
|
+
- vendor/ruby
|
297
|
+
|
298
|
+
before_script:
|
299
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
300
|
+
- apt-get install -y locales >/dev/null # |
|
301
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
302
|
+
- locale-gen en_US.UTF-8 # |
|
303
|
+
- export LANG=en_US.UTF-8 # |
|
304
|
+
- export LANGUAGE=en_US:en # |
|
305
|
+
- export LC_ALL=en_US.UTF-8 # v
|
306
|
+
- apt-get install -y git >/dev/null # Add git binary
|
307
|
+
- export JRUBY_OPTS=--dev # Faster test runs
|
308
|
+
- ruby -v # Print out ruby version for debugging
|
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
|
311
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
312
|
+
|
313
|
+
script:
|
314
|
+
- bin/rspec
|
315
|
+
|
316
|
+
testjruby_9_1:
|
317
|
+
image: "jruby:9.1"
|
318
|
+
|
319
|
+
# Cache gems in between builds
|
320
|
+
cache:
|
321
|
+
paths:
|
322
|
+
- vendor/ruby
|
323
|
+
|
324
|
+
before_script:
|
325
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
326
|
+
- apt-get install -y locales >/dev/null # |
|
327
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
328
|
+
- locale-gen en_US.UTF-8 # |
|
329
|
+
- export LANG=en_US.UTF-8 # |
|
330
|
+
- export LANGUAGE=en_US:en # |
|
331
|
+
- export LC_ALL=en_US.UTF-8 # v
|
332
|
+
- apt-get install -y git >/dev/null # Add git binary
|
333
|
+
- export JRUBY_OPTS=--dev # Faster test runs
|
334
|
+
- ruby -v # Print out ruby version for debugging
|
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
|
337
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
338
|
+
|
339
|
+
script:
|
340
|
+
- bin/rspec
|
341
|
+
|
342
|
+
# This is not repeated from the 9.2 below! 9.2.0.0 is a very specific version with a bug in the Set interoperability so
|
343
|
+
# we'll want to check that our workaround is working with this one even after the 9.2 branch moves on.
|
344
|
+
testjruby9_2_0_0:
|
345
|
+
image: "jruby:9.2.0.0"
|
346
|
+
|
347
|
+
# Cache gems in between builds
|
348
|
+
cache:
|
349
|
+
paths:
|
350
|
+
- vendor/ruby
|
351
|
+
|
352
|
+
before_script:
|
353
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
354
|
+
- apt-get install -y locales >/dev/null # |
|
355
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
356
|
+
- locale-gen en_US.UTF-8 # |
|
357
|
+
- export LANG=en_US.UTF-8 # |
|
358
|
+
- export LANGUAGE=en_US:en # |
|
359
|
+
- export LC_ALL=en_US.UTF-8 # v
|
360
|
+
- apt-get install -y git >/dev/null # Add git binary
|
361
|
+
- export JRUBY_OPTS=--dev # Faster test runs
|
362
|
+
- ruby -v # Print out ruby version for debugging
|
363
|
+
- gem install bundler:'< 2' # Bundler is not installed with the image
|
364
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
365
|
+
|
366
|
+
script:
|
367
|
+
- bin/rspec
|
368
|
+
|
369
|
+
testjruby_9_2:
|
370
|
+
image: "jruby:9.2"
|
371
|
+
|
372
|
+
# Cache gems in between builds
|
373
|
+
cache:
|
374
|
+
paths:
|
375
|
+
- vendor/ruby
|
376
|
+
|
377
|
+
before_script:
|
378
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
379
|
+
- apt-get install -y locales >/dev/null # |
|
380
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
381
|
+
- locale-gen en_US.UTF-8 # |
|
382
|
+
- export LANG=en_US.UTF-8 # |
|
383
|
+
- export LANGUAGE=en_US:en # |
|
384
|
+
- export LC_ALL=en_US.UTF-8 # v
|
385
|
+
- apt-get install -y git >/dev/null # Add git binary
|
386
|
+
- export JRUBY_OPTS=--dev # Faster test runs
|
387
|
+
- ruby -v # Print out ruby version for debugging
|
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
|
390
|
+
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
391
|
+
|
392
|
+
script:
|
393
|
+
- bin/rspec
|
394
|
+
|
395
|
+
testtruffleruby:
|
396
|
+
image: "danny02/graalvm"
|
397
|
+
|
398
|
+
before_script:
|
399
|
+
- gu install -c org.graalvm.ruby # Install TruffleRuby
|
400
|
+
- apt-get update >/dev/null # Add UTF-8 support
|
401
|
+
- apt-get install -y locales >/dev/null # |
|
402
|
+
- echo "en_US UTF-8" > /etc/locale.gen # |
|
403
|
+
- locale-gen en_US.UTF-8 # |
|
404
|
+
- export LANG=en_US.UTF-8 # |
|
405
|
+
- export LANGUAGE=en_US:en # |
|
406
|
+
- export LC_ALL=en_US.UTF-8 # v
|
407
|
+
- apt-get install -y git libssl-dev libssl1.1 clang llvm make >/dev/null # Add git binary + truffleruby dependencies
|
408
|
+
- /graalvm*/jre/languages/ruby/lib/truffle/post_install_hook.sh # Rebuild openssl extension, as suggested by install
|
409
|
+
# notes
|
410
|
+
- ruby -v # Print out ruby version for debugging
|
411
|
+
- bundle install -j $(nproc) # Install dependencies
|
412
|
+
|
413
|
+
script:
|
414
|
+
- bin/rspec
|
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
|
-
image:https://
|
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,7 +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
|
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!
|
101
103
|
|
102
104
|
[discrete]
|
103
105
|
== Contents
|
@@ -372,6 +374,8 @@ When you need to go from thread-safe immutable data structures to thread-safe mu
|
|
372
374
|
|
373
375
|
You'll need to install concurrent-ruby first, see https://github.com/ruby-concurrency/concurrent-ruby#installation for instructions.
|
374
376
|
|
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.
|
378
|
+
|
375
379
|
After that, you'll be able to:
|
376
380
|
|
377
381
|
==== Array
|
@@ -443,9 +447,9 @@ Every printable ascii character is already in use by Ruby, but I didn't want per
|
|
443
447
|
|
444
448
|
Thus, I kept my Ruby beautiful. With two very clear characters you can create an immutable data structure. No more awkward typing of namespaces. No more `.freeze` everywhere. No-one will ever mistake the use of `π` for another operation.
|
445
449
|
|
446
|
-
|
450
|
+
Alas, you may not agree with me! The good news is that you can avoid having `π` on your codebase altogether: just use `dmnd` as a replacement, as <<usage,documented above>>.
|
447
451
|
|
448
|
-
If you're having a hard time typing the emoji, I recommend just adding a quick snippet to your editor or a quick command to search-and-replace `aDmnd`/`hDmnd`/`sDmnd`/`dmndify` for `aπ`/`hπ`/`sπ`/`πify`. That way you get best of both worlds: easy to type, and
|
452
|
+
If you're having a hard time typing the emoji, I recommend just adding a quick snippet to your editor or a quick command to search-and-replace `aDmnd`/`hDmnd`/`sDmnd`/`dmndify` for `aπ`/`hπ`/`sπ`/`πify`. That way you get best of both worlds: easy to type, and beautiful to read!
|
449
453
|
|
450
454
|
== Usage on Ruby 1.9
|
451
455
|
|
@@ -468,13 +472,19 @@ To open a console with the gem loaded, run `bundle console`.
|
|
468
472
|
|
469
473
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to https://rubygems.org[rubygems.org].
|
470
474
|
|
475
|
+
== Feedback and success stories
|
476
|
+
|
477
|
+
Your feedback is welcome!
|
478
|
+
|
479
|
+
Please leave a comment on https://gitlab.com/ivoanjo/persistent-dmnd/issues/8 and share how persistent-π delighted (or disappointed? π±) you today!
|
480
|
+
|
471
481
|
== Contributing
|
472
482
|
|
473
|
-
Bug reports and pull requests are welcome on
|
483
|
+
Bug reports and pull requests are welcome on GitLab at https://gitlab.com/ivoanjo/persistent-dmnd.
|
474
484
|
|
475
485
|
This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the http://contributor-covenant.org[Contributor Covenant] code of conduct.
|
476
486
|
|
477
|
-
Maintained with πβ€οΈ by https://
|
487
|
+
Maintained with πβ€οΈ by https://ivoanjo.me/[Ivo Anjo].
|
478
488
|
|
479
489
|
== Thanks
|
480
490
|
|
@@ -488,7 +498,7 @@ The gem is available as open source under the terms of the https://opensource.or
|
|
488
498
|
|
489
499
|
== Code of Conduct
|
490
500
|
|
491
|
-
Everyone interacting in the Persistent-π projectβs codebases, issue trackers, chat rooms and mailing lists is expected to follow the https://
|
501
|
+
Everyone interacting in the Persistent-π projectβs codebases, issue trackers, chat rooms and mailing lists is expected to follow the https://gitlab.com/ivoanjo/persistent-dmnd/blob/master/CODE_OF_CONDUCT.adoc[code of conduct].
|
492
502
|
|
493
503
|
== Interesting links
|
494
504
|
|
@@ -496,4 +506,4 @@ Interested in immutable/persistent data structures? Here are some interesting re
|
|
496
506
|
|
497
507
|
* https://github.com/hamstergem/hamster[hamster gem]
|
498
508
|
* https://github.com/immutable-ruby/immutable-ruby[immmutable-ruby gem]
|
499
|
-
* https://
|
509
|
+
* https://gitlab.com/ivoanjo/persistent-dmnd/issues[Your suggestion here]
|