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

<<(val)
Alias for: add
==(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
eql?(other)
Alias for: ==