ruby2ruby 2.5.0 → 2.5.1

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
2
  SHA256:
3
- metadata.gz: 81af7fc05fec7a9e31a0e7e0e707526277c4535d0b7a5b12f67ab524989bc355
4
- data.tar.gz: df311f1adf30683d68b615494249bd903dfb962b52936031c02b1c3fe147e1eb
3
+ metadata.gz: ce3916335beb18e635634b93a85be8c88aaaab6029aea5ba5426b429cebbb2a6
4
+ data.tar.gz: e443e89cd7216bee0ae5d2fc8b182cafb94827357cb82d2b248cb19e2a26b6bd
5
5
  SHA512:
6
- metadata.gz: 60363a4606501b46962382d2343a49e1687a85f608b039936b516619209f407292052da552b1328ae02c872d7972d7b839b2de4d28ca6c2945e2a77746046417
7
- data.tar.gz: cb1f7cf0373c3f2f8ed7adfdd2688ad2cf9b262db3f058cf7f6bb43b195ba7a1e270b168039396a26923d0d21aa2a23233f4b0c8f2e2f5e49ce3ff87efcfd30b
6
+ metadata.gz: 62655af018fce2402bb410d7606afb34f7a6f332c88fc74aca6ebf9faf5f37abd23d9827cfd5d5742d3240d89ae838f4ef7d28f92da7bc520c335467b89a448a
7
+ data.tar.gz: 637c87a736b4da72487c95bc8fa981d49ba9b57e3e8f48c2013ef52bbbcb09176c0abfae18b272cba551adcb5961bcad6e94fa38dee8352f154986861cf7e616
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,9 @@
1
+ === 2.5.1 / 2024-07-08
2
+
3
+ * 1 bug fix:
4
+
5
+ * Fix errors created when string literals are frozen. (byroot + zenspider)
6
+
1
7
  === 2.5.0 / 2022-10-04
2
8
 
3
9
  * 5 minor enhancements:
data/lib/ruby2ruby.rb CHANGED
@@ -31,7 +31,7 @@ end
31
31
  # Generate ruby code from a sexp.
32
32
 
33
33
  class Ruby2Ruby < SexpProcessor
34
- VERSION = "2.5.0" # :nodoc:
34
+ VERSION = "2.5.1" # :nodoc:
35
35
 
36
36
  # cutoff for one-liners
37
37
  LINE_LENGTH = 78
@@ -475,7 +475,7 @@ class Ruby2Ruby < SexpProcessor
475
475
 
476
476
  options = re_opt rest.pop if Integer === rest.last
477
477
 
478
- "/" << util_dthing(:dregx, s(:dregx, str, *rest)) << "/#{options}"
478
+ "/" + util_dthing(:dregx, s(:dregx, str, *rest)) << "/#{options}"
479
479
  end
480
480
 
481
481
  def process_dregx_once(exp) # :nodoc:
@@ -502,7 +502,7 @@ class Ruby2Ruby < SexpProcessor
502
502
  ens = process(ens) || "# do nothing"
503
503
  ens = "begin\n#{ens}\nend\n" if ens =~ /(^|\n)rescue/
504
504
 
505
- body.sub!(/\n\s*end\z/, "")
505
+ body = body.sub(/\n\s*end\z/, "")
506
506
  body = indent(body) unless body =~ /(^|\n)rescue/
507
507
 
508
508
  "#{body}\nensure\n#{indent ens}"
@@ -699,11 +699,12 @@ class Ruby2Ruby < SexpProcessor
699
699
  return r if r and (@indent + r).size < LINE_LENGTH and r !~ /\n/
700
700
  end
701
701
 
702
- r = "if #{c} then\n#{indent(t)}\n"
702
+ r = []
703
+ r << "if #{c} then\n#{indent(t)}\n"
703
704
  r << "else\n#{indent(f)}\n" if f
704
705
  r << "end"
705
706
 
706
- r
707
+ r.join
707
708
  elsif f
708
709
  unless expand then
709
710
  r = "#{f} unless #{c}"
@@ -745,7 +746,7 @@ class Ruby2Ruby < SexpProcessor
745
746
  %w[ do end ]
746
747
  end
747
748
 
