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 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