Module: SaveQueue::Object

Defined in:
lib/save_queue/object.rb

Defined Under Namespace

Modules: RunAlwaysFirst

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

class_inheritable_accessor :queue_class



7
8
9
10
11
12
13
14
15
16
# File 'lib/save_queue/object.rb', line 7

def self.included base
  base.class_eval do
    class_inheritable_accessor :queue_class
    #class<<self
    #  attr_accessor :queue_class
    #end

    self.queue_class ||= Queue
  end
end

Instance Method Details

#has_unsaved_changes?Boolean

Returns:

  • (Boolean)


47
48
49
50
# File 'lib/save_queue/object.rb', line 47

def has_unsaved_changes?
  status = instance_variable_get("@_changed_mark")
  status.nil? ? false : status
end

#initialize(*args) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/save_queue/object.rb', line 33

def initialize(*args)
  queue = self.class.queue_class.new
  instance_variable_set "@_save_queue", queue

  super if defined?(super)

  # this will make RunAlwaysFirst methods triggered first in inheritance tree
  extend RunAlwaysFirst
end

#mark_as_changedObject



43
44
45
# File 'lib/save_queue/object.rb', line 43

def mark_as_changed
  instance_variable_set "@_changed_mark", true
end

#save_queueObject



52
53
54
# File 'lib/save_queue/object.rb', line 52

def save_queue
  instance_variable_get "@_save_queue"
end