Class: Interactify::Wiring::ErrorContext

Inherits:
Object
  • Object
show all
Defined in:
lib/interactify/wiring/error_context.rb

Instance Method Summary collapse

Instance Method Details

#add_missing_keys(callable, not_in_previous_keys) ⇒ Object



33
34
35
36
37
38
# File 'lib/interactify/wiring/error_context.rb', line 33

def add_missing_keys(callable, not_in_previous_keys)
  return if not_in_previous_keys.empty?

  missing_keys[callable] ||= Set.new
  missing_keys[callable] += not_in_previous_keys
end

#add_promised_keys(promised_keys) ⇒ Object



20
21
22
23
24
# File 'lib/interactify/wiring/error_context.rb', line 20

def add_promised_keys(promised_keys)
  promised_keys.each do |key|
    previously_defined_keys << key
  end
end

#append_previously_defined_keys(keys) ⇒ Object



10
11
12
13
14
# File 'lib/interactify/wiring/error_context.rb', line 10

def append_previously_defined_keys(keys)
  keys.each do |key|
    previously_defined_keys << key
  end
end

#infer_missing_keys(callable) ⇒ Object



26
27
28
29
30
31
# File 'lib/interactify/wiring/error_context.rb', line 26

def infer_missing_keys(callable)
  new_keys = callable.expected_keys
  not_in_previous_keys = new_keys.reject { |key| previously_defined_keys.include?(key) }

  add_missing_keys(callable, not_in_previous_keys)
end

#missing_keysObject



16
17
18
# File 'lib/interactify/wiring/error_context.rb', line 16

def missing_keys
  @missing_keys ||= {}
end

#previously_defined_keysObject



6
7
8
# File 'lib/interactify/wiring/error_context.rb', line 6

def previously_defined_keys
  @previously_defined_keys ||= Set.new
end