refract 0.0.2 → 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.
Files changed (164) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.txt +21 -0
  3. data/README.md +7 -0
  4. data/lib/refract/basic_visitor.rb +45 -0
  5. data/lib/refract/converter.rb +1204 -0
  6. data/lib/refract/formatter.rb +1304 -0
  7. data/lib/refract/mutation_visitor.rb +895 -0
  8. data/lib/refract/nodes/alias_global_variable_node.rb +14 -0
  9. data/lib/refract/nodes/alias_method_node.rb +14 -0
  10. data/lib/refract/nodes/alternation_pattern_node.rb +14 -0
  11. data/lib/refract/nodes/and_node.rb +15 -0
  12. data/lib/refract/nodes/arguments_node.rb +13 -0
  13. data/lib/refract/nodes/array_node.rb +13 -0
  14. data/lib/refract/nodes/array_pattern_node.rb +16 -0
  15. data/lib/refract/nodes/assoc_node.rb +14 -0
  16. data/lib/refract/nodes/assoc_splat_node.rb +13 -0
  17. data/lib/refract/nodes/back_reference_read_node.rb +13 -0
  18. data/lib/refract/nodes/begin_node.rb +16 -0
  19. data/lib/refract/nodes/block_argument_node.rb +13 -0
  20. data/lib/refract/nodes/block_local_variable_node.rb +13 -0
  21. data/lib/refract/nodes/block_node.rb +14 -0
  22. data/lib/refract/nodes/block_parameter_node.rb +13 -0
  23. data/lib/refract/nodes/block_parameters_node.rb +14 -0
  24. data/lib/refract/nodes/break_node.rb +13 -0
  25. data/lib/refract/nodes/call_and_write_node.rb +15 -0
  26. data/lib/refract/nodes/call_node.rb +16 -0
  27. data/lib/refract/nodes/call_operator_write_node.rb +16 -0
  28. data/lib/refract/nodes/call_or_write_node.rb +15 -0
  29. data/lib/refract/nodes/call_target_node.rb +14 -0
  30. data/lib/refract/nodes/capture_pattern_node.rb +14 -0
  31. data/lib/refract/nodes/case_match_node.rb +15 -0
  32. data/lib/refract/nodes/case_node.rb +15 -0
  33. data/lib/refract/nodes/class_node.rb +15 -0
  34. data/lib/refract/nodes/class_variable_and_write_node.rb +14 -0
  35. data/lib/refract/nodes/class_variable_operator_write_node.rb +15 -0
  36. data/lib/refract/nodes/class_variable_or_write_node.rb +14 -0
  37. data/lib/refract/nodes/class_variable_read_node.rb +13 -0
  38. data/lib/refract/nodes/class_variable_target_node.rb +13 -0
  39. data/lib/refract/nodes/class_variable_write_node.rb +14 -0
  40. data/lib/refract/nodes/constant_and_write_node.rb +14 -0
  41. data/lib/refract/nodes/constant_operator_write_node.rb +15 -0
  42. data/lib/refract/nodes/constant_or_write_node.rb +14 -0
  43. data/lib/refract/nodes/constant_path_and_write_node.rb +14 -0
  44. data/lib/refract/nodes/constant_path_node.rb +14 -0
  45. data/lib/refract/nodes/constant_path_operator_write_node.rb +15 -0
  46. data/lib/refract/nodes/constant_path_or_write_node.rb +14 -0
  47. data/lib/refract/nodes/constant_path_target_node.rb +14 -0
  48. data/lib/refract/nodes/constant_path_write_node.rb +14 -0
  49. data/lib/refract/nodes/constant_read_node.rb +13 -0
  50. data/lib/refract/nodes/constant_target_node.rb +13 -0
  51. data/lib/refract/nodes/constant_write_node.rb +14 -0
  52. data/lib/refract/nodes/def_node.rb +16 -0
  53. data/lib/refract/nodes/defined_node.rb +13 -0
  54. data/lib/refract/nodes/else_node.rb +13 -0
  55. data/lib/refract/nodes/embedded_statements_node.rb +13 -0
  56. data/lib/refract/nodes/embedded_variable_node.rb +13 -0
  57. data/lib/refract/nodes/ensure_node.rb +13 -0
  58. data/lib/refract/nodes/false_node.rb +9 -0
  59. data/lib/refract/nodes/find_pattern_node.rb +16 -0
  60. data/lib/refract/nodes/flip_flop_node.rb +15 -0
  61. data/lib/refract/nodes/float_node.rb +13 -0
  62. data/lib/refract/nodes/for_node.rb +15 -0
  63. data/lib/refract/nodes/forwarding_arguments_node.rb +9 -0
  64. data/lib/refract/nodes/forwarding_parameter_node.rb +9 -0
  65. data/lib/refract/nodes/forwarding_super_node.rb +13 -0
  66. data/lib/refract/nodes/global_variable_and_write_node.rb +14 -0
  67. data/lib/refract/nodes/global_variable_operator_write_node.rb +15 -0
  68. data/lib/refract/nodes/global_variable_or_write_node.rb +14 -0
  69. data/lib/refract/nodes/global_variable_read_node.rb +13 -0
  70. data/lib/refract/nodes/global_variable_target_node.rb +13 -0
  71. data/lib/refract/nodes/global_variable_write_node.rb +14 -0
  72. data/lib/refract/nodes/hash_node.rb +13 -0
  73. data/lib/refract/nodes/hash_pattern_node.rb +14 -0
  74. data/lib/refract/nodes/if_node.rb +16 -0
  75. data/lib/refract/nodes/imaginary_node.rb +13 -0
  76. data/lib/refract/nodes/implicit_node.rb +13 -0
  77. data/lib/refract/nodes/implicit_rest_node.rb +9 -0
  78. data/lib/refract/nodes/in_node.rb +14 -0
  79. data/lib/refract/nodes/index_and_write_node.rb +16 -0
  80. data/lib/refract/nodes/index_operator_write_node.rb +17 -0
  81. data/lib/refract/nodes/index_or_write_node.rb +16 -0
  82. data/lib/refract/nodes/index_target_node.rb +15 -0
  83. data/lib/refract/nodes/instance_variable_and_write_node.rb +14 -0
  84. data/lib/refract/nodes/instance_variable_operator_write_node.rb +15 -0
  85. data/lib/refract/nodes/instance_variable_or_write_node.rb +14 -0
  86. data/lib/refract/nodes/instance_variable_read_node.rb +13 -0
  87. data/lib/refract/nodes/instance_variable_target_node.rb +13 -0
  88. data/lib/refract/nodes/instance_variable_write_node.rb +14 -0
  89. data/lib/refract/nodes/integer_node.rb +13 -0
  90. data/lib/refract/nodes/interpolated_match_last_line_node.rb +17 -0
  91. data/lib/refract/nodes/interpolated_regular_expression_node.rb +17 -0
  92. data/lib/refract/nodes/interpolated_string_node.rb +13 -0
  93. data/lib/refract/nodes/interpolated_symbol_node.rb +13 -0
  94. data/lib/refract/nodes/interpolated_x_string_node.rb +13 -0
  95. data/lib/refract/nodes/it_local_variable_read_node.rb +9 -0
  96. data/lib/refract/nodes/it_parameters_node.rb +9 -0
  97. data/lib/refract/nodes/keyword_hash_node.rb +13 -0
  98. data/lib/refract/nodes/keyword_rest_parameter_node.rb +13 -0
  99. data/lib/refract/nodes/lambda_node.rb +14 -0
  100. data/lib/refract/nodes/local_variable_and_write_node.rb +15 -0
  101. data/lib/refract/nodes/local_variable_operator_write_node.rb +16 -0
  102. data/lib/refract/nodes/local_variable_or_write_node.rb +15 -0
  103. data/lib/refract/nodes/local_variable_read_node.rb +13 -0
  104. data/lib/refract/nodes/local_variable_target_node.rb +13 -0
  105. data/lib/refract/nodes/local_variable_write_node.rb +14 -0
  106. data/lib/refract/nodes/match_last_line_node.rb +17 -0
  107. data/lib/refract/nodes/match_predicate_node.rb +14 -0
  108. data/lib/refract/nodes/match_required_node.rb +14 -0
  109. data/lib/refract/nodes/match_write_node.rb +14 -0
  110. data/lib/refract/nodes/missing_node.rb +9 -0
  111. data/lib/refract/nodes/module_node.rb +14 -0
  112. data/lib/refract/nodes/multi_target_node.rb +15 -0
  113. data/lib/refract/nodes/multi_write_node.rb +16 -0
  114. data/lib/refract/nodes/next_node.rb +13 -0
  115. data/lib/refract/nodes/nil_node.rb +9 -0
  116. data/lib/refract/nodes/no_keywords_parameter_node.rb +9 -0
  117. data/lib/refract/nodes/numbered_parameters_node.rb +9 -0
  118. data/lib/refract/nodes/numbered_reference_read_node.rb +13 -0
  119. data/lib/refract/nodes/optional_keyword_parameter_node.rb +14 -0
  120. data/lib/refract/nodes/optional_parameter_node.rb +14 -0
  121. data/lib/refract/nodes/or_node.rb +15 -0
  122. data/lib/refract/nodes/parameters_node.rb +19 -0
  123. data/lib/refract/nodes/parentheses_node.rb +13 -0
  124. data/lib/refract/nodes/pinned_expression_node.rb +13 -0
  125. data/lib/refract/nodes/pinned_variable_node.rb +13 -0
  126. data/lib/refract/nodes/post_execution_node.rb +13 -0
  127. data/lib/refract/nodes/pre_execution_node.rb +13 -0
  128. data/lib/refract/nodes/program_node.rb +13 -0
  129. data/lib/refract/nodes/range_node.rb +15 -0
  130. data/lib/refract/nodes/rational_node.rb +14 -0
  131. data/lib/refract/nodes/redo_node.rb +9 -0
  132. data/lib/refract/nodes/regular_expression_node.rb +17 -0
  133. data/lib/refract/nodes/required_keyword_parameter_node.rb +13 -0
  134. data/lib/refract/nodes/required_parameter_node.rb +13 -0
  135. data/lib/refract/nodes/rescue_modifier_node.rb +14 -0
  136. data/lib/refract/nodes/rescue_node.rb +16 -0
  137. data/lib/refract/nodes/rest_parameter_node.rb +13 -0
  138. data/lib/refract/nodes/retry_node.rb +9 -0
  139. data/lib/refract/nodes/return_node.rb +13 -0
  140. data/lib/refract/nodes/self_node.rb +9 -0
  141. data/lib/refract/nodes/shareable_constant_node.rb +13 -0
  142. data/lib/refract/nodes/singleton_class_node.rb +14 -0
  143. data/lib/refract/nodes/source_encoding_node.rb +9 -0
  144. data/lib/refract/nodes/source_file_node.rb +9 -0
  145. data/lib/refract/nodes/source_line_node.rb +9 -0
  146. data/lib/refract/nodes/splat_node.rb +13 -0
  147. data/lib/refract/nodes/statements_node.rb +13 -0
  148. data/lib/refract/nodes/string_node.rb +13 -0
  149. data/lib/refract/nodes/super_node.rb +14 -0
  150. data/lib/refract/nodes/symbol_node.rb +13 -0
  151. data/lib/refract/nodes/true_node.rb +9 -0
  152. data/lib/refract/nodes/undef_node.rb +13 -0
  153. data/lib/refract/nodes/unless_node.rb +16 -0
  154. data/lib/refract/nodes/until_node.rb +15 -0
  155. data/lib/refract/nodes/when_node.rb +14 -0
  156. data/lib/refract/nodes/while_node.rb +15 -0
  157. data/lib/refract/nodes/x_string_node.rb +13 -0
  158. data/lib/refract/nodes/yield_node.rb +13 -0
  159. data/lib/refract/version.rb +5 -0
  160. data/lib/refract/visitor.rb +689 -0
  161. data/lib/refract.rb +50 -55
  162. data/lib/rubocop/cop/refract/ordered_visit_methods.rb +107 -0
  163. data/lib/rubocop/cop/refract_cops.rb +3 -0
  164. metadata +189 -26
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SelfNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ShareableConstantNode < Node
5
+ def initialize(prism_node: nil, write:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @write = write
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :write
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SingletonClassNode < Node
5
+ def initialize(prism_node: nil, expression:, body:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @expression = expression
8
+ @body = body
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :expression, :body
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SourceEncodingNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SourceFileNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SourceLineNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SplatNode < Node
5
+ def initialize(prism_node: nil, expression:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @expression = expression
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :expression
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class StatementsNode < Node
5
+ def initialize(prism_node: nil, body:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @body = body
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :body
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class StringNode < Node
5
+ def initialize(prism_node: nil, unescaped:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @unescaped = unescaped
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :unescaped
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SuperNode < Node
5
+ def initialize(prism_node: nil, arguments:, block:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @arguments = arguments
8
+ @block = block
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :arguments, :block
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class SymbolNode < Node
5
+ def initialize(prism_node: nil, unescaped:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @unescaped = unescaped
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :unescaped
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class TrueNode < Node
5
+ def initialize(prism_node: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class UndefNode < Node
5
+ def initialize(prism_node: nil, names:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @names = names
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :names
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class UnlessNode < Node
5
+ def initialize(prism_node: nil, predicate:, statements:, else_clause:, inline:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @predicate = predicate
8
+ @statements = statements
9
+ @else_clause = else_clause
10
+ @inline = inline
11
+ freeze
12
+ end
13
+
14
+ attr_accessor :predicate, :statements, :else_clause, :inline
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class UntilNode < Node
5
+ def initialize(prism_node: nil, predicate:, statements:, inline:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @predicate = predicate
8
+ @statements = statements
9
+ @inline = inline
10
+ freeze
11
+ end
12
+
13
+ attr_accessor :predicate, :statements, :inline
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class WhenNode < Node
5
+ def initialize(prism_node: nil, conditions:, statements:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @conditions = conditions
8
+ @statements = statements
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :conditions, :statements
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class WhileNode < Node
5
+ def initialize(prism_node: nil, predicate:, statements:, inline:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @predicate = predicate
8
+ @statements = statements
9
+ @inline = inline
10
+ freeze
11
+ end
12
+
13
+ attr_accessor :predicate, :statements, :inline
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class XStringNode < Node
5
+ def initialize(prism_node: nil, unescaped:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @unescaped = unescaped
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :unescaped
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class YieldNode < Node
5
+ def initialize(prism_node: nil, arguments:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @arguments = arguments
8
+ freeze
9
+ end
10
+
11
+ attr_accessor :arguments
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ VERSION = "1.0.0"
5
+ end