Sha256: 7bd2e2d0ccb78fc79a05454ff76af83a61eb3e36e1a1e2a5279bcea8d25ad777

Contents?: true

Size: 795 Bytes

Versions: 4

Compression:

Stored size: 795 Bytes

Contents

require File.dirname(__FILE__) + "/command_handler_chain_link"

class CommandHandlerChainFactory
  @@dsls = {}
  
  def self.def_dsl(dsl, *command_handler_array)
    @@last_chain_link = nil
    @@chain = nil
    command_handler_array.each do |command_handler|
      puts "Loading #{command_handler.class.to_s}..."
      chain_link = CommandHandlerChainLink.new(command_handler)
      @@last_chain_link.chain_to(chain_link) if @@last_chain_link
      @@last_chain_link = chain_link
      @@chain = chain_link unless @@chain
    end
    @@dsls[dsl] = {
      :last_chain_link => @@last_chain_link,
      :chain => @@chain
    }
  end

  def self.select_dsl(dsl)
    @@last_chain_link = @@dsls[dsl][:last_chain_link]
    @@chain = @@dsls[dsl][:chain]
  end
  
  def self.chain
    @@chain
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
glimmer-0.1.4.470 lib/command_handler_chain_factory.rb
glimmer-0.1.4.swt.pre.4.7.0 lib/command_handler_chain_factory.rb
glimmer-0.1.3 lib/command_handler_chain_factory.rb
glimmer-0.1.2 lib/command_handler_chain_factory.rb