refract 1.0.0.beta1 → 1.1.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 +197 -23
- data/lib/refract/formatter.rb +146 -80
- 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 +6 -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 +5 -2
- 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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6108db4a82b8d13ee9e82726fb9a546e9ca2307ebf798f9dc46c7088a4954b3
|
4
|
+
data.tar.gz: 8a1568765775444eef901017163818dd90e724da75f75c418ebc838f6f05cb73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 616aa31f777bee9127836f599337e4d23b7e1e28ec3b5089c979cc48d901b8e16d26e09390f6c716885464ad88125875288d4e5667ba3b0e5f1c1b164b7cfc69
|
7
|
+
data.tar.gz: bc620ad21498d5c4351c145047a5b29aa6ff73537809529594bb9c163c088f36f47de7590cf4fe1f2cdd5c04594a2d276bd439d9da19440771af108158ac1ab3
|
data/README.md
CHANGED
@@ -2,6 +2,6 @@
|
|
2
2
|
|
3
3
|
Refract lets you re-write Ruby at the AST level.
|
4
4
|
|
5
|
-
1. The Converter walks a concrete Prism syntax tree and produces an abstract Refract tree.
|
5
|
+
1. The `Converter` walks a concrete Prism syntax tree and produces an abstract Refract tree.
|
6
6
|
2. The `MutationVisitor` walks the Refract tree, allowing you to mutate existing nodes and insert new nodes.
|
7
7
|
3. Finally, the `Formatter` walks the Refract tree producing valid Ruby code.
|
@@ -10,12 +10,17 @@ module Refract
|
|
10
10
|
define_method("visit_#{node_class.type}", &)
|
11
11
|
end
|
12
12
|
|
13
|
+
def around_visit(node)
|
14
|
+
yield(node)
|
15
|
+
end
|
16
|
+
|
13
17
|
def visit(node)
|
14
18
|
return unless node
|
15
19
|
|
16
20
|
@stack.push(node)
|
17
|
-
node
|
18
|
-
|
21
|
+
around_visit(node) do |n|
|
22
|
+
n.accept(self).tap { @stack.pop }
|
23
|
+
end
|
19
24
|
end
|
20
25
|
|
21
26
|
def visit_each(nodes)
|