module TypeCollection::ClassMethods
Extended by TypeCollections to provide class level functionality (almost all functionality is class level as of the current design)
Public Instance Methods
__tc_members()
click to toggle source
Contains the Members mapped by type
# File lib/typecollection/class_methods.rb, line 15 def __tc_members(); @_members ||= { }; end
__tc_register_member(child)
click to toggle source
Registers a member
# File lib/typecollection/class_methods.rb, line 18 def __tc_register_member(child) type = child.inferred_type() if (type.nil?) cname = child.name.split("::").last pname = self.name.split("::").last error = "Invalid name: '#{cname}'! Child class names must end with '#{pname}'." raise TypeCollection::InvalidChildType.new(error) end __tc_members()[type] = child end
inherited(child)
click to toggle source
Overrides the default behavior when being extended by a child class. It ensures the child is mapped for future retrieval and checks the subclass name to ensure it is a valid one
Calls superclass method
# File lib/typecollection/class_methods.rb, line 32 def inherited(child) super if (defined?(super)) unless child.name.nil? __tc_collection_root.__tc_register_member(child) end end