Module: Revector::Utility::Keys

Extended by:
Keys
Included in:
Keys
Defined in:
lib/revector/utility.rb

Constant Summary collapse

DELIMITER_REGEX =
/\[|\]|\./

Instance Method Summary collapse

Instance Method Details

#to_ary(key) ⇒ Object Also known as: []



10
11
12
13
14
15
16
# File 'lib/revector/utility.rb', line 10

def to_ary(key)
  return [] if key.empty?

  return key.flat_map { |k| to_ary(k) } if key.is_a?(::Array)

  key.to_s.split(DELIMITER_REGEX).reject(&:empty?)
end

#to_dig(key) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/revector/utility.rb', line 19

def to_dig(key)
  enforce_level = ->(level) do
    if level.is_a?(Integer) || level.match?(/^\d$/)
      level.to_i
    else
      level.to_sym
    end
  end

  Keys[key].map(&enforce_level)
end