erlang_rb 1.7.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/README.markdown +1 -1
- data/lib/erlang.rb +88 -30
- data/tests/erlang_tests.rb +66 -4
- metadata +23 -24
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b36f62f8d5c49daf16b3120596ff2d523a58820385d0375b4c891becb66d1abf
|
4
|
+
data.tar.gz: a7f2a937601cf8eb8feddf3187609515cdb82f8a1cd2e8f07a283efdc59c3703
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab7a769ac8640a49878e7c700e162fd639649295fdc387312048e5fb9f9bcda44e4427033d6a82f685d61b1fe3504cfe8ac23932ac0f37d75c35c2a9cc676e8b
|
7
|
+
data.tar.gz: b7efca768abbd4b0a7409838cea35d1405dec08417edf83bbaf331e534d420c8916f52298fa5e1a527ef00c9d072fb7e4c85d6c5edcef42868855fdcc5035560
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/README.markdown
CHANGED
data/lib/erlang.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
#
|
4
4
|
# MIT License
|
5
5
|
#
|
6
|
-
# Copyright (c) 2011-
|
6
|
+
# Copyright (c) 2011-2019 Michael Truog <mjtruog at protonmail dot com>
|
7
7
|
#
|
8
8
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
9
9
|
# copy of this software and associated documentation files (the "Software"),
|
@@ -192,8 +192,16 @@ module Erlang
|
|
192
192
|
attr_reader :serial
|
193
193
|
attr_reader :creation
|
194
194
|
def binary
|
195
|
-
|
196
|
-
|
195
|
+
creation_size = @creation.bytesize
|
196
|
+
if creation_size == 1
|
197
|
+
return "#{TAG_PID_EXT.chr}" \
|
198
|
+
"#{@node.binary}#{@id}#{@serial}#{@creation}"
|
199
|
+
elsif creation_size == 4
|
200
|
+
return "#{TAG_NEW_PID_EXT.chr}" \
|
201
|
+
"#{@node.binary}#{@id}#{@serial}#{@creation}"
|
202
|
+
else
|
203
|
+
raise OutputException, 'unknown pid type', caller
|
204
|
+
end
|
197
205
|
end
|
198
206
|
def to_s
|
199
207
|
return "#{self.class.name}" \
|
@@ -219,7 +227,16 @@ module Erlang
|
|
219
227
|
attr_reader :id
|
220
228
|
attr_reader :creation
|
221
229
|
def binary
|
222
|
-
|
230
|
+
creation_size = @creation.bytesize
|
231
|
+
if creation_size == 1
|
232
|
+
return "#{TAG_PORT_EXT.chr}" \
|
233
|
+
"#{@node.binary}#{@id}#{@creation}"
|
234
|
+
elsif creation_size == 4
|
235
|
+
return "#{TAG_NEW_PORT_EXT.chr}" \
|
236
|
+
"#{@node.binary}#{@id}#{@creation}"
|
237
|
+
else
|
238
|
+
raise OutputException, 'unknown port type', caller
|
239
|
+
end
|
223
240
|
end
|
224
241
|
def to_s
|
225
242
|
return "#{self.class.name}" \
|
@@ -250,8 +267,16 @@ module Erlang
|
|
250
267
|
"#{@node.binary}#{@id}#{@creation}"
|
251
268
|
elsif length <= 65535
|
252
269
|
length_packed = [length].pack('n')
|
253
|
-
|
254
|
-
|
270
|
+
creation_size = @creation.bytesize
|
271
|
+
if creation_size == 1
|
272
|
+
return "#{TAG_NEW_REFERENCE_EXT.chr}#{length_packed}" \
|
273
|
+
"#{@node.binary}#{@creation}#{@id}"
|
274
|
+
elsif creation_size == 4
|
275
|
+
return "#{TAG_NEWER_REFERENCE_EXT.chr}#{length_packed}" \
|
276
|
+
"#{@node.binary}#{@creation}#{@id}"
|
277
|
+
else
|
278
|
+
raise OutputException, 'unknown reference type', caller
|
279
|
+
end
|
255
280
|
else
|
256
281
|
raise OutputException, 'uint16 overflow', caller
|
257
282
|
end
|
@@ -354,27 +379,38 @@ module Erlang
|
|
354
379
|
else
|
355
380
|
raise ParseException, 'invalid atom_name latin1', caller
|
356
381
|
end
|
357
|
-
elsif tag ==
|
382
|
+
elsif tag == TAG_NEW_PORT_EXT or \
|
383
|
+
tag == TAG_REFERENCE_EXT or tag == TAG_PORT_EXT
|
358
384
|
result = binary_to_atom(i, data)
|
359
385
|
i = result[0]; node = result[1]
|
360
386
|
id = data[i,4]
|
361
387
|
i += 4
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
388
|
+
if tag == TAG_NEW_PORT_EXT
|
389
|
+
creation = data[i,4]
|
390
|
+
i += 4
|
391
|
+
else
|
392
|
+
creation = data[i]
|
393
|
+
i += 1
|
394
|
+
if tag == TAG_REFERENCE_EXT
|
395
|
+
return [i, OtpErlangReference.new(node, id, creation)]
|
396
|
+
end
|
368
397
|
end
|
369
|
-
|
398
|
+
# tag == TAG_NEW_PORT_EXT or tag == TAG_PORT_EXT
|
399
|
+
return [i, OtpErlangPort.new(node, id, creation)]
|
400
|
+
elsif tag == TAG_NEW_PID_EXT or tag == TAG_PID_EXT
|
370
401
|
result = binary_to_atom(i, data)
|
371
402
|
i = result[0]; node = result[1]
|
372
403
|
id = data[i,4]
|
373
404
|
i += 4
|
374
405
|
serial = data[i,4]
|
375
406
|
i += 4
|
376
|
-
|
377
|
-
|
407
|
+
if tag == TAG_NEW_PID_EXT
|
408
|
+
creation = data[i,4]
|
409
|
+
i += 4
|
410
|
+
elsif tag == TAG_PID_EXT
|
411
|
+
creation = data[i]
|
412
|
+
i += 1
|
413
|
+
end
|
378
414
|
return [i, OtpErlangPid.new(node, id, serial, creation)]
|
379
415
|
elsif tag == TAG_SMALL_TUPLE_EXT or tag == TAG_LARGE_TUPLE_EXT
|
380
416
|
if tag == TAG_SMALL_TUPLE_EXT
|
@@ -402,7 +438,7 @@ module Erlang
|
|
402
438
|
i = result[0]; tail = result[1]
|
403
439
|
if tail.kind_of?(OtpErlangList) == false or tail.value != []
|
404
440
|
tmp.push(tail)
|
405
|
-
tmp = OtpErlangList.new(tmp,
|
441
|
+
tmp = OtpErlangList.new(tmp, true)
|
406
442
|
else
|
407
443
|
tmp = OtpErlangList.new(tmp)
|
408
444
|
end
|
@@ -436,23 +472,28 @@ module Erlang
|
|
436
472
|
elsif tag == TAG_EXPORT_EXT
|
437
473
|
old_i = i
|
438
474
|
result = binary_to_atom(i, data)
|
439
|
-
i = result[0]
|
475
|
+
i = result[0]#; name_module = result[1]
|
440
476
|
result = binary_to_atom(i, data)
|
441
|
-
i = result[0]
|
477
|
+
i = result[0]#; function = result[1]
|
442
478
|
if data[i].ord != TAG_SMALL_INTEGER_EXT
|
443
479
|
raise ParseException, 'invalid small integer tag', caller
|
444
480
|
end
|
445
481
|
i += 1
|
446
|
-
arity = data[i].ord
|
482
|
+
#arity = data[i].ord
|
447
483
|
i += 1
|
448
484
|
return [i, OtpErlangFunction.new(tag, data[old_i,i - old_i])]
|
449
|
-
elsif tag == TAG_NEW_REFERENCE_EXT
|
485
|
+
elsif tag == TAG_NEWER_REFERENCE_EXT or tag == TAG_NEW_REFERENCE_EXT
|
450
486
|
j = data[i,2].unpack('n')[0] * 4
|
451
487
|
i += 2
|
452
488
|
result = binary_to_atom(i, data)
|
453
489
|
i = result[0]; node = result[1]
|
454
|
-
|
455
|
-
|
490
|
+
if tag == TAG_NEWER_REFERENCE_EXT
|
491
|
+
creation = data[i,4]
|
492
|
+
i += 4
|
493
|
+
elsif tag == TAG_NEW_REFERENCE_EXT
|
494
|
+
creation = data[i]
|
495
|
+
i += 1
|
496
|
+
end
|
456
497
|
id = data[i,j]
|
457
498
|
return [i + j, OtpErlangReference.new(node, id, creation)]
|
458
499
|
elsif tag == TAG_SMALL_ATOM_EXT
|
@@ -485,18 +526,18 @@ module Erlang
|
|
485
526
|
return [i, pairs]
|
486
527
|
elsif tag == TAG_FUN_EXT
|
487
528
|
old_i = i
|
488
|
-
numfree = data[i,4].unpack('N')[0]
|
529
|
+
#numfree = data[i,4].unpack('N')[0]
|
489
530
|
i += 4
|
490
531
|
result = binary_to_pid(i, data)
|
491
|
-
i = result[0]
|
532
|
+
i = result[0]#; pid = result[1]
|
492
533
|
result = binary_to_atom(i, data)
|
493
|
-
i = result[0]
|
534
|
+
i = result[0]#; name_module = result[1]
|
494
535
|
result = binary_to_integer(i, data)
|
495
|
-
i = result[0]
|
536
|
+
i = result[0]#; index = result[1]
|
496
537
|
result = binary_to_integer(i, data)
|
497
|
-
i = result[0]
|
538
|
+
i = result[0]#; uniq = result[1]
|
498
539
|
result = binary_to_term_sequence(i, numfree, data)
|
499
|
-
i = result[0]
|
540
|
+
i = result[0]#; free = result[1]
|
500
541
|
return [i, OtpErlangFunction.new(tag, data[old_i,i - old_i])]
|
501
542
|
elsif tag == TAG_ATOM_UTF8_EXT
|
502
543
|
j = data[i,2].unpack('n')[0]
|
@@ -570,7 +611,17 @@ module Erlang
|
|
570
611
|
def self.binary_to_pid(i, data)
|
571
612
|
tag = data[i].ord
|
572
613
|
i += 1
|
573
|
-
if tag ==
|
614
|
+
if tag == TAG_NEW_PID_EXT
|
615
|
+
result = binary_to_atom(i, data)
|
616
|
+
i = result[0]; node = result[1]
|
617
|
+
id = data[i,4]
|
618
|
+
i += 4
|
619
|
+
serial = data[i,4]
|
620
|
+
i += 4
|
621
|
+
creation = data[i,4]
|
622
|
+
i += 4
|
623
|
+
return [i, OtpErlangPid.new(node, id, serial, creation)]
|
624
|
+
elsif tag == TAG_PID_EXT
|
574
625
|
result = binary_to_atom(i, data)
|
575
626
|
i = result[0]; node = result[1]
|
576
627
|
id = data[i,4]
|
@@ -644,6 +695,10 @@ module Erlang
|
|
644
695
|
return OtpErlangAtom.new(
|
645
696
|
'false'.force_encoding('ISO-8859-1')
|
646
697
|
).binary
|
698
|
+
elsif term.nil?
|
699
|
+
return OtpErlangAtom.new(
|
700
|
+
'undefined'.force_encoding('ISO-8859-1')
|
701
|
+
).binary
|
647
702
|
elsif term.kind_of?(OtpErlangAtom)
|
648
703
|
return term.binary
|
649
704
|
elsif term.kind_of?(OtpErlangList)
|
@@ -772,6 +827,9 @@ module Erlang
|
|
772
827
|
TAG_NEW_FLOAT_EXT = 70
|
773
828
|
TAG_BIT_BINARY_EXT = 77
|
774
829
|
TAG_ATOM_CACHE_REF = 78
|
830
|
+
TAG_NEW_PID_EXT = 88
|
831
|
+
TAG_NEW_PORT_EXT = 89
|
832
|
+
TAG_NEWER_REFERENCE_EXT = 90
|
775
833
|
TAG_SMALL_INTEGER_EXT = 97
|
776
834
|
TAG_INTEGER_EXT = 98
|
777
835
|
TAG_FLOAT_EXT = 99
|
data/tests/erlang_tests.rb
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
#
|
5
5
|
# MIT License
|
6
6
|
#
|
7
|
-
# Copyright (c) 2014-
|
7
|
+
# Copyright (c) 2014-2019 Michael Truog <mjtruog at protonmail dot com>
|
8
8
|
# Copyright (c) 2009-2013 Dmitry Vasiliev <dima@hlabs.org>
|
9
9
|
#
|
10
10
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
@@ -70,7 +70,7 @@ end
|
|
70
70
|
|
71
71
|
class ImproperListTestCase < Test::Unit::TestCase
|
72
72
|
def test_improper_list
|
73
|
-
lst = Erlang::OtpErlangList.new([1, 2, 3, 4],
|
73
|
+
lst = Erlang::OtpErlangList.new([1, 2, 3, 4], true)
|
74
74
|
assert(lst.kind_of?(Erlang::OtpErlangList))
|
75
75
|
assert_equal(Erlang::OtpErlangList.new([1, 2, 3, 4]).value, lst.value)
|
76
76
|
assert_equal(4, lst.value[-1])
|
@@ -89,7 +89,7 @@ class ImproperListTestCase < Test::Unit::TestCase
|
|
89
89
|
end
|
90
90
|
def test_errors
|
91
91
|
assert_raise(Erlang::OutputException){
|
92
|
-
Erlang::OtpErlangList.new('invalid',
|
92
|
+
Erlang::OtpErlangList.new('invalid', true).binary
|
93
93
|
}
|
94
94
|
end
|
95
95
|
end
|
@@ -331,6 +331,67 @@ class DecodeTestCase < Test::Unit::TestCase
|
|
331
331
|
assert_equal(-6618611909121,
|
332
332
|
Erlang::binary_to_term("\x83o\0\0\0\6\1\1\2\3\4\5\6"))
|
333
333
|
end
|
334
|
+
def test_binary_to_term_pid
|
335
|
+
pid_old_binary = (
|
336
|
+
"\x83\x67\x64\x00\x0D\x6E\x6F\x6E\x6F\x64\x65\x40\x6E\x6F" \
|
337
|
+
"\x68\x6F\x73\x74\x00\x00\x00\x4E\x00\x00\x00\x00\x00"
|
338
|
+
)
|
339
|
+
pid_old = Erlang::binary_to_term(pid_old_binary)
|
340
|
+
assert(pid_old.kind_of?(Erlang::OtpErlangPid))
|
341
|
+
assert_equal(Erlang::term_to_binary(pid_old),
|
342
|
+
"\x83gs\rnonode@nohost\x00\x00\x00N" \
|
343
|
+
"\x00\x00\x00\x00\x00")
|
344
|
+
pid_new_binary = (
|
345
|
+
"\x83\x58\x64\x00\x0D\x6E\x6F\x6E\x6F\x64\x65\x40\x6E\x6F\x68" \
|
346
|
+
"\x6F\x73\x74\x00\x00\x00\x4E\x00\x00\x00\x00\x00\x00\x00\x00"
|
347
|
+
)
|
348
|
+
pid_new = Erlang::binary_to_term(pid_new_binary)
|
349
|
+
assert(pid_new.kind_of?(Erlang::OtpErlangPid))
|
350
|
+
assert_equal(Erlang::term_to_binary(pid_new),
|
351
|
+
"\x83Xs\rnonode@nohost\x00\x00\x00N" \
|
352
|
+
"\x00\x00\x00\x00\x00\x00\x00\x00")
|
353
|
+
end
|
354
|
+
def test_binary_to_term_port
|
355
|
+
port_old_binary = (
|
356
|
+
"\x83\x66\x64\x00\x0D\x6E\x6F\x6E\x6F\x64\x65\x40\x6E\x6F\x68" \
|
357
|
+
"\x6F\x73\x74\x00\x00\x00\x06\x00"
|
358
|
+
)
|
359
|
+
port_old = Erlang::binary_to_term(port_old_binary)
|
360
|
+
assert(port_old.kind_of?(Erlang::OtpErlangPort))
|
361
|
+
assert_equal(Erlang::term_to_binary(port_old),
|
362
|
+
"\x83fs\rnonode@nohost\x00\x00\x00\x06\x00")
|
363
|
+
port_new_binary = (
|
364
|
+
"\x83\x59\x64\x00\x0D\x6E\x6F\x6E\x6F\x64\x65\x40\x6E\x6F\x68" \
|
365
|
+
"\x6F\x73\x74\x00\x00\x00\x06\x00\x00\x00\x00"
|
366
|
+
)
|
367
|
+
port_new = Erlang::binary_to_term(port_new_binary)
|
368
|
+
assert(port_new.kind_of?(Erlang::OtpErlangPort))
|
369
|
+
assert_equal(Erlang::term_to_binary(port_new),
|
370
|
+
"\x83Ys\rnonode@nohost\x00\x00\x00\x06" \
|
371
|
+
"\x00\x00\x00\x00")
|
372
|
+
end
|
373
|
+
def test_binary_to_term_ref
|
374
|
+
ref_new_binary = (
|
375
|
+
"\x83\x72\x00\x03\x64\x00\x0D\x6E\x6F\x6E\x6F\x64\x65\x40\x6E" \
|
376
|
+
"\x6F\x68\x6F\x73\x74\x00\x00\x03\xE8\x4E\xE7\x68\x00\x02\xA4" \
|
377
|
+
"\xC8\x53\x40"
|
378
|
+
)
|
379
|
+
ref_new = Erlang::binary_to_term(ref_new_binary)
|
380
|
+
assert(ref_new.kind_of?(Erlang::OtpErlangReference))
|
381
|
+
assert_equal(Erlang::term_to_binary(ref_new),
|
382
|
+
"\x83r\x00\x03s\rnonode@nohost\x00\x00\x03\xe8" \
|
383
|
+
"N\xe7h\x00\x02\xa4\xc8S@")
|
384
|
+
ref_newer_binary = (
|
385
|
+
"\x83\x5A\x00\x03\x64\x00\x0D\x6E\x6F\x6E\x6F\x64\x65\x40\x6E" \
|
386
|
+
"\x6F\x68\x6F\x73\x74\x00\x00\x00\x00\x00\x01\xAC\x03\xC7\x00" \
|
387
|
+
"\x00\x04\xBB\xB2\xCA\xEE"
|
388
|
+
)
|
389
|
+
ref_newer = Erlang::binary_to_term(ref_newer_binary)
|
390
|
+
assert(ref_newer.kind_of?(Erlang::OtpErlangReference))
|
391
|
+
assert_equal(Erlang::term_to_binary(ref_newer),
|
392
|
+
"\x83Z\x00\x03s\rnonode@nohost\x00\x00\x00\x00\x00" \
|
393
|
+
"\x01\xac\x03\xc7\x00\x00\x04\xbb\xb2\xca\xee")
|
394
|
+
end
|
334
395
|
def test_binary_to_term_compressed_term
|
335
396
|
assert_raise(Erlang::ParseException){
|
336
397
|
Erlang::binary_to_term("\x83P")
|
@@ -524,9 +585,10 @@ class EncodeTestCase < Test::Unit::TestCase
|
|
524
585
|
assert_equal("\x83k\0\4test",
|
525
586
|
Erlang::term_to_binary('test'))
|
526
587
|
end
|
527
|
-
def
|
588
|
+
def test_term_to_binary_predefined_atom
|
528
589
|
assert_equal("\x83s\4true", Erlang::term_to_binary(true))
|
529
590
|
assert_equal("\x83s\5false", Erlang::term_to_binary(false))
|
591
|
+
assert_equal("\x83s\x09undefined", Erlang::term_to_binary(nil))
|
530
592
|
end
|
531
593
|
def test_term_to_binary_short_integer
|
532
594
|
assert_equal("\x83a\0", Erlang::term_to_binary(0))
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erlang_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Truog
|
@@ -10,30 +10,30 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
+
|
31
|
-
|
13
|
+
MIIDgDCCAmigAwIBAgIBATANBgkqhkiG9w0BAQUFADBDMRAwDgYDVQQDDAdtanRy
|
14
|
+
dW9nMRowGAYKCZImiZPyLGQBGRYKcHJvdG9ubWFpbDETMBEGCgmSJomT8ixkARkW
|
15
|
+
A2NvbTAeFw0xOTExMjkwMjM1MzJaFw0yMDExMjgwMjM1MzJaMEMxEDAOBgNVBAMM
|
16
|
+
B21qdHJ1b2cxGjAYBgoJkiaJk/IsZAEZFgpwcm90b25tYWlsMRMwEQYKCZImiZPy
|
17
|
+
LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5Ar67eHx
|
18
|
+
R/cmFgsj58SkbsqEQWZOQ5GNO25IKuwjGHqznJXszXM1NW0YFLjgXjsXVdTXPeIC
|
19
|
+
CbkfoR8Yc1CEI6FYOWqhO0JqpPfYzt0s27o3Ua2x8j6n+31iRkbArIX2IVEjvBNd
|
20
|
+
UiTg6mG4Hc3KLqrBRDxZ+uyzqH/FEGPi5Ggak/E5xKwSdPWBPqDYKcze+suXxYO7
|
21
|
+
u38NwloGxpatQGgHgNGf83RfWDPaiYHGdPAsvUDzRFauxcG8sYRbmohc0TmE5+TQ
|
22
|
+
KMviZJNaNOaQkW1/twRQpo9PEv8bxEzEXT+tNOMEHrXgKv4+xEZYBM7D1FdP8gKj
|
23
|
+
wMXN22ZkLWzP8wIDAQABo38wfTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
|
24
|
+
HQ4EFgQUT8+9UATmehNm5Lg1aBx8HLK7MZwwIQYDVR0RBBowGIEWbWp0cnVvZ0Bw
|
25
|
+
cm90b25tYWlsLmNvbTAhBgNVHRIEGjAYgRZtanRydW9nQHByb3Rvbm1haWwuY29t
|
26
|
+
MA0GCSqGSIb3DQEBBQUAA4IBAQANj/kudiIbxJaurULxhML4palEaqIeWCw24bxj
|
27
|
+
X72RvO4Ti6DDKpeccK0QF26tZCOw4ngxPPY0w1Zzq96iYMVPlKVBYVDCtjIkFNDt
|
28
|
+
Q/0hupNd8lLloTlIJ7jzHohfPtzUjsdC0d0cwXZLkjxhw67N7QPDxsCEa+jiHaWd
|
29
|
+
i+DxiISAPKf9ugw5kej0v2j15juXiK5pwKIDDGAFfv3WAFbJXleLoqdM87rbC/vq
|
30
|
+
KH+3FIhF8jYeRqq/8g4k6zsZZwRewPjObe3Wm4yEv0f0dxdQRuWcuE7s7z0Bss5J
|
31
|
+
YQYB6UQUREuP9rhSHKbAZd9CPR3XW+S7PkeQiWc8ceLFVsfK
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
33
|
+
date: 2020-06-04 00:00:00.000000000 Z
|
34
34
|
dependencies: []
|
35
35
|
description: Erlang Binary Term Format for Ruby
|
36
|
-
email: mjtruog@
|
36
|
+
email: mjtruog@protonmail.com
|
37
37
|
executables: []
|
38
38
|
extensions: []
|
39
39
|
extra_rdoc_files:
|
@@ -61,8 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
requirements: []
|
64
|
-
|
65
|
-
rubygems_version: 2.6.11
|
64
|
+
rubygems_version: 3.1.2
|
66
65
|
signing_key:
|
67
66
|
specification_version: 4
|
68
67
|
summary: Erlang
|
metadata.gz.sig
CHANGED
Binary file
|