Module: LlmGateway::Utils

Defined in:
lib/llm_gateway/utils.rb

Class Method Summary collapse

Class Method Details

.blank?(value) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/llm_gateway/utils.rb', line 32

def blank?(value)
  case value
  when nil, false
    true
  when true, Numeric
    false
  when String
    value.match?(/\A[[:space:]]*\z/)
  else
    value.respond_to?(:empty?) ? !!value.empty? : false
  end
end

.deep_symbolize_keys(value) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/llm_gateway/utils.rb', line 11

def deep_symbolize_keys(value)
  case value
  when Hash
    value.each_with_object({}) do |(key, nested_value), result|
      result[symbolize_key(key)] = deep_symbolize_keys(nested_value)
    end
  when Array
    value.map { |item| deep_symbolize_keys(item) }
  else
    value
  end
end

.presence(value) ⇒ Object



28
29
30
# File 'lib/llm_gateway/utils.rb', line 28

def presence(value)
  present?(value) ? value : nil
end

.present?(value) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/llm_gateway/utils.rb', line 24

def present?(value)
  !blank?(value)
end

.symbolize_key(key) ⇒ Object



45
46
47
48
49
# File 'lib/llm_gateway/utils.rb', line 45

def symbolize_key(key)
  key.respond_to?(:to_sym) ? key.to_sym : key
rescue StandardError
  key
end

.symbolize_keys(hash) ⇒ Object



7
8
9
# File 'lib/llm_gateway/utils.rb', line 7

def symbolize_keys(hash)
  hash.to_h.transform_keys { |key| key.respond_to?(:to_sym) ? key.to_sym : key }
end