Sha256: f6cc4d12f524f56a259cc13b5d7ed3e4120b949532ddd263977c760b6f0c405a

Contents?: true

Size: 988 Bytes

Versions: 19

Compression:

Stored size: 988 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("No targets directory specified.")
    end
    unless targets[:default_target]
      raise NoDefault("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

19 entries across 19 versions & 1 rubygems

Version Path
ceedling-0.27.0 lib/ceedling/target_loader.rb
ceedling-0.25.0 lib/ceedling/target_loader.rb
ceedling-0.24.0 lib/ceedling/target_loader.rb
ceedling-0.22.0 lib/ceedling/target_loader.rb
ceedling-0.21.0 lib/ceedling/target_loader.rb
ceedling-0.20.3 lib/ceedling/target_loader.rb
ceedling-0.20.2 lib/ceedling/target_loader.rb
ceedling-0.19.0 lib/ceedling/target_loader.rb
ceedling-0.18.0 lib/ceedling/target_loader.rb
ceedling-0.17.0 lib/ceedling/target_loader.rb
ceedling-0.16.0 lib/ceedling/target_loader.rb
ceedling-0.15.6 lib/ceedling/target_loader.rb
ceedling-0.15.5 lib/ceedling/target_loader.rb
ceedling-0.15.4 lib/ceedling/target_loader.rb
ceedling-0.15.3 lib/ceedling/target_loader.rb
ceedling-0.15.2 lib/ceedling/target_loader.rb
ceedling-0.15.1 lib/ceedling/target_loader.rb
ceedling-0.15.0 lib/ceedling/target_loader.rb
ceedling-0.13.0 lib/target_loader.rb