class Perkins::Build::Data::Env

Attributes

data[R]

Public Class Methods

new(data) click to toggle source
# File lib/perkins/build/data/env.rb, line 22
def initialize(data)
  @data = data
end

Public Instance Methods

vars() click to toggle source
# File lib/perkins/build/data/env.rb, line 26
def vars
  travis_vars + settings_vars + config_vars
end
vars_groups() click to toggle source
# File lib/perkins/build/data/env.rb, line 30
def vars_groups
  [Group.new('travis',   travis_vars),
   Group.new('repository settings', settings_vars),
   Group.new('.travis.yml', config_vars)]
end

Private Instance Methods

config_vars() click to toggle source
# File lib/perkins/build/data/env.rb, line 66
def config_vars
  extract_config_vars(config[:global_env]) + extract_config_vars(config[:env])
end
extract_config_vars(vars) click to toggle source
# File lib/perkins/build/data/env.rb, line 60
def extract_config_vars(vars)
  vars = to_vars(Array(vars).compact.reject(&:empty?))
  vars.reject!(&:secure?) unless secure_env_enabled?
  vars
end
secure_env_vars?() click to toggle source
# File lib/perkins/build/data/env.rb, line 78
def secure_env_vars?
  secure_env_enabled? && config_vars.any?(&:secure?)
end
settings_vars() click to toggle source
# File lib/perkins/build/data/env.rb, line 70
def settings_vars
  data.raw_env_vars.map { |var| Var.new(var[:name], var[:value], !var[:public]) }
end
slug() click to toggle source
# File lib/perkins/build/data/env.rb, line 56
def slug
  repository[:slug] || ''
end
to_vars(args) click to toggle source
# File lib/perkins/build/data/env.rb, line 74
def to_vars(args)
  args.to_a.map { |args| Var.create(*args) }.flatten
end
travis_vars() click to toggle source
# File lib/perkins/build/data/env.rb, line 38
def travis_vars
  to_vars(
    TRAVIS_PULL_REQUEST:    pull_request || false,
    TRAVIS_SECURE_ENV_VARS: secure_env_vars?,
    TRAVIS_BUILD_ID:        build[:id],
    TRAVIS_BUILD_NUMBER:    build[:number],
    TRAVIS_BUILD_DIR:       [ BUILD_DIR, slug.shellescape ].join('/'),
    TRAVIS_JOB_ID:          job[:id],
    TRAVIS_JOB_NUMBER:      job[:number],
    TRAVIS_BRANCH:          job[:branch].shellescape,
    TRAVIS_COMMIT:          job[:commit],
    TRAVIS_COMMIT_RANGE:    job[:commit_range],
    TRAVIS_REPO_SLUG:       slug.shellescape,
    TRAVIS_OS_NAME:         config[:os],
    TRAVIS_TAG:             job[:tag]
  )
end