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.
2393 2394 2395 |
# File 'lib/ruby/merge.rb', line 2393 def initialize(source) @source = source.to_s end |
Instance Method Details
#call ⇒ Object
2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 |
# File 'lib/ruby/merge.rb', line 2397 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 |