module Ccp::Commands::Composite

Constants

CommandClass

Public Class Methods

included(base) click to toggle source
Calls superclass method Ccp::Commands::Core::included
# File lib/ccp/commands/composite.rb, line 4
def self.included(base)
  super
  base.class_eval do
    include Core
    extend CommandManager
  end
end

Public Instance Methods

commands() click to toggle source

Enumerable

# File lib/ccp/commands/composite.rb, line 61
def commands
  @commands ||= build_commands.must(Array)
end
execute() click to toggle source

Commands

# File lib/ccp/commands/composite.rb, line 68
def execute
  commands.each do |c|
    c.receiver.execute(c)
  end
end
receiver=(value) click to toggle source
Calls superclass method
# File lib/ccp/commands/composite.rb, line 74
def receiver=(value)
  super
  commands.each{|c| c.receiver = value}
end

Private Instance Methods

build_commands() click to toggle source
# File lib/ccp/commands/composite.rb, line 80
def build_commands
  array = self.class.commands.select{|c| c.cond.nil? or instance_eval(&c.cond)}
  cmds  = array.map{|c|
    c = c.klass.new(*c.args)
    c.receiver = receiver
    c
  }
end