748
- iter.sub!(/\(\)$/, "")
749
+ iter = iter.sub(/\(\)$/, "")
749
750
 
750
751
  # REFACTOR: ugh
751
752
  result = []
@@ -42,6 +42,15 @@ class TestRuby2Ruby < R2RTestCase
42
42
  @processor = Ruby2Ruby.new
43
43
  end
44
44
 
45
+ # some things don't work in earlier rubies... oh well.
46
+ def skip30
47
+ skip unless RUBY_VERSION > "3.0"
48
+ end
49
+
50
+ def skip31
51
+ skip unless RUBY_VERSION > "3.1"
52
+ end
53
+
45
54
  def do_not_check_sexp!
46
55
  @check_sexp = false
47
56
  end
@@ -438,8 +447,10 @@ class TestRuby2Ruby < R2RTestCase
438
447
  end
439
448
 
440
449
  def test_forward_args__call
441
- inn = s(:call, nil, :y, s(:forward_args))
442
- out = "y(...)"
450
+ skip31
451
+
452
+ inn = s(:defn, :x, s(:args, s(:forward_args)), s(:call, nil, :y, s(:forward_args)))
453
+ out = "def x(...)\n y(...)\nend"
443
454
 
444
455
  assert_parse inn, out
445
456
  end
@@ -763,16 +774,22 @@ class TestRuby2Ruby < R2RTestCase
763
774
  end
764
775
 
765
776
  def test_case_in__array_pat_19
777
+ skip31
778
+
766
779
  assert_case_in "[^@a, ^$b, ^@@c]", s(:array_pat, nil, s(:ivar, :@a), s(:gvar, :$b), s(:cvar, :@@c)) # HACK: really not sure about this one
767
780
  end
768
781
 
769
782
  def test_case_in__find_pat_1
783
+ skip30
784
+
770
785
  assert_case_in "[*a, :+, *b]", s(:find_pat, nil, :"*a",
771
786
  s(:lit, :+),
772
787
  :"*b")
773
788
  end
774
789
 
775
790
  def test_case_in__find_pat_2
