class Interscript::DSL::Group

Attributes

node[RW]

Public Class Methods

new(&block) click to toggle source
# File lib/interscript/dsl/group.rb, line 6
def initialize(&block)
  @node = Interscript::Node::Group.new
  self.instance_exec(&block)
end

Public Instance Methods

downcase() click to toggle source
# File lib/interscript/dsl/group.rb, line 28
def downcase; :downcase; end
parallel(**kwargs, &block) click to toggle source
# File lib/interscript/dsl/group.rb, line 39
def parallel(**kwargs, &block)
  puts "parallel(#{chars.inspect}) from #{self.inspect}" if $DEBUG
  group = Interscript::DSL::Group::Parallel.new(**kwargs, &block)
  @node.children << group.node
end
run(stage, **kwargs) click to toggle source
# File lib/interscript/dsl/group.rb, line 11
def run(stage, **kwargs)
  if stage.class != Interscript::Node::Item::Stage
    raise TypeError, "I::Node::Item::Stage expected, got #{stage.class}"
  end
  @node.children << Interscript::Node::Rule::Run.new(stage, **kwargs)
end
sub(from, to, **kwargs, &block) click to toggle source
# File lib/interscript/dsl/group.rb, line 18
def sub(from, to, **kwargs, &block)
  puts "sub(#{from.inspect},#{to}, kwargs = #{
    kwargs.inspect
  }) from #{self.inspect}" if $DEBUG

  rule = Interscript::Node::Rule::Sub.new(from, to, **kwargs)
  @node.children << rule
end
upcase() click to toggle source
# File lib/interscript/dsl/group.rb, line 27
def upcase; :upcase; end