Sha256: 5738318fb98d023245fe8274892961076e6b5c3cd884c4b8b215c1cea84e8c6f

Contents?: true

Size: 924 Bytes

Versions: 1

Compression:

Stored size: 924 Bytes

Contents

require 'singleton'
require 'sugar-high/kind_of'

module CanTango
  class Configuration
    class Registry
      
      attr_writer   :default
      attr_accessor :registered

      def types= *types
        @types = types.select {|t| t.is_a? Class }
      end

      def types
        @types ||= [Symbol, String]
        @types
      end

      def clean!
        @registered = []
      end

      alias_method :clear!, :clean!

      def default!
        @registered = default
      end

      def register *list
        registered << list.select_kinds_of(*types)
        registered.flat_uniq!
      end

      alias_method :<<, :register

      def [] index
        registered[index]
      end

      def registered
        @registered ||= default
      end

      def registered? label
        registered.map(&:to_s).include? label.to_s
      end

      def default
        @default ||= []
      end
    end
  end
end


Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cantango-0.8.5.1 lib/cantango/configuration/registry.rb