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_at) ⇒ RedisCleanupVisitor



457
458
459
460
461
462
# File 'lib/taskinator/persistence.rb', line 457

def initialize(conn, instance, expire_at)
  @conn = conn
  @instance = instance
  @expire_at = expire_at.utc
  @key = instance.key
end

Instance Attribute Details

#expire_atObject (readonly)

Returns the value of attribute expire_at.



455
456
457
# File 'lib/taskinator/persistence.rb', line 455

def expire_at
  @expire_at
end

#instanceObject (readonly)

Returns the value of attribute instance.



454
455
456
# File 'lib/taskinator/persistence.rb', line 454

def instance
  @instance
end

Instance Method Details

#visitObject



464
465
466
467
# File 'lib/taskinator/persistence.rb', line 464

def visit
  @instance.accept(self)
  @conn.expireat(@key, expire_at.to_i)
end

#visit_process(attribute) ⇒ Object



469
470
471
472
# File 'lib/taskinator/persistence.rb', line 469

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

#visit_tasks(tasks) ⇒ Object



474
475
476
477
478
# File 'lib/taskinator/persistence.rb', line 474

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