class Travis::Conditions::V0::Data

Public Class Methods

new(data) click to toggle source
Calls superclass method
# File lib/travis/conditions/v0/data.rb, line 5
def initialize(data)
  super(normalize(data))
end

Public Instance Methods

[](key) click to toggle source
# File lib/travis/conditions/v0/data.rb, line 9
def [](key)
  data[key.to_sym]
end
env(key) click to toggle source
# File lib/travis/conditions/v0/data.rb, line 13
def env(key)
  data.fetch(:env, {})[key.to_sym]
end

Private Instance Methods

normalize(data) click to toggle source
# File lib/travis/conditions/v0/data.rb, line 34
def normalize(data)
  data = symbolize(data)
  data[:env] = normalize_env(data[:env])
  data
end
normalize_env(env) click to toggle source
# File lib/travis/conditions/v0/data.rb, line 40
def normalize_env(env)
  symbolize(to_h(env || {}))
rescue ::ArgumentError
  raise ArgumentError.new("Cannot normalize data[:env] (#{env.inspect} given)")
end
split(str) click to toggle source
# File lib/travis/conditions/v0/data.rb, line 19
def split(str)
  str.split('=', 2)
end
symbolize(value) click to toggle source
# File lib/travis/conditions/v0/data.rb, line 23
def symbolize(value)
  case value
  when Hash
    value.map { |key, value| [key.to_sym, symbolize(value)] }.to_h
  when Array
    value.map { |value| symbolize(value) }
  else
    value
  end
end
to_h(obj) click to toggle source
# File lib/travis/conditions/v0/data.rb, line 46
def to_h(obj)
  case obj
  when Hash
    obj
  else
    Array(obj).map { |obj| split(obj.to_s) }.to_h
  end
end