module CuttingEdgeHelpers

Public Instance Methods

load_repositories(path) click to toggle source
# File lib/cutting_edge/app.rb, line 26
def load_repositories(path)
  repositories = {}
  begin
    YAML.load(File.read(path)).each do |source, orgs|
      orgs.each do |org, value|
        value.each do |name, settings|
          cfg = settings.is_a?(Hash) ? settings : {}
          repo = Object.const_get("CuttingEdge::#{source.capitalize}Repository").new(org: org, name: name, lang: cfg.fetch('language', nil), locations: cfg.fetch('locations', nil), branch: cfg.fetch('branch', nil), email: cfg.fetch('email', CuttingEdge::MAIL_TO), auth_token: cfg.fetch('auth_token', nil), hide: cfg.fetch('hide', false))
          repo.dependency_types = cfg['dependency_types'].map {|dep| dep.to_sym} if cfg['dependency_types'].is_a?(Array)
          repositories["#{source}/#{org}/#{name}"] = repo
        end
      end
    end
  rescue SyntaxError, Errno::ENOENT => e
    puts "Error: #{path} does not contain a valid YAML project definition."
    if ENV['RACK_ENV'] == 'test'
      return nil
    else
      exit 1
    end
  end
  repositories
end
worker_fetch(repo) click to toggle source
# File lib/cutting_edge/app.rb, line 22
def worker_fetch(repo)
  DependencyWorker.perform_async(repo.identifier, repo.lang, repo.locations, repo.dependency_types, repo.contact_email, repo.auth_token)
end
worker_fetch_all(repositories) click to toggle source
# File lib/cutting_edge/app.rb, line 16
def worker_fetch_all(repositories)
  repositories.each do |repo|
    worker_fetch(repo)
  end
end