module Collection
Attributes
type_parameter[R]
Public Class Methods
Array(items)
click to toggle source
# File lib/collection/collection.rb, line 58 def self.Array(items) items = Kernel::Array(items) raise ArgumentError, "Collection can't be empty" if items.empty? type_parameter = items[0].class array = Array[type_parameter].new items.each do |member| array.add(member) end array end
Set(items)
click to toggle source
# File lib/collection/collection.rb, line 42 def self.Set(items) items = Kernel::Array(items) raise ArgumentError, "Collection can't be empty" if items.empty? type_parameter = items[0].class set = Set[type_parameter].new items.each do |member| set.add(member) end set end
included(cls)
click to toggle source
# File lib/collection/collection.rb, line 2 def self.included(cls) cls.include Enumerable cls.extend Generic end
new(type_parameter)
click to toggle source
# File lib/collection/collection.rb, line 9 def initialize(type_parameter) @type_parameter = type_parameter end
Public Instance Methods
==(other)
click to toggle source
# File lib/collection/collection.rb, line 37 def ==(other) other.class == self.class && other.type_parameter == self.type_parameter && other.content == self.content end
Also aliased as: eql?
add(val)
click to toggle source
# File lib/collection/collection.rb, line 13 def add(val) if not val.is_a?(type_parameter) raise ArgumentError, "#{val.inspect} must be a #{type_parameter.name}" end content << val self end
Also aliased as: <<
clear()
click to toggle source
# File lib/collection/collection.rb, line 32 def clear content.clear self end
each(&action)
click to toggle source
# File lib/collection/collection.rb, line 24 def each(&action) content.each(&action) end
empty?()
click to toggle source
# File lib/collection/collection.rb, line 28 def empty? content.empty? end