class CollectionHolder

Attributes

holder[R]

Public Class Methods

new(data = {}) click to toggle source
# File lib/collection-holder.rb, line 11
def initialize(data = {})
  raise Error if !valid_number(data[:size]) && data[:size]

  @size = data[:size].to_i || $DEFAULT_HOLDER_SIZE
  @holder = Hash.new
rescue => e
    e.init_failed(self.class)
end

Public Instance Methods

add(collection) click to toggle source
# File lib/collection-holder.rb, line 20
def add(collection)
raise Error if @holder.size >= @size

@holder[key(@@collectionID)] = collection
@@collectionID += 1
rescue => e
  e.max_size_reached(self.class)
end
delete(id) click to toggle source
# File lib/collection-holder.rb, line 39
def delete(id)
  raise Error if @holder.empty?

  @holder.delete(key(id))
  rescue => e
    e.min_size_reached(self.class)
end
display() click to toggle source
# File lib/collection-holder.rb, line 33
def display
  @holder.each do |key, collection|
    puts "CollectionID##{key.to_s} | #{collection.class.to_s} | #{collection.display}\n"
  end
end
find(id) click to toggle source
# File lib/collection-holder.rb, line 29
def find(id)
  @holder[key(id)]
end

Private Instance Methods

key(id) click to toggle source
# File lib/collection-holder.rb, line 48
def key(id)
  id.to_s.to_sym
end
valid_number(str) click to toggle source
# File lib/collection-holder.rb, line 52
def valid_number(str)
  str = str.to_s
  !!(str =~ /[0-9]+/ && str.length == str.match(/[0-9]+/).to_s.length)
end