class Que

Attributes

max_size[R]

Public Class Methods

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

  @max_size = get_number(data[:size]) || $DEFAULT_QUE_SIZE
  @list = Queue.new
  push_list(data[:list]) if data[:list]
  rescue => e
    e.init_failed(self.class)
end

Public Instance Methods

clear() click to toggle source
# File lib/que.rb, line 33
def clear
  @list.clear
end
display() click to toggle source
# File lib/que.rb, line 57
def display
  @list.to_s
end
empty?() click to toggle source
# File lib/que.rb, line 45
def empty?
 length.zero?
end
length() click to toggle source
# File lib/que.rb, line 37
def length
  @list.length
end
pop() click to toggle source
# File lib/que.rb, line 18
def pop
  raise Error if @list.empty?

  @list.pop
  rescue => e
    e.min_size_reached(self.class)
end
push(item) click to toggle source
# File lib/que.rb, line 26
def push(item)
  raise Error if @list.size >= @max_size
  @list.push item
  rescue => e
    e.max_size_reached(self.class)
end
push_list(list) click to toggle source
# File lib/que.rb, line 49
def push_list(list)
  raise Error if (@list.size+list.size) >= @max_size

  list.each { |data| @list.push data } if list.is_a? Array
  rescue => e
    e.max_size_reached(self.class)
end
size() click to toggle source
# File lib/que.rb, line 41
def size
  length
end

Private Instance Methods

get_number(str) click to toggle source
# File lib/que.rb, line 67
def get_number(str)
  return nil if str==nil
  return str.to_i
end
valid_number(str) click to toggle source
# File lib/que.rb, line 62
def valid_number(str)
  str = str.to_s
  !!(str =~ /[0-9]+/ && str.length == str.match(/[0-9]+/).to_s.length)
end