Sha256: ccb12b5049a6400d59a946729b320d3e9ea254db509fc19f59d66dd3061487c2
Contents?: true
Size: 1.29 KB
Versions: 2
Compression:
Stored size: 1.29 KB
Contents
require 'singleton' require 'sugar-high/kind_of' module CanTango module Registry class Base module InstanceMethods attr_writer :default, :available 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 def reset! @registered = default 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 def valid? label return available.include?(label) if respond_to?(:available) && !available.empty? true end def available [] end end include InstanceMethods end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cantango-config-0.2.1 | lib/cantango/registry/base.rb |
cantango-config-0.2.0 | lib/cantango/registry/base.rb |