Sha256: a10cdf4d3331672ce4dff02c1158f86ce07a2946f2b614b427d3e7eb8e57338c
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
# frozen_string_literal: true require 'yaml' require 'doit' What = Object.new class << What attr_reader :matrix attr_reader :where attr_reader :env def init(config) @matrix = nil @yml = (config && YAML.load(config)) || {} @where = @yml.delete('where') @env = @yml.delete('env') @env ||= [''] @env = [@env].flatten.compact remote = Doit.options[:remote] @where = remote if remote && remote != '---' @where ||= Dir.pwd # default is current directory @where = [@where].flatten.compact build_matrix @matrix ||= [] @matrix = [@matrix] unless Array === @matrix.first @matrix.map! { |m| m.flatten.inject({}) { |hsh, h| hsh.merge(h) } } info end def to_env(hsh) arr = hsh.collect { |key, value| "#{key.to_s.upcase}=#{value}" } arr.join ' ' end def info return unless Doit.options[:verbose] My.verbose 'where', @where My.verbose 'matrix', @matrix My.verbose 'env', @env end private def build_matrix return if @yml.empty? key, value = @yml.first @yml.delete(key) add_to_matrix(key, value) build_matrix end def add_to_matrix(key, val) arr = Array === val ? val.collect { |v| [{ key => v }] } : [{ key => val }] @matrix = @matrix ? @matrix.product(arr) : arr end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
doit-0.3.6 | lib/what.rb |