Class: Traker::Config
- Inherits:
-
Object
- Object
- Traker::Config
- Defined in:
- lib/traker/config.rb
Overview
Represents Traker configuration.
Defined Under Namespace
Classes: InvalidTasks
Constant Summary collapse
- PATH =
'.traker.yml'
Class Method Summary collapse
Instance Method Summary collapse
- #env ⇒ Object
-
#initialize(file) ⇒ Config
constructor
A new instance of Config.
- #tasks ⇒ Object
- #validate!(available_tasks) ⇒ Object
Constructor Details
#initialize(file) ⇒ Config
Returns a new instance of Config.
18 19 20 21 22 23 24 |
# 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 |
Class Method Details
Instance Method Details
#env ⇒ Object
26 27 28 |
# File 'lib/traker/config.rb', line 26 def env @env ||= ENV.fetch('TRAKER_ENV', 'default') end |
#tasks ⇒ Object
30 31 32 |
# File 'lib/traker/config.rb', line 30 def tasks @environments[env] || [] end |
#validate!(available_tasks) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# 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 |