Module: Ariadne::FetchOrFallbackHelper

Includes:
LoggerHelper
Included in:
Component, IconHelper
Defined in:
app/lib/ariadne/fetch_or_fallback_helper.rb

Overview

:nodoc:

Constant Summary collapse

InvalidValueError =
Class.new(StandardError)
TRUE_OR_FALSE =
[true, false].freeze

Instance Method Summary collapse

Methods included from LoggerHelper

#logger, #silence_deprecations?, #silence_warnings?

Instance Method Details

#check_incoming_attribute(preferred_attribute, given_attribute) ⇒ Object

TODO: test this



63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'app/lib/ariadne/fetch_or_fallback_helper.rb', line 63

def check_incoming_attribute(preferred_attribute, given_attribute)
  return preferred_attribute if given_attribute.blank? || preferred_attribute != given_attribute

  unless silence_warnings?
    message = "      Ariadne: note that `\#{preferred_attribute}` is the preferred attribute here;\n      you passed `\#{given_attribute}` (which will still be used)\n    MSG\n\n    logger.warn(message)\n  end\n\n  given_attribute\nend\n"

#check_incoming_tag(preferred_tag, given_tag) ⇒ Object

TODO: test this



47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'app/lib/ariadne/fetch_or_fallback_helper.rb', line 47

def check_incoming_tag(preferred_tag, given_tag)
  return preferred_tag if given_tag.blank? || preferred_tag == given_tag

  unless silence_warnings?
    message = "      Ariadne: note that `\#{preferred_tag}` is the preferred tag here;\n      you passed `\#{given_tag}` (which will still be used)\n    MSG\n\n    logger.warn(message)\n  end\n\n  given_tag\nend\n"

#check_incoming_value(preferred_value, given_pair) ⇒ Object

TODO: test this



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'app/lib/ariadne/fetch_or_fallback_helper.rb', line 79

def check_incoming_value(preferred_value, given_pair)
  return preferred_value if given_pair.blank? || !given_pair.is_a?(Hash)

  given_key = given_pair.keys.first
  given_value = given_pair.values.first

  return preferred_value if given_value.blank?

  unless silence_warnings?

    message = "      Ariadne: note that `\#{preferred_value}` is the preferred value for `\#{given_key}` here;\n      you passed `\#{given_value}` (which will still be used)\n    MSG\n\n    logger.warn(message)\n  end\n\n  given_value\nend\n"

#fetch_or_raise(allowed_values, given_value) ⇒ Object

Raises:

  • (ArgumentError)


27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/lib/ariadne/fetch_or_fallback_helper.rb', line 27

def fetch_or_raise(allowed_values, given_value)
  raise ArgumentError, "allowed_values must be an array; it was #{allowed_values.class}" unless allowed_values.is_a?(Array)

  if allowed_values.include?(given_value)
    given_value
  else
    raise InvalidValueError, "      fetch_or_raise was called with an invalid value.\n\n      Expected one of: \#{allowed_values.inspect}\n      Got: \#{given_value.inspect}\n    MSG\n  end\nend\n"

#fetch_or_raise_boolean(given_value) ⇒ Object



42
43
44
# File 'app/lib/ariadne/fetch_or_fallback_helper.rb', line 42

def fetch_or_raise_boolean(given_value)
  fetch_or_raise(TRUE_OR_FALSE, given_value)
end