Class: Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant

Inherits:
Object
  • Object
show all
Defined in:
lib/checkoff/internal/search_url/custom_field_variant.rb,
sig/checkoff.rbs

Overview

base class for handling different custom_field_##gid.variant params

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(gid, remaining_params) ⇒ CustomFieldVariant

@param gid

@param remaining_params

Parameters:

  • gid (String)
  • remaining_params (::Hash[String, ::Array[String]])


13
14
15
16
# File 'lib/checkoff/internal/search_url/custom_field_variant.rb', line 13

def initialize(gid, remaining_params)
  @gid = T.let(gid, String)
  @remaining_params = T.let(remaining_params, T::Hash[String, T::Array[String]])
end

Instance Attribute Details

#gidString (readonly)

Returns:

  • (String)


21
22
23
# File 'lib/checkoff/internal/search_url/custom_field_variant.rb', line 21

def gid
  @gid
end

#remaining_paramsHash{String => Array<String>} (readonly)

Returns:

  • (Hash{String => Array<String>})


24
25
26
# File 'lib/checkoff/internal/search_url/custom_field_variant.rb', line 24

def remaining_params
  @remaining_params
end

Instance Method Details

#ensure_no_remaining_params!void

This method returns an undefined value.



27
28
29
30
31
# File 'lib/checkoff/internal/search_url/custom_field_variant.rb', line 27

def ensure_no_remaining_params!
  return if remaining_params.empty?

  raise "Teach me how to handle these remaining keys: #{remaining_params}"
end

#fetch_solo_param(param_name) ⇒ String

@param param_name

Parameters:

  • param_name (String)

Returns:

  • (String)


36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/checkoff/internal/search_url/custom_field_variant.rb', line 36

def fetch_solo_param(param_name)
  case remaining_params.keys
  when [param_name]
    # @type param_values [Array<String>]
    param_values = remaining_params.fetch(param_name)
    unless param_values.length == 1
      raise "Teach me how to handle these remaining keys for #{param_name}: #{remaining_params}"
    end

    param_values.fetch(0)
  else
    raise "Teach me how to handle #{remaining_params}"
  end
end