Module: DistribCore::Distrib

Defined in:
lib/distrib_core/distrib.rb

Overview

This module is used to define common methods on root classes.

Instance Method Summary collapse

Instance Method Details

#configureObject

Call to prepare configuration.

See Also:



7
8
9
# File 'lib/distrib_core/distrib.rb', line 7

def configure(...)
  configuration.instance_eval(...)
end

#kindObject

Returns kind of current instance. ‘:leader` or `:worker`.

Returns:

  • kind of current instance. ‘:leader` or `:worker`

Raises:

  • (RuntimeError)

    if kind is not set



27
28
29
# File 'lib/distrib_core/distrib.rb', line 27

def kind
  @kind || raise('kind is not set')
end

#kind=(kind) ⇒ Object

Set kind of the current instance

Parameters:

  • kind (Symbol)

    ‘:leader` or `:worker` only

Raises:

  • (ArgumentError)


14
15
16
17
18
19
20
21
22
# File 'lib/distrib_core/distrib.rb', line 14

def kind=(kind)
  raise("Mode is already set: #{kind}") if @kind

  kind = kind&.to_sym

  raise(ArgumentError, 'Invalid kind, should be `leader` or `worker`') unless %i[leader worker].include?(kind)

  @kind = kind
end

#leader?TrueClass, FalseClass

Returns ‘true` when `kind` is `:leader`.

Returns:

  • (TrueClass, FalseClass)

    ‘true` when `kind` is `:leader`



32
33
34
# File 'lib/distrib_core/distrib.rb', line 32

def leader?
  kind == :leader
end

#worker?TrueClass, FalseClass

Returns true when ‘kind` is `:worker`.

Returns:

  • (TrueClass, FalseClass)

    true when ‘kind` is `:worker`



37
38
39
# File 'lib/distrib_core/distrib.rb', line 37

def worker?
  kind == :worker
end