Class: Plines::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/plines/configuration.rb

Overview

Stores global Plines configuration.

Defined Under Namespace

Classes: Error

Constant Summary collapse

TWO_MONTHS_IN_SECONDS =
2 * 30 * 24 * 60 * 60

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



9
10
11
12
13
14
15
16
# File 'lib/plines/configuration.rb', line 9

def initialize
  qless_client   { raise Error, "qless_client has not been configured" }
  batch_list_key { raise Error, "batch_list_key has not been configured" }

  qless_job_options { |job| {} }
  self.data_ttl_in_seconds = TWO_MONTHS_IN_SECONDS
  @callbacks = Hash.new { |h, k| h[k] = [] }
end

Instance Attribute Details

#data_ttl_in_secondsObject

Returns the value of attribute data_ttl_in_seconds.



34
35
36
# File 'lib/plines/configuration.rb', line 34

def data_ttl_in_seconds
  @data_ttl_in_seconds
end

#qless_job_options_blockObject (readonly)

Returns the value of attribute qless_job_options_block.



39
40
41
# File 'lib/plines/configuration.rb', line 39

def qless_job_options_block
  @qless_job_options_block
end

Instance Method Details

#after_job_batch_cancellation(&block) ⇒ Object



44
45
46
# File 'lib/plines/configuration.rb', line 44

def after_job_batch_cancellation(&block)
  @callbacks[:after_job_batch_cancellation] << block
end

#batch_list_key(&block) ⇒ Object



26
27
28
# File 'lib/plines/configuration.rb', line 26

def batch_list_key(&block)
  @batch_list_key_block = block
end

#batch_list_key_for(batch_data) ⇒ Object



30
31
32
# File 'lib/plines/configuration.rb', line 30

def batch_list_key_for(batch_data)
  @batch_list_key_block[batch_data]
end

#data_ttl_in_millisecondsObject



35
36
37
# File 'lib/plines/configuration.rb', line 35

def data_ttl_in_milliseconds
  (data_ttl_in_seconds * 1000).to_i
end

#notify(callback_type, *args) ⇒ Object



48
49
50
51
52
# File 'lib/plines/configuration.rb', line 48

def notify(callback_type, *args)
  @callbacks[callback_type].each do |callback|
    callback.call(*args)
  end
end

#qless_client(&block) ⇒ Object



18
19
20
# File 'lib/plines/configuration.rb', line 18

def qless_client(&block)
  @qless_client_block = block
end

#qless_client_for(key) ⇒ Object



22
23
24
# File 'lib/plines/configuration.rb', line 22

def qless_client_for(key)
  @qless_client_block[key]
end

#qless_job_options(&block) ⇒ Object



40
41
42
# File 'lib/plines/configuration.rb', line 40

def qless_job_options(&block)
  @qless_job_options_block = block
end