Class: Taskinator::Persistence::RedisCleanupVisitor

Inherits:
Visitor::Base
  • Object
show all
Defined in:
lib/taskinator/persistence.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Visitor::Base

#task_count, #visit_args, #visit_attribute, #visit_attribute_enum, #visit_attribute_time, #visit_process_reference, #visit_task_reference, #visit_type

Constructor Details

#initialize(conn, instance, expire_in) ⇒ RedisCleanupVisitor

Returns a new instance of RedisCleanupVisitor.



589
590
591
592
593
594
# File 'lib/taskinator/persistence.rb', line 589

def initialize(conn, instance, expire_in)
  @conn = conn
  @instance = instance
  @expire_in = expire_in.to_i
  @key = instance.key
end

Instance Attribute Details

#expire_inObject (readonly)

seconds



587
588
589
# File 'lib/taskinator/persistence.rb', line 587

def expire_in
  @expire_in
end

#instanceObject (readonly)

Returns the value of attribute instance.



586
587
588
# File 'lib/taskinator/persistence.rb', line 586

def instance
  @instance
end

Instance Method Details

#visitObject



596
597
598
599
# File 'lib/taskinator/persistence.rb', line 596

def visit
  @instance.accept(self)
  @conn.expire(@key, expire_in)
end

#visit_process(attribute) ⇒ Object



601
602
603
604
# File 'lib/taskinator/persistence.rb', line 601

def visit_process(attribute)
  process = @instance.send(attribute)
  RedisCleanupVisitor.new(@conn, process, expire_in).visit if process
end

#visit_tasks(tasks) ⇒ Object



606
607
608
609
610
# File 'lib/taskinator/persistence.rb', line 606

def visit_tasks(tasks)
  tasks.each do |task|
    RedisCleanupVisitor.new(@conn, task, expire_in).visit
  end
end