erlang_rb 1.7.2 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 840879a6cfbce7f6edd7121da5e14b7ae19d87d8
4
- data.tar.gz: 20c7c183a75f632da0b2c11979f969ef4eee22e2
2
+ SHA256:
3
+ metadata.gz: b36f62f8d5c49daf16b3120596ff2d523a58820385d0375b4c891becb66d1abf
4
+ data.tar.gz: a7f2a937601cf8eb8feddf3187609515cdb82f8a1cd2e8f07a283efdc59c3703
5
5
  SHA512:
6
- metadata.gz: d5966d24eaf1b950e3e52124a0d1780291d1ec497a6c913df0ca68e52ea56b29710a9fac0710c0e54d7e4021d0c532ec62b2db1b386575ad2d64024649420dab
7
- data.tar.gz: '06872cf36314730369b5e1f0606010d58254826861a7e9048283efc95fe105f5e1dfe116713cc4354678f5a311fa393c65a8ef44cd18cabe504fb5d79254e96e'
6
+ metadata.gz: ab7a769ac8640a49878e7c700e162fd639649295fdc387312048e5fb9f9bcda44e4427033d6a82f685d61b1fe3504cfe8ac23932ac0f37d75c35c2a9cc676e8b
7
+ data.tar.gz: b7efca768abbd4b0a7409838cea35d1405dec08417edf83bbaf331e534d420c8916f52298fa5e1a527ef00c9d072fb7e4c85d6c5edcef42868855fdcc5035560
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -17,7 +17,7 @@ Tests
17
17
  Author
18
18
  ------
19
19
 
20
- Michael Truog (mjtruog [at] gmail (dot) com)
20
+ Michael Truog (mjtruog at protonmail dot com)
21
21
 
22
22
  License
23
23
  -------
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # MIT License
5
5
  #
6
- # Copyright (c) 2011-2017 Michael Truog <mjtruog at gmail dot com>
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
- return "#{TAG_PID_EXT.chr}" \
196
- "#{@node.binary}#{@id}#{@serial}#{@creation}"
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
- return "#{TAG_PORT_EXT.chr}#{@node.binary}#{@id}#{@creation}"
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
- return "#{TAG_NEW_REFERENCE_EXT.chr}#{length_packed}" \
254
- "#{@node.binary}#{@creation}#{@id}"
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 == TAG_REFERENCE_EXT or tag == TAG_PORT_EXT
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
- creation = data[i]
363
- i += 1
364
- if tag == TAG_REFERENCE_EXT
365
- return [i, OtpErlangReference.new(node, id, creation)]
366
- elsif tag == TAG_PORT_EXT
367
- return [i, OtpErlangPort.new(node, id, creation)]
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
- elsif tag == TAG_PID_EXT
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
- creation = data[i]
377
- i += 1
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, improper=true)
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]; name_module = result[1]
475
+ i = result[0]#; name_module = result[1]
440
476
  result = binary_to_atom(i, data)
441
- i = result[0]; function = result[1]
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
- creation = data[i]
455
- i += 1
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]; pid = result[1]
532
+ i = result[0]#; pid = result[1]
492
533
  result = binary_to_atom(i, data)
493
- i = result[0]; name_module = result[1]
534
+ i = result[0]#; name_module = result[1]
494
535
  result = binary_to_integer(i, data)
495
- i = result[0]; index = result[1]
536
+ i = result[0]#; index = result[1]
496
537
  result = binary_to_integer(i, data)
497
- i = result[0]; uniq = result[1]
538
+ i = result[0]#; uniq = result[1]
498
539
  result = binary_to_term_sequence(i, numfree, data)
499
- i = result[0]; free = result[1]
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 == TAG_PID_EXT
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
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # MIT License
6
6
  #
7
- # Copyright (c) 2014-2017 Michael Truog <mjtruog at gmail dot com>
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], improper=true)
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', improper=true).binary
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 test_term_to_binary_boolean
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: 1.7.2
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
- MIIDbDCCAlSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MRAwDgYDVQQDDAdtanRy
14
- dW9nMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNjb20w
15
- HhcNMTcwOTEzMDYwMzAwWhcNMTgwOTEzMDYwMzAwWjA+MRAwDgYDVQQDDAdtanRy
16
- dW9nMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNjb20w
17
- ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPlZFk7xAzMnUiNr/uHQV1
18
- xPPNZmqevvZgfY9SMS2C7c4kGTNBePRvmr3ihTW8yFTEXNRdCO3Ibm9zp7YFmlzz
19
- l7lyxHnEsrmPDmb5Ry+gIfrJ2M7lHqhbtvk3+5n5VB4npxEwXX3rsFWixO/8IOdX
20
- s9fuALCwdRbWwSBSgp+8SGHIl16G7iTxD7moHNsqW4i8ryyRr05jnhxJBSCcZShE
21
- Oa//izbIxWRvBk2Ibn/YlwZ2SrJXJ/DWxFkeXOcEFRQYy0vTn577GK0f4NTzoab5
22
- G5FKKk0oMtl5W+kaF6+qd7XkotSMCC4jG9dU17G9HkbHfjPKS4mkbMnlYIXlN5ZJ
23
- AgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSkVYwB
24
- WjkE89b0x4Kq7W1UH82QODAcBgNVHREEFTATgRFtanRydW9nQGdtYWlsLmNvbTAc
25
- BgNVHRIEFTATgRFtanRydW9nQGdtYWlsLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEA
26
- YO8ZXcsUY/3m6/JFCTqL9qL2wR4zfcYwo/uYDo2S7FR/EGsy1M+qLJB8V13AR2Li
27
- d/2mLm+SnhAgR32fMOaM58pbyFhlGaaEIs11xYywwbEbVe3eRxunsaJBcJxYeRZ+
28
- V+c3ebJejEGUNJ4dRSB6WvWr9zl7FozsWBNSYJoWDMfkC2B2zHo08va5DRSActEn
29
- 27W/V+TnP3ONYvcoDcOr7sNOhNISlpgB5kDcl7stP85hm99IVK7vZi8t2jX/8GTT
30
- +H4JAL4xk2aIYYf48338kxyZ8y9BNgp8cGbMEDtRSCgJnYk820Yt/fhM2DZtCbBL
31
- tOEdFrZvpA23/sCoGvunHw==
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: 2017-09-12 00:00:00.000000000 Z
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@gmail.com
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
- rubyforge_project:
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