class SyntaxTree::BareAssocHash
BareAssocHash
represents a hash of contents being passed as a method argument (and therefore has omitted braces). It’s very similar to an AssocListFromArgs node.
method(key1: value1, key2: value2)
Attributes
- Array[
Assoc
|AssocSplat
]
Public Class Methods
Source
# File lib/syntax_tree/node.rb, line 1856 def initialize(assocs:, location:) @assocs = assocs @location = location @comments = [] end
Public Instance Methods
Source
# File lib/syntax_tree/node.rb, line 1891 def ===(other) other.is_a?(BareAssocHash) && ArrayMatch.call(assocs, other.assocs) end
Source
# File lib/syntax_tree/node.rb, line 1862 def accept(visitor) visitor.visit_bare_assoc_hash(self) end
Source
# File lib/syntax_tree/node.rb, line 1866 def child_nodes assocs end
Also aliased as: deconstruct
Source
# File lib/syntax_tree/node.rb, line 1870 def copy(assocs: nil, location: nil) node = BareAssocHash.new( assocs: assocs || self.assocs, location: location || self.location ) node.comments.concat(comments.map(&:copy)) node end
Source
# File lib/syntax_tree/node.rb, line 1883 def deconstruct_keys(_keys) { assocs: assocs, location: location, comments: comments } end
Source
# File lib/syntax_tree/node.rb, line 1887 def format(q) q.seplist(assocs) { |assoc| q.format(assoc) } end
Source
# File lib/syntax_tree/node.rb, line 1895 def format_key(q, key) @key_formatter ||= case q.parents.take(3).last when Break, Next, ReturnNode HashKeyFormatter::Identity.new else HashKeyFormatter.for(self) end @key_formatter.format_key(q, key) end