Sha256: 7410b22ca7745efa662ebb5b9a18d9347e6ccae982f5892a279b8610eaa8ddb5

Contents?: true

Size: 996 Bytes

Versions: 6

Compression:

Stored size: 996 Bytes

Contents

module TargetLoader
  class NoTargets    < Exception; end
  class NoDirectory  < Exception; end
  class NoDefault    < Exception; end
  class NoSuchTarget < Exception; end

  class RequestReload < Exception; end

  def self.inspect(config, target_name=nil)
    unless config[:targets]
      raise NoTargets
    end

    targets = config[:targets]
    unless targets[:targets_directory]
      raise NoDirectory.new("No targets directory specified.")
    end
    unless targets[:default_target]
      raise NoDefault.new("No default target specified.")
    end

    target_path = lambda {|name| File.join(targets[:targets_directory], name + ".yml")}

    target = if target_name
               target_path.call(target_name)
             else
               target_path.call(targets[:default_target])
             end

    unless File.exists? target
      raise NoSuchTarget.new("No such target: #{target}")
    end

    ENV['CEEDLING_MAIN_PROJECT_FILE'] = target

    raise RequestReload
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ceedling-0.31.1 lib/ceedling/target_loader.rb
ceedling-0.31.0 lib/ceedling/target_loader.rb
ceedling-0.30.0 lib/ceedling/target_loader.rb
ceedling-0.28.3 lib/ceedling/target_loader.rb
ceedling-0.28.2 lib/ceedling/target_loader.rb
ceedling-0.28.1 lib/ceedling/target_loader.rb