Class: SyntaxTree::ArrayLiteral::QWordsFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/syntax_tree/node.rb

Overview

Formats an array of multiple simple string literals into the %w syntax.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(contents) ⇒ QWordsFormatter



1059
1060
1061
# File 'lib/syntax_tree/node.rb', line 1059

def initialize(contents)
  @contents = contents
end

Instance Attribute Details

#contentsObject (readonly)

Args

the contents of the array



1057
1058
1059
# File 'lib/syntax_tree/node.rb', line 1057

def contents
  @contents
end

Instance Method Details

#format(q) ⇒ Object



1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
# File 'lib/syntax_tree/node.rb', line 1063

def format(q)
  q.text("%w[")
  q.group do
    q.indent do
      q.breakable_empty
      q.seplist(contents.parts, BREAKABLE_SPACE_SEPARATOR) do |part|
        if part.is_a?(StringLiteral)
          q.format(part.parts.first)
        else
          q.text(part.value[1..])
        end
      end
    end
    q.breakable_empty
  end
  q.text("]")
end