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