module Collection::Generic
Public Class Methods
new()
click to toggle source
# File lib/collection/generic.rb, line 19 def initialize; end
Public Instance Methods
[](type_parameter)
click to toggle source
# File lib/collection/generic.rb, line 3 def [](type_parameter) type_parameter_name = constant_name(type_parameter) cls = nil unless self.const_defined?(type_parameter_name, false) cls = define_class(type_parameter) set_collection_constant(type_parameter, cls) else cls = const_get(type_parameter_name) end cls end
constant_name(constant)
click to toggle source
# File lib/collection/generic.rb, line 31 def constant_name(constant) constant.name.gsub('::', '_') end
define_class(type_parameter)
click to toggle source
# File lib/collection/generic.rb, line 17 def define_class(type_parameter) cls = Class.new(self) do def initialize; end define_method :type_parameter do type_parameter end end set_collection_constant(type_parameter, cls) cls end
set_collection_constant(constant, cls)
click to toggle source
# File lib/collection/generic.rb, line 35 def set_collection_constant(constant, cls) class_name = constant_name(constant) unless self.const_defined?(class_name, false) self.const_set(class_name, cls) end class_name end