Class: Rollout::UI::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/rollout/ui/config.rb

Constant Summary collapse

KEYS =
%i[
  instance
  actor
  actor_url
].freeze

Instance Method Summary collapse

Instance Method Details

#defined?(key) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/rollout/ui/config.rb', line 41

def defined?(key)
  !@blocks.nil? && @blocks.key?(key)
end

#get(key, *args, scope: nil) ⇒ Object

Raises:

  • (ArgumentError)


26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rollout/ui/config.rb', line 26

def get(key, *args, scope: nil)
  raise ArgumentError, "Invalid config key: #{key}" unless KEYS.include?(key)

  @blocks ||= {}
  block = @blocks[key]

  return if block.nil?

  if scope
    scope.instance_eval(&block)
  else
    block.call(*args)
  end
end