class Baleen::Project

Attributes

config[R]
name[R]

Public Class Methods

find_project(name, attribute, params={}) click to toggle source
# File lib/baleen/project.rb, line 33
def self.find_project(name, attribute, params={})
  projects = Baleen::Project.projects

  if name && attribute
    raise "You cannot specify name and attribute at the same time"
  elsif name
    return projects[name.to_sym]
  elsif attribute
    projects.each do |project, attributes|
      attributes.config.each do |attr, values|
        if attr == attribute
          params.each do |_k, _v|
            return nil unless values[_k] == _v
          end
          return projects[project]
        end
      end
    end
  end
end
find_project_by_ci(params) click to toggle source
# File lib/baleen/project.rb, line 58
def self.find_project_by_ci(params)
  find_project(nil, :ci, params)
end
find_project_by_framework(params) click to toggle source
# File lib/baleen/project.rb, line 66
def self.find_project_by_framework(params)
  find_project(nil, :framework, params)
end
find_project_by_name(name) click to toggle source
# File lib/baleen/project.rb, line 54
def self.find_project_by_name(name)
  find_project(name.to_sym, nil)
end
find_project_by_runner(params) click to toggle source
# File lib/baleen/project.rb, line 62
def self.find_project_by_runner(params)
  find_project(nil, :runner, params)
end
load_project(config) click to toggle source
# File lib/baleen/project.rb, line 18
def self.load_project(config)
  if File.exists?(config)
    yaml = Baleen::Serializable.symbolize_keys(YAML.load_file(config))
  else
    hl_error "Config file not found"
    raise Baleen::Error::ConfigMissing
  end

  yaml.each do |project, cfg|
    if Baleen::Validation::Validator.check(cfg)
      @@projects[project] = self.new(project, cfg)
    end
  end
end
new(name, cfg) click to toggle source
# File lib/baleen/project.rb, line 70
def initialize(name, cfg)
  @name = name
  load_config(cfg)
end
projects(name=nil) click to toggle source
# File lib/baleen/project.rb, line 10
def self.projects(name=nil)
  if name
    @@projects[name.to_sym]
  else
    @@projects
  end
end

Public Instance Methods

branch() click to toggle source
# File lib/baleen/project.rb, line 100
def branch
  ci[:branch]
end
ci() click to toggle source
# File lib/baleen/project.rb, line 92
def ci
  @config[:ci]
end
image() click to toggle source
# File lib/baleen/project.rb, line 96
def image
  @config[:runner][:image]
end
load_config(cfg) click to toggle source
# File lib/baleen/project.rb, line 75
def load_config(cfg)
  if Baleen::Validation::Validator.check(cfg)
    cfg[:runner][:before_command] ||= default_before_command
    cfg[:runner][:concurrency]    ||= default_concurrency
    cfg[:runner][:work_dir]       ||= default_work_dir
    cfg[:runner][:image]

    case cfg[:framework][:type]
      when "cucumber"
        cfg[:framework][:files] = cfg[:framework][:features] || default_features
      else
        raise "Passed unknown framework from config yml: #{cfg[:framework][:type]}"
    end
  end
  @config = cfg
end
repo() click to toggle source
# File lib/baleen/project.rb, line 104
def repo
  ci[:repo]
end
task() click to toggle source
# File lib/baleen/project.rb, line 112
def task
  Baleen::Task::Cucumber.new(
    image: @config[:runner][:image],
    work_dir: @config[:runner][:work_dir],
    options: @config[:framework][:options],
    files: @config[:framework][:files],
    before_command: @config[:runner][:before_command],
    concurrency: @config[:runner][:concurrency].to_i,
  )
end
url() click to toggle source
# File lib/baleen/project.rb, line 108
def url
  ci[:url]
end