Class: Hanoi::Jane::Dropper
- Inherits:
-
Array
- Object
- Array
- Hanoi::Jane::Dropper
- Defined in:
- lib/hanoi/jane/animation/dropper.rb
Class Method Summary collapse
Instance Method Summary collapse
- #drop ⇒ Object
- #dropped ⇒ Object
- #each ⇒ Object
-
#initialize(stack, item) ⇒ Dropper
constructor
A new instance of Dropper.
Constructor Details
#initialize(stack, item) ⇒ Dropper
Returns a new instance of Dropper.
4 5 6 7 |
# File 'lib/hanoi/jane/animation/dropper.rb', line 4 def initialize stack, item stack.map { |i| self.push i } @item = item end |
Class Method Details
.position(stack, item) ⇒ Object
29 30 31 32 33 |
# File 'lib/hanoi/jane/animation/dropper.rb', line 29 def Dropper.position stack, item pos = stack.index item return stack.length - 1 unless pos pos - 1 end |
Instance Method Details
#drop ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/hanoi/jane/animation/dropper.rb', line 9 def drop pos = Dropper.position self, @item self[pos] = @item unless pos >= self.length - 1 self[pos + 1] = nil end end |
#dropped ⇒ Object
18 19 20 |
# File 'lib/hanoi/jane/animation/dropper.rb', line 18 def dropped (self[(Dropper.position self, @item) - 1] || self[(Dropper.position self, @item)]) || (Dropper.position self, @item) == 0 end |
#each ⇒ Object
22 23 24 25 26 27 |
# File 'lib/hanoi/jane/animation/dropper.rb', line 22 def each until dropped drop yield self end end |