Sha256: 33208eae470b61ae97d75e58881072a43537704c8c312261f0e46f636746c7d7
Contents?: true
Size: 1.66 KB
Versions: 6
Compression:
Stored size: 1.66 KB
Contents
require 'dply/helper' module Dplyr class Stage include ::Dply::Helper attr_accessor :config_proc def initialize(name) @name = name.to_sym @hosts = [] @parallel_runs = 1 end def data finalize return ({ parallel_runs: @parallel_runs, hosts: @hosts, env: {} }) end def host(addr, user: nil, dir: nil, id: nil, roles: []) @hosts << ({ addr: addr, user: user, dir: dir, id: id || addr, roles: cleaned_roles(roles) }) end def dir(dir) @dir = dir end def user(user) @user = user end def parallel_runs(parallel_runs) @parallel_runs = parallel_runs end def fill_hosts @hosts.each do |host| host[:user] ||= fetch(:user) host[:dir] ||= fetch(:dir) end end alias_method :deploy_dir, :dir def fetch(var) value = instance_variable_get("@#{var}") raise "error accessing var #{var} for stage #{name}" if not value return value end def add_default_roles return if not @hosts.size > 0 @hosts.first[:roles] << "first" @hosts.last[:roles] << "last" end def finalize return if @finalized instance_eval &config_proc if config_proc fill_hosts add_default_roles @hosts.freeze @parallel_runs.freeze @finalized = true end def cleaned_roles(roles) error "roles must be an array" if not roles.is_a? Array roles.each do |r| r.strip! error "invalid role value #{r} " if not r =~ /\A[0-9A-Za-z_\-]+\z/ end return roles end end end
Version data entries
6 entries across 6 versions & 1 rubygems
Version | Path |
---|---|
dply-0.2.3 | lib/dplyr/stage.rb |
dply-0.2.2 | lib/dplyr/stage.rb |
dply-0.2.0 | lib/dplyr/stage.rb |
dply-0.1.19 | lib/dplyr/stage.rb |
dply-0.1.18 | lib/dplyr/stage.rb |
dply-0.1.17 | lib/dplyr/stage.rb |