ruby2ruby 2.4.0 → 2.4.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
- SHA1:
3
- metadata.gz: 5b53ed4dcaf3f49d555eaac182c0db834ef853b6
4
- data.tar.gz: e9beb44116c010a09b853fdca582565b380db3a0
2
+ SHA256:
3
+ metadata.gz: 7086dd5ae0a401311ba0191c9558965765a208862def995221c1d5e065b7579b
4
+ data.tar.gz: e9a369ff76c740f0eafa6389a3e1ab5e03eebe435d16c0542853bdfcd0981eaa
5
5
  SHA512:
6
- metadata.gz: a253a034894e65cfdaa8b5d96ab884db76c828b6b5ef2bec0f5c93a2beea9bba808919d0553342d1ba63e16bb52341f3159818cc2457951524289e32ea55743c
7
- data.tar.gz: 4a0fdf340723d063e6f421654ad2cb8d458c47f6bf9a340acf6a13794a196dac556986c31b4512daf5f0a0864a438759c17fe918bfec226496333fd200c28bc9
6
+ metadata.gz: b4195418b8035e9c5d01e2af6ba64ad3b4375706fc473f5b297867b5838ad17482e7ad91e30a70c08c78934695ac3893ca8bdee977ad109ae7e24e9f54e5ea93
7
+ data.tar.gz: 6c9e14a882ed557a6384b80e1bcb7aa546ee1745edfd11a548334c0d953abed4c7b90f18432ce156dd511b35edc5ac7196c1a966cbefbcf6f562a4d6303f574f
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,10 @@
1
+ === 2.4.1 / 2018-02-15
2
+
3
+ * 2 minor enhancements:
4
+
5
+ * Added bitwise ops to BINARY. (david942j)
6
+ * Added rewrite_call|if|until|while to normalize `not` in conditions.
7
+
1
8
  === 2.4.0 / 2017-07-17
2
9
 
3
10
  * 1 major enhancement:
@@ -31,13 +31,13 @@ end
31
31
  # Generate ruby code from a sexp.
32
32
 
33
33
  class Ruby2Ruby < SexpProcessor
34
- VERSION = "2.4.0" # :nodoc:
34
+ VERSION = "2.4.1" # :nodoc:
35
35
 
36
36
  # cutoff for one-liners
37
37
  LINE_LENGTH = 78
38
38
 
39
39
  # binary operation messages
40
- BINARY = [:<=>, :==, :<, :>, :<=, :>=, :-, :+, :*, :/, :%, :<<, :>>, :**, :'!=']
40
+ BINARY = [:<=>, :==, :<, :>, :<=, :>=, :-, :+, :*, :/, :%, :<<, :>>, :**, :'!=', :^, :|, :&]
41
41
 
42
42
  ##
43
43
  # Nodes that represent assignment and probably need () around them.
@@ -1073,11 +1073,30 @@ class Ruby2Ruby < SexpProcessor
1073
1073
  exp
1074
1074
  end
1075
1075
 
1076
+ def rewrite_call exp # :nodoc:
1077
+ _, recv, msg, *args = exp
1078
+
1079
+ exp = s(:not, recv) if msg == :! && args.empty?
1080
+
1081
+ exp
1082
+ end
1083
+
1076
1084
  def rewrite_ensure exp # :nodoc:
1077
1085
  exp = s(:begin, exp) unless context.first == :begin
1078
1086
  exp
1079
1087
  end
1080
1088
 
1089
+ def rewrite_if exp # :nodoc:
1090
+ _, c, t, f = exp
1091
+
1092
+ if c.sexp_type == :not then
1093
+ _, nc = c
1094
+ exp = s(:if, nc, f, t)
1095
+ end
1096
+
1097
+ exp
1098
+ end
1099
+
1081
1100
  def rewrite_resbody exp # :nodoc:
1082
1101
  _, args, *_rest = exp
1083
1102
  raise "no exception list in #{exp.inspect}" unless exp.size > 2 && args
@@ -1114,6 +1133,28 @@ class Ruby2Ruby < SexpProcessor
1114
1133
  end
1115
1134
  end
1116
1135
 
1136
+ def rewrite_until exp # :nodoc:
1137
+ _, c, *body = exp
1138
+
1139
+ if c.sexp_type == :not then
1140
+ _, nc = c
1141
+ exp = s(:while, nc, *body)
1142
+ end
1143
+
1144
+ exp
1145
+ end
1146
+
1147
+ def rewrite_while exp # :nodoc:
1148
+ _, c, *body = exp
1149
+
1150
+ if c.sexp_type == :not then
1151
+ _, nc = c
1152
+ exp = s(:until, nc, *body)
1153
+ end
1154
+
1155
+ exp
1156
+ end
1157
+
1117
1158
  ############################################################
1118
1159
  # Utility Methods:
1119
1160
 
@@ -19,8 +19,6 @@ class R2RTestCase < ParseTreeTestCase
19
19
  def self.generate_test klass, node, data, input_name, output_name
20
20
  output_name = data.has_key?('Ruby2Ruby') ? 'Ruby2Ruby' : 'Ruby'
