Class: Array

Inherits:
Object
  • Object
show all
Defined in:
lib/arraybooster.rb

Instance Method Summary collapse

Instance Method Details

#anypop(list, numbers = nil) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/arraybooster.rb', line 3

def anypop list, numbers = nil
  if numbers.nil?
    popped = list.pop
    return popped, list
  else
    popped = []
    numbers.times do |i|
      popped << list.pop
    end
    return popped, list
  end
end

#lpop(numbers = nil) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/arraybooster.rb', line 34

def lpop numbers = nil
  return nil if self.length == 0
  reversed_self = self.reverse
  popped, list = anypop(reversed_self, numbers)
  self.replace(list.reverse)
  return popped
end

#lpush(element) ⇒ Object



16
17
18
# File 'lib/arraybooster.rb', line 16

def lpush element
  self.insert(0, element)
end

#ppush(element, priority) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/arraybooster.rb', line 24

def ppush element, priority
  if priority - 1 > self.length
    self.insert(-1, element)
  elsif priority - 1 < 0
    self.insert(0, element)
  else
    self.insert(priority - 1, element)
  end
end

#rpop(numbers = nil) ⇒ Object



42
43
44
45
46
47
# File 'lib/arraybooster.rb', line 42

def rpop numbers = nil
  return nil if self.length == 0
  popped, list = anypop(self, numbers)
  self.replace(list)
  return popped
end

#rpush(element) ⇒ Object



20
21
22
# File 'lib/arraybooster.rb', line 20

def rpush element
  self.insert(-1, element)
end

#substitute(element, substitute_element) ⇒ Object



49
50
51
52
53
54
55
56
# File 'lib/arraybooster.rb', line 49

def substitute element, substitute_element
  self.count(element).times do |i|
    index = self.index(element)
    self.delete_at(index)
    self.insert(index, substitute_element)
  end
  self
end