Module: Undoable
- Defined in
- lib/kyanite/general/undoable.rb
Undoable Module
Save and restore objects. Great for try-and-error-algorithms.
- Kyanite definitions
- Kyanite tests and examples
- Usage
-
require 'kyanite/general/undoable'
Class Method Summary (collapse)
-
+ (Object) clear
Discards all saved states of all objects.
Instance Method Summary (collapse)
-
- (Object) load_and_delete
Loads a saved state of an object, the saved state will be discarded.
-
- (Object) load_and_keep
Loads a saved state of an object, the saved state remains in memory.
-
- (Object) save(method = :dup)
Saves an object.
Constant Summary
- @@undoable_history =
Hash.new
Class Method Details
+ (Object) clear
Discards all saved states of all objects.
39 40 41 |
# File 'lib/kyanite/general/undoable.rb', line 39 def self.clear @@undoable_history.clear end |
Instance Method Details
- (Object) load_and_delete
Loads a saved state of an object, the saved state will be discarded.
32 33 34 |
# File 'lib/kyanite/general/undoable.rb', line 32 def load_and_delete @@undoable_history.delete(self.object_id) end |
- (Object) load_and_keep
Loads a saved state of an object, the saved state remains in memory.
25 26 27 |
# File 'lib/kyanite/general/undoable.rb', line 25 def load_and_keep @@undoable_history[self.object_id] end |
- (Object) save(method = :dup)
Saves an object.
17 18 19 20 |
# File 'lib/kyanite/general/undoable.rb', line 17 def save(method=:dup) return if self == @@undoable_history[self.object_id] # nichts zu tun @@undoable_history[self.object_id] = self.send(method) end |