21
21
 
22
- return if node.to_s =~ /(str_question|not|bang).*_(19|20|21|22|23|24)$/
23
-
24
22
  klass.class_eval <<-EOM
25
23
  def test_#{node}
26
24
  pt = #{data[input_name].inspect}
@@ -766,12 +764,15 @@ class TestRuby2Ruby < R2RTestCase
766
764
 
767
765
  assert_parse Ruby18Parser.new.parse(rb1), rb1
768
766
  assert_parse Ruby19Parser.new.parse(rb1), rb1
767
+ assert_parse Ruby25Parser.new.parse(rb1), rb1
769
768
 
770
769
  assert_parse Ruby18Parser.new.parse(rb2), rb1
771
- assert_parse Ruby19Parser.new.parse(rb2), rb2
770
+ assert_parse Ruby19Parser.new.parse(rb2), rb1
771
+ assert_parse Ruby25Parser.new.parse(rb2), rb1
772
772
 
773
773
  assert_parse Ruby18Parser.new.parse(rb3), rb1
774
- assert_parse Ruby19Parser.new.parse(rb3), rb2
774
+ assert_parse Ruby19Parser.new.parse(rb3), rb1
775
+ assert_parse Ruby25Parser.new.parse(rb3), rb1
775
776
  end
776
777
 
777
778
  def assert_parse sexp, expected_ruby, expected_eval = nil
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.4.0
4
+ version: 2.4.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
- MIIDijCCAnKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDPjCCAiagAwIBAgIBAjANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
14
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
- GRYDY29tMB4XDTE2MDkyNjAxNTczNVoXDTE3MDkyNjAxNTczNVowRTETMBEGA1UE
15
+ GRYDY29tMB4XDTE3MTEyMTIxMTExMFoXDTE4MTEyMTIxMTExMFowRTETMBEGA1UE
16
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -20,17 +20,16 @@ cert_chain:
20
20
  oOvjtt5P8+GSK9zLzxQP0gVLS/D0FmoE44XuDr3iQkVS2ujU5zZL84mMNqNB1znh
21
21
  GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
22
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
- gBEfoTEGr7Zii72cx+sCAwEAAaOBhDCBgTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
24
- sDAdBgNVHQ4EFgQUR8V72Z3+v+2P9abCnL4wjx32T+EwIwYDVR0RBBwwGoEYcnlh
25
- bmQtcnVieUB6ZW5zcGlkZXIuY29tMCMGA1UdEgQcMBqBGHJ5YW5kLXJ1YnlAemVu
26
- c3BpZGVyLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAIGzgp0aZ2W9+v96ujmBcQHoC
27
- buy0iU68MVj2VlxMyfr1KPZIh1OyhU4UO4zrkREcH8ML70v9cYHNvOd9oynRHnvC
28
- l2tj/fD3YJ0AEkJxGrYwRWQmvMfC4bJ02bC1+rVOUIXXKp3+cUmiN4sTniof8VFo
29
- bo/YYP4c7erpERa+9hrqygg6WQbJlk2YRlH3JXPFjmu869i2dcbR5ZLOAeEy+axH
30
- E4oJcnPkJAr0rw504JGtlZtONZQblwmRJOIdXzolaE3NRGUzGVOUSptZppAKiavY
31
- fO6tdKQc/5RfA8oQEkg8hrxA5PQSz4TOFJGLpFvIapEk6tMruQ0bHgkhr9auXg==
23
+ gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
+ HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
25
+ AQAfAXSQpsW7YSxd1csRtA/M4Zt0AMXFMd76GJ8Lgtg8G0+VFbdChRyDuDb0kPlW
26
+ h9QQX/YABfCW8vxmssbMGrP+VGBAn7BbdTcfTlgCWrvMX1uL5aRL74nA4urKXqdW
27
+ a0nP70K4958P3GffBdtE3KGkU5xstFnXGajxuBRnL66E15KU0BNehVxdG258bdPu
28
+ EKN6MqBPftFiev3tuwqDV11r2GquDpniYcT+Mi8/PgeAgVT/afBeVgbB3KaZeTRR
29
+ AhXhF6Wi2GTMezlj5jlI5XV7WsJUSwTp/YiVvcmT74ZaCRvexm6EnNhkrvJJ1Xeu
30
+ V+HB+LYYhXWitInO/eXxDrFB
32
31
  -----END CERTIFICATE-----
33
- date: 2017-07-17 00:00:00.000000000 Z
32
+ date: 2018-02-15 00:00:00.000000000 Z
34
33
  dependencies:
35
34
  - !ruby/object:Gem::Dependency
36
35
  name: sexp_processor
@@ -132,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
131
  version: '0'
133
132
  requirements: []
134
133
  rubyforge_project:
135
- rubygems_version: 2.6.8
134
+ rubygems_version: 2.7.3
136
135
  signing_key:
137
136
  specification_version: 4
138
137
  summary: ruby2ruby provides a means of generating pure ruby code easily from RubyParser
metadata.gz.sig CHANGED
Binary file