class Traker::Config

Represents Traker configuration.

Constants

PATH

Public Class Methods

load() click to toggle source
# File lib/traker/config.rb, line 14
def self.load
  Config.new(File.join(::Rails.root, PATH))
end
new(file) click to toggle source
# File lib/traker/config.rb, line 18
def initialize(file)
  yml = YAML.safe_load(File.read(file))
  @environments = yml['environments']
rescue Psych::SyntaxError => e
  puts "[TRAKER] unable to load config file: #{e}"
  @environments = {}
end

Public Instance Methods

env() click to toggle source
# File lib/traker/config.rb, line 26
def env
  @env ||= ENV.fetch('TRAKER_ENV', 'default')
end
tasks() click to toggle source
# File lib/traker/config.rb, line 30
def tasks
  @environments[env] || []
end
validate!(available_tasks) click to toggle source
# File lib/traker/config.rb, line 34
def validate!(available_tasks)
  available_task_names = available_tasks.map(&:name)

  @environments.each do |_, tasks|
    task_names = (tasks || []).map { |t| t['name'] }
    invalid_tasks = task_names - available_task_names

    if invalid_tasks.any?
      raise InvalidTasks, "#{PATH} contains invalid tasks: #{invalid_tasks.join(',')}"
    end
  end
end