791
+ skip30
792
+
776
793
  assert_case_in "[*, :b, ^c, *]", s(:find_pat, nil,
777
794
  :*,
778
795
  s(:lit, :b), s(:lvar, :c),
@@ -780,6 +797,8 @@ class TestRuby2Ruby < R2RTestCase
780
797
  end
781
798
 
782
799
  def test_case_in__find_pat_3
800
+ skip30
801
+
783
802
  assert_case_in("Array(*b, n, { a: }, m, *a)",
784
803
  s(:find_pat,
785
804
  s(:const, :Array),
@@ -792,6 +811,8 @@ class TestRuby2Ruby < R2RTestCase
792
811
  end
793
812
 
794
813
  def test_case_in__find_pat_4
814
+ skip30
815
+
795
816
  assert_case_in("*b, n, { a: }, m, *a", s(:find_pat,
796
817
  nil,
797
818
  :"*b",
@@ -803,6 +824,8 @@ class TestRuby2Ruby < R2RTestCase
803
824
  end
804
825
 
805
826
  def test_case_in__find_pat_5
827
+ skip30
828
+
806
829
  assert_case_in("Array(*lhs, ^b, *rhs)", s(:find_pat,
807
830
  s(:const, :Array),
808
831
  :"*lhs",
@@ -1087,7 +1110,7 @@ class TestRuby2Ruby < R2RTestCase
1087
1110
  end
1088
1111
 
1089
1112
  def ruby_parser
1090
- parser = RubyParser.for_current_ruby
1113
+ parser = RubyParser.latest
1091
1114
 
1092
1115
  %i[a b c d].each do |v|
1093
1116
  parser.env[v] = :lvar
@@ -1155,7 +1178,7 @@ ir2r = File.read("lib/ruby2ruby.rb")
1155
1178
  require "ruby_parser"
1156
1179
 
1157
1180
  def morph_and_eval src, from, to, processor
1158
- parser = RubyParser.for_current_ruby rescue RubyParser.new
1181
+ parser = RubyParser.latest
1159
1182
  new_src = processor.new.process(parser.process(src.sub(from, to)))
1160
1183
 
1161
1184
  eval new_src
data.tar.gz.sig CHANGED
@@ -1,5 +1 @@
1
- JQ7>.3Y��˂PTn���:*�DW��E�›� ��s������;H�D��L5h��1���Lf���FP��j�u�ե��
2
- /s�3V�>N)ɗ�R�� �3Я�L��U3�����.��j�%Iս��t�,��� O
3
- �p�Z~�ʤL*L�/ޓͲh���>�{�^~<����y�Y�Ɇ�Lk=��+�l��l��a��V��羖M���
4
- %�B�BQ�
5
- ���UpH�u1d]TUaU
1
+ ��~--]䛱��ߴ���O��tZ����¦�~=�$-]h�<�<-�>eq�a�pܳ����)o���K�)'�O����z�s�t�cl�̲��J�!Dt���+��5��#�B~�U�R�\�#H��xHD4Q x�!<�S�=.�k��]P�9ڮyk#5o}5�8�QғPƧ��i6`>����%<��w�M,�B0P����'��u=+�*��j2�K~MѲ޻ ���It(z_ω"B$4]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby2ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 2.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -10,9 +10,9 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDPjCCAiagAwIBAgIBBjANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDPjCCAiagAwIBAgIBCDANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
14
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
- GRYDY29tMB4XDTIxMTIyMzIzMTkwNFoXDTIyMTIyMzIzMTkwNFowRTETMBEGA1UE
15
+ GRYDY29tMB4XDTI0MDEwMjIxMjEyM1oXDTI1MDEwMTIxMjEyM1owRTETMBEGA1UE
16
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -22,14 +22,14 @@ cert_chain:
22
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
23
  gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
24
  HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
25
- AQCKB5jfsuSnKb+t/Wrh3UpdkmX7TrEsjVmERC0pPqzQ5GQJgmEXDD7oMgaKXaAq
26
- x2m+KSZDrqk7c8uho5OX6YMqg4KdxehfSLqqTZGoeV78qwf/jpPQZKTf+W9gUSJh
27
- zsWpo4K50MP+QtdSbKXZwjAafpQ8hK0MnnZ/aeCsW9ov5vdXpYbf3dpg6ADXRGE7
28
- lQY2y1tJ5/chqu6h7dQmnm2ABUqx9O+JcN9hbCYoA5i/EeubUEtFIh2w3SpO6YfB
29
- JFmxn4h9YO/pVdB962BdBNNDia0kgIjI3ENnkLq0dKpYU3+F3KhEuTksLO0L6X/V
30
- YsuyUzsMz6GQA4khyaMgKNSD
25
+ AQCygvpmncmkiSs9r/Kceo4bBPDszhTv6iBi4LwMReqnFrpNLMOWJw7xi8x+3eL2
26
+ XS09ZPNOt2zm70KmFouBMgOysnDY4k2dE8uF6B8JbZOO8QfalW+CoNBliefOTcn2
27
+ bg5IOP7UoGM5lC174/cbDJrJnRG9bzig5FAP0mvsgA8zgTRXQzIUAZEo92D5K7p4
28
+ B4/O998ho6BSOgYBI9Yk1ttdCtti6Y+8N9+fZESsjtWMykA+WXWeGUScHqiU+gH8
29
+ S7043fq9EbQdBr2AXdj92+CDwuTfHI6/Hj5FVBDULufrJaan4xUgL70Hvc6pTTeW
30
+ deKfBjgVAq7EYHu1AczzlUly
31
31
  -----END CERTIFICATE-----
32
- date: 2022-10-05 00:00:00.000000000 Z
32
+ date: 2024-07-08 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: sexp_processor
@@ -85,14 +85,14 @@ dependencies:
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '3.25'
88
+ version: '4.2'
89
89
  type: :development
90
90
  prerelease: false
91
91
  version_requirements: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '3.25'
95
+ version: '4.2'
96
96
  description: |-
97
97
  ruby2ruby provides a means of generating pure ruby code easily from
98
98
  RubyParser compatible Sexps. This makes making dynamic language
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  requirements: []
140
- rubygems_version: 3.3.12
140
+ rubygems_version: 3.5.14
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: ruby2ruby provides a means of generating pure ruby code easily from RubyParser
metadata.gz.sig CHANGED
Binary file