module Hocon::Impl::ConfigNodeComplexValue
Attributes
Public Class Methods
Source
# File lib/hocon/impl/config_node_complex_value.rb, line 13 def initialize(children) @children = children end
Public Instance Methods
Source
# File lib/hocon/impl/config_node_complex_value.rb, line 27 def indent_text(indentation) children_copy = @children.clone i = 0 while i < children_copy.size child = children_copy[i] if child.is_a?(Hocon::Impl::ConfigNodeSingleToken) && Hocon::Impl::Tokens.newline?(child.token) children_copy.insert(i + 1, indentation) i += 1 elsif child.is_a?(Hocon::Impl::ConfigNodeField) value = child.value if value.is_a?(Hocon::Impl::ConfigNodeComplexValue) children_copy[i] = child.replace_value(value.indent_text(indentation)) end elsif child.is_a?(Hocon::Impl::ConfigNodeComplexValue) children_copy[i] = child.indent_text(indentation) end i += 1 end new_node(children_copy) end
Source
# File lib/hocon/impl/config_node_complex_value.rb, line 51 def new_node(nodes) raise Hocon::ConfigError::ConfigBugOrBrokenError, "subclasses of ConfigNodeComplexValue should override `new_node` (#{self.class})" end
This method will just call into the object’s constructor, but it’s needed for use in the indentText() method so we can avoid a gross if/else statement checking the type of this
Source
# File lib/hocon/impl/config_node_complex_value.rb, line 19 def tokens tokens = [] @children.each do |child| tokens += child.tokens end tokens end