Sha256: 9e67360df70c5abe2304aeea24724678004fc6b4495b8f1be8a2eb47c592d0ab

Contents?: true

Size: 931 Bytes

Versions: 2

Compression:

Stored size: 931 Bytes

Contents

# frozen_string_literal: true

require 'yaml'

require_relative 'rudder/dsl.rb'
require_relative 'rudder/version.rb'

##
# Methods to compile Rudder definitions
# to Concourse Pipeline definitions
#
module Rudder
  ##
  # Compiles a {Rudder::DSL::Pipeline} definition from +path+
  # to a {Hash}
  #
  # @param path [String] the path to the +Rudder+ definition
  # @param vars optional [Hash<(Symbol, String), Any>] of +Concourse+ variables
  # @return [Hash] Concourse YAML friendly hash
  #
  def self.compile(path, vars: {})
    Rudder::DSL.eval_from_file(path, vars: vars).to_h
  end

  ##
  # Dumps a {Rudder::DSL::Pipeline} or Pipeline {Hash}
  # to the provided file handle +output+
  #
  # @param pipeline {Rudder::DSL::Pipeline} definition. Assumed to be evaluated.
  # @param output [File] handle to dump YAML to
  # @return [nil]
  #
  def self.dump(pipeline, output)
    output.puts(YAML.dump(pipeline.to_h))
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rudder-0.3.1 lib/rudder.rb
rudder-0.3.0 lib/rudder.rb