Class: Ruby::Merge::RubyHashLiteralProjector
- Inherits:
-
Object
- Object
- Ruby::Merge::RubyHashLiteralProjector
- Defined in:
- lib/ruby/merge.rb
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(source) ⇒ RubyHashLiteralProjector
constructor
A new instance of RubyHashLiteralProjector.
Constructor Details
#initialize(source) ⇒ RubyHashLiteralProjector
Returns a new instance of RubyHashLiteralProjector.
2383 2384 2385 |
# File 'lib/ruby/merge.rb', line 2383 def initialize(source) @source = source.to_s end |
Instance Method Details
#call ⇒ Object
2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 |
# File 'lib/ruby/merge.rb', line 2387 def call tree = TreeHaver.parser_for(:ruby, backend_type: :tree_sitter).parse(source) root = if tree.respond_to?(:parse_result) tree.parse_result.value else tree.root_node end hash_node = root_hash_node(root) raise ArgumentError, 'expected Ruby hash literal' unless hash_node?(hash_node) project_hash_node(hash_node) end |