class TL1::AST::ColonSeparatedVariables
A sequence of fields or groups of fields separated by colons. This is the “root” AST
node for every input message and every record in an output message.
Public Class Methods
new(*fields)
click to toggle source
# File lib/tl1/ast.rb, line 111 def initialize(*fields) @fields = fields end
parse(source)
click to toggle source
# File lib/tl1/ast.rb, line 100 def self.parse(source) elements = if source.is_a?(String) AST.split(source, ':') else source.fetch('fields') end new(*elements.map { |e| AST.colon_separated_element(e) }) end
Public Instance Methods
as_json()
click to toggle source
Calls superclass method
TL1::AST::Node#as_json
# File lib/tl1/ast.rb, line 115 def as_json super(@fields.map(&:as_json)) end
format(**kwargs)
click to toggle source
# File lib/tl1/ast.rb, line 119 def format(**kwargs) fields.map { |f| f.format(**kwargs) }.join(':') end
parse(record_source, record: {})
click to toggle source
# File lib/tl1/ast.rb, line 123 def parse(record_source, record: {}) pairs = AST.split(record_source, ':').zip(@fields) pairs.each do |fragment, node| node.parse(fragment, record: record) end record end