class NScript::ObjectNode

Public Class Methods

new(properties = []) click to toggle source
# File lib/nscript/parser/nodes.rb, line 633
def initialize(properties = [])
  @properties = properties
end

Public Instance Methods

compile_node(o) click to toggle source
# File lib/nscript/parser/nodes.rb, line 637
def compile_node(o)
  o[:indent] = idt(1)
  joins = Hash.new("\n")
  non_comments = @properties.select {|p| !p.is_a?(CommentNode) }
  non_comments.each {|p| joins[p] = p == non_comments.last ? "\n" : ",\n" }
  props  = @properties.map { |prop|
    join = joins[prop]
    join = '' if prop == @properties.last
    indent = prop.is_a?(CommentNode) ? '' : idt(1)
    "#{indent}#{prop.compile(o)}#{join}"
  }.join('')
  write("{\n#{props}\n#{idt}}")
end