Class: BarsoomUtils::ParseSpaceSeparatedTokenValues

Inherits:
Object
  • Object
show all
Defined in:
lib/barsoom_utils/parse_space_separated_token_values.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(token_name, minimum_key_size:, data:) ⇒ ParseSpaceSeparatedTokenValues

Returns a new instance of ParseSpaceSeparatedTokenValues.

Parameters:

  • token_name (String)

    name of ENV key to look up

  • minimum_key_size (Integer)

    required size of each element

  • data (Hash)

    defaults to ENV



10
11
12
13
14
# File 'lib/barsoom_utils/parse_space_separated_token_values.rb', line 10

def initialize(token_name, minimum_key_size:, data:)
  @value = data[token_name].to_s
  @token_name = token_name
  @minimum_key_size = minimum_key_size
end

Class Method Details

.call(token_name, minimum_key_size:, data: ENV) ⇒ Object



16
17
18
# File 'lib/barsoom_utils/parse_space_separated_token_values.rb', line 16

def self.call(token_name, minimum_key_size:, data: ENV)
  new(token_name, minimum_key_size: minimum_key_size, data: data).call
end

Instance Method Details

#callObject



20
21
22
23
24
25
26
27
28
# File 'lib/barsoom_utils/parse_space_separated_token_values.rb', line 20

def call
  keys = value.split

  raise "Missing #{token_name}. Quitting." if keys.empty?

  raise "Invalid #{token_name}: a too-short element found. Did a key contain a space? Quitting!" if keys.any? { |api_key| api_key.size < minimum_key_size }

  keys.freeze
end