class Interscript::Node::Document
Attributes
aliases[RW]
dep_aliases[RW]
dependencies[RW]
metadata[RW]
name[RW]
reversed_from[RW]
stages[RW]
tests[RW]
Public Class Methods
new()
click to toggle source
# File lib/interscript/node/document.rb, line 6 def initialize puts "Interscript::Node::Document.new " if $DEBUG @metadata = nil @tests = nil @dependencies = [] @dep_aliases = {} @aliases = {} @stages = {} end
reverse_name(name)
click to toggle source
# File lib/interscript/node/document.rb, line 50 def self.reverse_name(name) newname = (name || "noname").split("-") newname[2], newname[3] = newname[3], newname[2] if newname.length >= 4 newname = newname.join("-") if newname == name newname.gsub!("-reverse", "") end if newname == name newname += "-reverse" end newname end
Public Instance Methods
==(other)
click to toggle source
# File lib/interscript/node/document.rb, line 63 def ==(other) self.class == other.class && self.metadata == other.metadata && self.tests == other.tests && self.stages == other.stages && self.aliases == other.aliases end
all_dependencies()
click to toggle source
# File lib/interscript/node/document.rb, line 32 def all_dependencies (dependencies + dependencies.map { |i| i.document.dependencies }).flatten.uniq_by do |i| i.full_name end end
call(str, stage=:main, compiler=$compiler || Interscript::Interpreter, **kwargs)
click to toggle source
# File lib/interscript/utils/helpers.rb, line 23 def call(str, stage=:main, compiler=$compiler || Interscript::Interpreter, **kwargs) compiler.(self).(str, stage, **kwargs) end
imported_aliases()
click to toggle source
# File lib/interscript/node/document.rb, line 16 def imported_aliases aliases = @aliases @dependencies.select(&:import).each do |d| aliases = d.document.aliases.merge(aliases) end aliases end
imported_stages()
click to toggle source
# File lib/interscript/node/document.rb, line 24 def imported_stages stages = @stages @dependencies.select(&:import).each do |d| stages = d.document.stages.merge(stages) end stages end
reverse()
click to toggle source
# File lib/interscript/node/document.rb, line 38 def reverse @reverse ||= self.class.new.tap do |rdoc| rdoc.name = self.class.reverse_name(name) rdoc.metadata = metadata&.reverse rdoc.tests = tests&.reverse rdoc.dependencies = dependencies.map(&:reverse) rdoc.stages = stages.transform_values(&:reverse) rdoc.dep_aliases = dep_aliases.transform_values(&:reverse) rdoc.aliases = aliases end end
to_hash()
click to toggle source
# File lib/interscript/node/document.rb, line 71 def to_hash { :class => self.class.to_s, :metadata => @metadata&.to_hash, :tests => @tests&.to_hash, :dependencies => @dependencies.map{|x| x.to_hash}, :dep_aliases => @dep_aliases.transform_values(&:to_hash), :aliases => @aliases.transform_values(&:to_hash), :stages => @stages.transform_values(&:to_hash) } end