class SetUpDevelopment::Engine

Constants

DEFAULT_CONFIG

Attributes

config[RW]
dependencies[RW]
registry[RW]

Public Class Methods

new(config = nil) click to toggle source
# File lib/set_up_development/engine.rb, line 13
def initialize(config = nil)
  ENV.delete("RUBYOPT")
  self.config = YAML::load_file(config || DEFAULT_CONFIG) || {}
  define_dependencies!
rescue Errno::ENOENT => load_error
  raise "No config file found. Try running `touch set-up-development`"
end

Public Instance Methods

missing_dependencies() click to toggle source
# File lib/set_up_development/engine.rb, line 21
def missing_dependencies
  dependencies.select do |dependency|
    !dependency.installed?
  end
end

Private Instance Methods

define_dependencies!() click to toggle source
# File lib/set_up_development/engine.rb, line 29
def define_dependencies!
  self.dependencies = config.inject([]) do |dependencies, (installer_name, dependency_names)|
    installer = Registry.installers[installer_name]
    raise "No installer found for '#{installer_name}'" unless installer
    dependency_names.each do |dependency_name|
      dependencies << Dependency.new(installer, dependency_name)
    end
    dependencies
  end
end