Module: Foobara::CommandConnector::Concerns::Desugarizers::ClassMethods

Defined in:
foobara-0.0.125/projects/command_connectors/src/command_connector/concerns/desugarizers.rb

Instance Method Summary collapse

Instance Method Details

#add_desugarizer(desugarizer) ⇒ Object



8
9
10
11
12
13
14
15
# File 'foobara-0.0.125/projects/command_connectors/src/command_connector/concerns/desugarizers.rb', line 8

def add_desugarizer(desugarizer)
  if desugarizer.is_a?(::Class)
    desugarizer = desugarizer.new
  end

  desugarizers << desugarizer
  remove_instance_variable("@desugarizer") if defined?(@desugarizer)
end

#desugarizerObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'foobara-0.0.125/projects/command_connectors/src/command_connector/concerns/desugarizers.rb', line 17

def desugarizer
  return @desugarizer if defined?(@desugarizer)

  processors = desugarizers

  case processors.size
  when 0
    # TODO: test this code path by removing all desugarizers in a spec.
    # :nocov:
    nil
    # :nocov:
  when 1
    # TODO: test this code path by removing all desugarizers in a spec.
    # :nocov:
    processors.first
    # :nocov:
  else
    Value::Processor::Pipeline.new(processors:)
  end
end

#desugarizersObject



38
39
40
41
42
43
44
45
46
# File 'foobara-0.0.125/projects/command_connectors/src/command_connector/concerns/desugarizers.rb', line 38

def desugarizers
  @desugarizers ||= []

  if superclass == Object
    @desugarizers
  else
    @desugarizers + superclass.desugarizers
  end
end