refract 1.0.0.beta1 → 1.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 +4 -4
- data/README.md +1 -1
- data/lib/refract/basic_visitor.rb +7 -2
- data/lib/refract/converter.rb +195 -23
- data/lib/refract/formatter.rb +83 -50
- data/lib/refract/mutation_visitor.rb +111 -115
- data/lib/refract/nodes/alias_global_variable_node.rb +3 -1
- data/lib/refract/nodes/alias_method_node.rb +3 -1
- data/lib/refract/nodes/alternation_pattern_node.rb +3 -1
- data/lib/refract/nodes/and_node.rb +3 -1
- data/lib/refract/nodes/arguments_node.rb +3 -1
- data/lib/refract/nodes/array_node.rb +3 -1
- data/lib/refract/nodes/array_pattern_node.rb +3 -1
- data/lib/refract/nodes/assoc_node.rb +3 -1
- data/lib/refract/nodes/assoc_splat_node.rb +3 -1
- data/lib/refract/nodes/back_reference_read_node.rb +3 -1
- data/lib/refract/nodes/begin_node.rb +3 -1
- data/lib/refract/nodes/block_argument_node.rb +3 -1
- data/lib/refract/nodes/block_local_variable_node.rb +3 -1
- data/lib/refract/nodes/block_node.rb +3 -1
- data/lib/refract/nodes/block_parameter_node.rb +3 -1
- data/lib/refract/nodes/block_parameters_node.rb +3 -1
- data/lib/refract/nodes/break_node.rb +3 -1
- data/lib/refract/nodes/call_and_write_node.rb +3 -1
- data/lib/refract/nodes/call_node.rb +5 -3
- data/lib/refract/nodes/call_operator_write_node.rb +3 -1
- data/lib/refract/nodes/call_or_write_node.rb +3 -1
- data/lib/refract/nodes/call_target_node.rb +3 -1
- data/lib/refract/nodes/capture_pattern_node.rb +3 -1
- data/lib/refract/nodes/case_match_node.rb +3 -1
- data/lib/refract/nodes/case_node.rb +3 -1
- data/lib/refract/nodes/class_node.rb +3 -1
- data/lib/refract/nodes/class_variable_and_write_node.rb +3 -1
- data/lib/refract/nodes/class_variable_operator_write_node.rb +3 -1
- data/lib/refract/nodes/class_variable_or_write_node.rb +3 -1
- data/lib/refract/nodes/class_variable_read_node.rb +3 -1
- data/lib/refract/nodes/class_variable_target_node.rb +3 -1
- data/lib/refract/nodes/class_variable_write_node.rb +3 -1
- data/lib/refract/nodes/constant_and_write_node.rb +3 -1
- data/lib/refract/nodes/constant_operator_write_node.rb +3 -1
- data/lib/refract/nodes/constant_or_write_node.rb +3 -1
- data/lib/refract/nodes/constant_path_and_write_node.rb +3 -1
- data/lib/refract/nodes/constant_path_node.rb +14 -0
- data/lib/refract/nodes/constant_path_operator_write_node.rb +3 -1
- data/lib/refract/nodes/constant_path_or_write_node.rb +3 -1
- data/lib/refract/nodes/constant_path_target_node.rb +3 -1
- data/lib/refract/nodes/constant_path_write_node.rb +3 -1
- data/lib/refract/nodes/constant_read_node.rb +3 -1
- data/lib/refract/nodes/constant_target_node.rb +3 -1
- data/lib/refract/nodes/constant_write_node.rb +3 -1
- data/lib/refract/nodes/def_node.rb +3 -1
- data/lib/refract/nodes/defined_node.rb +3 -1
- data/lib/refract/nodes/else_node.rb +3 -1
- data/lib/refract/nodes/embedded_statements_node.rb +3 -1
- data/lib/refract/nodes/embedded_variable_node.rb +3 -1
- data/lib/refract/nodes/ensure_node.rb +3 -1
- data/lib/refract/nodes/false_node.rb +3 -0
- data/lib/refract/nodes/find_pattern_node.rb +3 -1
- data/lib/refract/nodes/flip_flop_node.rb +3 -1
- data/lib/refract/nodes/float_node.rb +3 -1
- data/lib/refract/nodes/for_node.rb +3 -1
- data/lib/refract/nodes/forwarding_arguments_node.rb +3 -0
- data/lib/refract/nodes/forwarding_parameter_node.rb +3 -0
- data/lib/refract/nodes/forwarding_super_node.rb +3 -1
- data/lib/refract/nodes/global_variable_and_write_node.rb +3 -1
- data/lib/refract/nodes/global_variable_operator_write_node.rb +3 -1
- data/lib/refract/nodes/global_variable_or_write_node.rb +3 -1
- data/lib/refract/nodes/global_variable_read_node.rb +3 -1
- data/lib/refract/nodes/global_variable_target_node.rb +3 -1
- data/lib/refract/nodes/global_variable_write_node.rb +3 -1
- data/lib/refract/nodes/hash_node.rb +3 -1
- data/lib/refract/nodes/hash_pattern_node.rb +3 -1
- data/lib/refract/nodes/if_node.rb +5 -2
- data/lib/refract/nodes/imaginary_node.rb +3 -1
- data/lib/refract/nodes/implicit_node.rb +3 -1
- data/lib/refract/nodes/implicit_rest_node.rb +3 -0
- data/lib/refract/nodes/in_node.rb +3 -1
- data/lib/refract/nodes/index_and_write_node.rb +3 -1
- data/lib/refract/nodes/index_operator_write_node.rb +3 -1
- data/lib/refract/nodes/index_or_write_node.rb +3 -1
- data/lib/refract/nodes/index_target_node.rb +4 -2
- data/lib/refract/nodes/instance_variable_and_write_node.rb +3 -1
- data/lib/refract/nodes/instance_variable_operator_write_node.rb +3 -1
- data/lib/refract/nodes/instance_variable_or_write_node.rb +3 -1
- data/lib/refract/nodes/instance_variable_read_node.rb +3 -1
- data/lib/refract/nodes/instance_variable_target_node.rb +3 -1
- data/lib/refract/nodes/instance_variable_write_node.rb +3 -1
- data/lib/refract/nodes/integer_node.rb +3 -1
- data/lib/refract/nodes/interpolated_match_last_line_node.rb +3 -1
- data/lib/refract/nodes/interpolated_regular_expression_node.rb +3 -1
- data/lib/refract/nodes/interpolated_string_node.rb +3 -1
- data/lib/refract/nodes/interpolated_symbol_node.rb +3 -1
- data/lib/refract/nodes/interpolated_x_string_node.rb +3 -1
- data/lib/refract/nodes/it_local_variable_read_node.rb +3 -0
- data/lib/refract/nodes/it_parameters_node.rb +3 -0
- data/lib/refract/nodes/keyword_hash_node.rb +3 -1
- data/lib/refract/nodes/keyword_rest_parameter_node.rb +3 -1
- data/lib/refract/nodes/lambda_node.rb +3 -1
- data/lib/refract/nodes/local_variable_and_write_node.rb +3 -1
- data/lib/refract/nodes/local_variable_operator_write_node.rb +3 -1
- data/lib/refract/nodes/local_variable_or_write_node.rb +3 -1
- data/lib/refract/nodes/local_variable_read_node.rb +3 -1
- data/lib/refract/nodes/local_variable_target_node.rb +3 -1
- data/lib/refract/nodes/local_variable_write_node.rb +3 -1
- data/lib/refract/nodes/match_last_line_node.rb +3 -1
- data/lib/refract/nodes/match_predicate_node.rb +3 -1
- data/lib/refract/nodes/match_required_node.rb +3 -1
- data/lib/refract/nodes/match_write_node.rb +3 -1
- data/lib/refract/nodes/missing_node.rb +3 -0
- data/lib/refract/nodes/module_node.rb +3 -1
- data/lib/refract/nodes/multi_target_node.rb +3 -1
- data/lib/refract/nodes/multi_write_node.rb +3 -1
- data/lib/refract/nodes/next_node.rb +3 -1
- data/lib/refract/nodes/nil_node.rb +3 -0
- data/lib/refract/nodes/no_keywords_parameter_node.rb +3 -0
- data/lib/refract/nodes/numbered_parameters_node.rb +3 -0
- data/lib/refract/nodes/numbered_reference_read_node.rb +3 -1
- data/lib/refract/nodes/optional_keyword_parameter_node.rb +3 -1
- data/lib/refract/nodes/optional_parameter_node.rb +3 -1
- data/lib/refract/nodes/or_node.rb +3 -1
- data/lib/refract/nodes/parameters_node.rb +3 -1
- data/lib/refract/nodes/parentheses_node.rb +3 -1
- data/lib/refract/nodes/pinned_expression_node.rb +3 -1
- data/lib/refract/nodes/pinned_variable_node.rb +3 -1
- data/lib/refract/nodes/post_execution_node.rb +3 -1
- data/lib/refract/nodes/pre_execution_node.rb +3 -1
- data/lib/refract/nodes/program_node.rb +4 -2
- data/lib/refract/nodes/range_node.rb +3 -1
- data/lib/refract/nodes/rational_node.rb +3 -1
- data/lib/refract/nodes/redo_node.rb +3 -0
- data/lib/refract/nodes/regular_expression_node.rb +3 -1
- data/lib/refract/nodes/required_keyword_parameter_node.rb +3 -1
- data/lib/refract/nodes/required_parameter_node.rb +3 -1
- data/lib/refract/nodes/rescue_modifier_node.rb +3 -1
- data/lib/refract/nodes/rescue_node.rb +3 -1
- data/lib/refract/nodes/rest_parameter_node.rb +3 -1
- data/lib/refract/nodes/retry_node.rb +3 -0
- data/lib/refract/nodes/return_node.rb +3 -1
- data/lib/refract/nodes/self_node.rb +3 -0
- data/lib/refract/nodes/shareable_constant_node.rb +3 -1
- data/lib/refract/nodes/singleton_class_node.rb +3 -1
- data/lib/refract/nodes/source_encoding_node.rb +3 -0
- data/lib/refract/nodes/source_file_node.rb +3 -0
- data/lib/refract/nodes/source_line_node.rb +3 -0
- data/lib/refract/nodes/splat_node.rb +3 -1
- data/lib/refract/nodes/statements_node.rb +3 -1
- data/lib/refract/nodes/string_node.rb +3 -1
- data/lib/refract/nodes/super_node.rb +3 -1
- data/lib/refract/nodes/symbol_node.rb +3 -1
- data/lib/refract/nodes/true_node.rb +3 -0
- data/lib/refract/nodes/undef_node.rb +3 -1
- data/lib/refract/nodes/unless_node.rb +5 -2
- data/lib/refract/nodes/until_node.rb +5 -2
- data/lib/refract/nodes/when_node.rb +3 -1
- data/lib/refract/nodes/while_node.rb +5 -2
- data/lib/refract/nodes/x_string_node.rb +3 -1
- data/lib/refract/nodes/yield_node.rb +3 -1
- data/lib/refract/version.rb +1 -1
- data/lib/refract/visitor.rb +4 -4
- data/lib/refract.rb +11 -2
- metadata +2 -2
- data/lib/refract/nodes/constant_path.rb +0 -12
data/lib/refract/formatter.rb
CHANGED
@@ -10,6 +10,14 @@ module Refract
|
|
10
10
|
@indent = 0
|
11
11
|
end
|
12
12
|
|
13
|
+
def around_visit(node)
|
14
|
+
if (start_line = node.start_line)
|
15
|
+
@source_map[@current_line] = start_line
|
16
|
+
end
|
17
|
+
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
13
21
|
def format_node(node)
|
14
22
|
visit(node)
|
15
23
|
@buffer.join
|
@@ -190,7 +198,7 @@ module Refract
|
|
190
198
|
push "."
|
191
199
|
end
|
192
200
|
|
193
|
-
push node.
|
201
|
+
push node.name
|
194
202
|
|
195
203
|
case node.block
|
196
204
|
when BlockNode
|
@@ -349,18 +357,18 @@ module Refract
|
|
349
357
|
visit node.value
|
350
358
|
end
|
351
359
|
|
352
|
-
visit ConstantPath do |node|
|
353
|
-
visit node.parent
|
354
|
-
push "::"
|
355
|
-
push node.name
|
356
|
-
end
|
357
|
-
|
358
360
|
visit ConstantPathAndWriteNode do |node|
|
359
361
|
visit node.target
|
360
362
|
push " &&= "
|
361
363
|
visit node.value
|
362
364
|
end
|
363
365
|
|
366
|
+
visit ConstantPathNode do |node|
|
367
|
+
visit node.parent
|
368
|
+
push "::"
|
369
|
+
push node.name
|
370
|
+
end
|
371
|
+
|
364
372
|
visit ConstantPathOperatorWriteNode do |node|
|
365
373
|
visit node.target
|
366
374
|
space
|
@@ -563,25 +571,31 @@ module Refract
|
|
563
571
|
end
|
564
572
|
|
565
573
|
visit IfNode do |node|
|
566
|
-
|
567
|
-
|
568
|
-
push "
|
574
|
+
if node.inline
|
575
|
+
visit node.statements
|
576
|
+
push " if "
|
577
|
+
visit node.predicate
|
569
578
|
else
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
579
|
+
# Check if this is an elsif by looking at the parent
|
580
|
+
if IfNode === @stack[-2]
|
581
|
+
push "elsif "
|
582
|
+
else
|
583
|
+
push "if "
|
584
|
+
end
|
585
|
+
visit node.predicate
|
586
|
+
if node.statements
|
587
|
+
indent do
|
588
|
+
visit node.statements
|
589
|
+
end
|
590
|
+
end
|
591
|
+
if node.subsequent
|
592
|
+
new_line
|
593
|
+
visit node.subsequent
|
594
|
+
end
|
595
|
+
unless IfNode === @stack[-2]
|
596
|
+
new_line
|
597
|
+
push "end"
|
576
598
|
end
|
577
|
-
end
|
578
|
-
if node.subsequent
|
579
|
-
new_line
|
580
|
-
visit node.subsequent
|
581
|
-
end
|
582
|
-
unless IfNode === @stack[-2]
|
583
|
-
new_line
|
584
|
-
push "end"
|
585
599
|
end
|
586
600
|
end
|
587
601
|
|
@@ -1136,34 +1150,46 @@ module Refract
|
|
1136
1150
|
end
|
1137
1151
|
|
1138
1152
|
visit UnlessNode do |node|
|
1139
|
-
|
1140
|
-
|
1153
|
+
if node.inline
|
1154
|
+
visit node.statements
|
1155
|
+
push " unless "
|
1156
|
+
visit node.predicate
|
1157
|
+
else
|
1158
|
+
push "unless "
|
1159
|
+
visit node.predicate
|
1141
1160
|
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1161
|
+
if node.statements
|
1162
|
+
indent do
|
1163
|
+
visit node.statements
|
1164
|
+
end
|
1165
|
+
end
|
1166
|
+
|
1167
|
+
if node.else_clause
|
1168
|
+
new_line
|
1169
|
+
visit node.else_clause
|
1145
1170
|
end
|
1146
|
-
end
|
1147
1171
|
|
1148
|
-
if node.else_clause
|
1149
1172
|
new_line
|
1150
|
-
|
1173
|
+
push "end"
|
1151
1174
|
end
|
1152
|
-
|
1153
|
-
new_line
|
1154
|
-
push "end"
|
1155
1175
|
end
|
1156
1176
|
|
1157
1177
|
visit UntilNode do |node|
|
1158
|
-
|
1159
|
-
|
1160
|
-
|
1161
|
-
|
1162
|
-
|
1178
|
+
if node.inline
|
1179
|
+
visit node.statements
|
1180
|
+
push " until "
|
1181
|
+
visit node.predicate
|
1182
|
+
else
|
1183
|
+
push "until "
|
1184
|
+
visit node.predicate
|
1185
|
+
if node.statements
|
1186
|
+
indent do
|
1187
|
+
visit node.statements
|
1188
|
+
end
|
1163
1189
|
end
|
1190
|
+
new_line
|
1191
|
+
push "end"
|
1164
1192
|
end
|
1165
|
-
new_line
|
1166
|
-
push "end"
|
1167
1193
|
end
|
1168
1194
|
|
1169
1195
|
visit WhenNode do |node|
|
@@ -1176,15 +1202,21 @@ module Refract
|
|
1176
1202
|
end
|
1177
1203
|
|
1178
1204
|
visit WhileNode do |node|
|
1179
|
-
|
1180
|
-
|
1181
|
-
|
1182
|
-
|
1183
|
-
|
1205
|
+
if node.inline
|
1206
|
+
visit node.statements
|
1207
|
+
push " while "
|
1208
|
+
visit node.predicate
|
1209
|
+
else
|
1210
|
+
push "while "
|
1211
|
+
visit node.predicate
|
1212
|
+
if node.statements
|
1213
|
+
indent do
|
1214
|
+
visit node.statements
|
1215
|
+
end
|
1184
1216
|
end
|
1217
|
+
new_line
|
1218
|
+
push "end"
|
1185
1219
|
end
|
1186
|
-
new_line
|
1187
|
-
push "end"
|
1188
1220
|
end
|
1189
1221
|
|
1190
1222
|
visit XStringNode do |node|
|
@@ -1218,7 +1250,8 @@ module Refract
|
|
1218
1250
|
end
|
1219
1251
|
|
1220
1252
|
private def new_line
|
1221
|
-
|
1253
|
+
@buffer << "\n#{"\t" * @indent}"
|
1254
|
+
@current_line += 1
|
1222
1255
|
end
|
1223
1256
|
|
1224
1257
|
private def indent
|