Module: DelayedCrud

Defined in:
lib/delayed_crud.rb,
lib/delayed_crud/worker.rb,
lib/delayed_crud/railtie.rb,
lib/delayed_crud/version.rb,
lib/delayed_crud/job/sidekiq_job.rb,
lib/delayed_crud/model_extension.rb,
lib/delayed_crud/worker/sidekiq_worker.rb,
lib/delayed_crud/background_job_handler.rb,
lib/delayed_crud/background_job_handler/sidekiq_handler.rb

Overview

:nodoc:

Defined Under Namespace

Modules: BackgroundJobHandler, Job, ModelExtension, Worker Classes: Error, Railtie

Constant Summary collapse

VERSION =
"0.1.1"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.queue_adapter ⇒ Object

Returns the value of attribute queue_adapter.



8
9
10
# File 'lib/delayed_crud.rb', line 8

def queue_adapter
  @queue_adapter
end

Class Method Details

.calculate_delay(time_specification) ⇒ Object

Raises:

  • (ArgumentError)


21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/delayed_crud.rb', line 21

def self.calculate_delay(time_specification)
  raise ArgumentError, "Cannot perform transaction without time specification" unless time_specification

  if time_specification.respond_to?(:from_now)
    delay = (time_specification.from_now - Time.now).to_i
  elsif time_specification.respond_to?(:to_i)
    delay = (time_specification - Time.now).to_i
  else
    raise ArgumentError, "Invalid time specification: #{time_specification}"
  end

  unless delay.positive?
    raise ArgumentError,
          "Cannot perform #{operation} with negative time specification: #{options[:in] || options[:after]}"
  end

  delay
end

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (DelayedCrud) —

    the object that the method was called on



11
12
13
# File 'lib/delayed_crud.rb', line 11

def self.configure
  yield self
end

.setup ⇒ Object



15
16
17
18
19
# File 'lib/delayed_crud.rb', line 15

def self.setup
  return if queue_adapter

  self.queue_adapter = :sidekiq
end