Class: UndoRedo

Inherits:
Object
  • Object
show all
Defined in:
lib/Hashiparmentier/Core/UndoRedo.rb

Overview

Auteur

Brabant Mano

Version

0.1

Date

09/04/2020

Cette classe représente une structure de donnée permettant de faire des undo et des redo

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeUndoRedo

:nodoc:



22
23
24
25
26
27
# File 'lib/Hashiparmentier/Core/UndoRedo.rb', line 22

def initialize()

  @actions = Array.new()
  clear()

end

Class Method Details

.creerObject

Ce constructeur permet de créer une nouvelle undoRedo



17
18
19
# File 'lib/Hashiparmentier/Core/UndoRedo.rb', line 17

def UndoRedo.creer()
  new()
end

Instance Method Details

#clearObject

Cette méthode permet de vider la undoRedo



84
85
86
87
88
89
90
91
# File 'lib/Hashiparmentier/Core/UndoRedo.rb', line 84

def clear()

  @actions.clear()
  @indice = 0
  @nbElement = 0
  return self

end

#empiler(element) ⇒ Object

Cette méthode permet de d’empiler un élément

param
  • element L’élément à empiler



34
35
36
37
38
39
40
41
# File 'lib/Hashiparmentier/Core/UndoRedo.rb', line 34

def empiler(element)

  @actions.insert(@indice, element)
  @indice += 1
  @nbElement = @indice
  return self

end

#empty?Boolean

Cette méthode permet de savoir si la undoRedo est vide

return
  • true Si la undoRedo est vide

  • false Sinon

Returns:

  • (Boolean)


78
79
80
# File 'lib/Hashiparmentier/Core/UndoRedo.rb', line 78

def empty?()
  return @actions.empty?()
end

#redoObject

Cette méthode permet de recupérer l’élément du dernier undo (de remonter dans la undoRedo)

return
  • L’élément du dernier undo



62
63
64
65
66
67
68
69
70
71
# File 'lib/Hashiparmentier/Core/UndoRedo.rb', line 62

def redo()

  if(@indice >= @nbElement)
    raise("Vous etes au bout de la undoRedo")
  else
    @indice += 1
    return @actions.at(@indice - 1)
  end

end

#undoObject

Cette méthode permet de recupérer l’élément d’avant (de descendre dans la undoRedo)

return
  • L’élément d’avant



47
48
49
50
51
52
53
54
55
56
# File 'lib/Hashiparmentier/Core/UndoRedo.rb', line 47

def undo()

  if(@indice <= 0)
    raise("La undoRedo est vide")
  else
    @indice -= 1
    return @actions.at(@indice)
  end

end