Sha256: ff97c252cf8abd7bc2cd371b93f5fb431032200091fb06ddb418087253564016

Contents?: true

Size: 877 Bytes

Versions: 10

Compression:

Stored size: 877 Bytes

Contents

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

module Glimmer
  class CommandHandlerChainFactory
    @@dsls = {}

    def self.def_dsl(dsl, *command_handler_array)
      @@last_chain_link = nil
      @@chain = nil
      command_handler_array.each do |command_handler|
        Glimmer.logger.debug "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
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
glimmer-0.4.9 lib/glimmer/command_handler_chain_factory.rb
glimmer-0.4.8 lib/glimmer/command_handler_chain_factory.rb
glimmer-0.4.7 lib/glimmer/command_handler_chain_factory.rb
glimmer-0.4.6 lib/glimmer/command_handler_chain_factory.rb
glimmer-0.4.5 lib/glimmer/command_handler_chain_factory.rb
glimmer-0.4.4 lib/glimmer/command_handler_chain_factory.rb
glimmer-0.4.3 lib/glimmer/command_handler_chain_factory.rb
glimmer-0.4.2 lib/glimmer/command_handler_chain_factory.rb
glimmer-0.4.1 lib/glimmer/command_handler_chain_factory.rb
glimmer-0.4.0 lib/glimmer/command_handler_chain_factory.rb