Sha256: a7717fb1dca7c5bf07a834019a1a3d2c5bceaa1b013ff92a88aa8b2669bd5cf8

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

module Caco::Postgres
  class ConfGet < Trailblazer::Operation
    ProcessSingleValue = Class.new(Trailblazer::Activity::Signal)
    ProcessMultipleValue = Class.new(Trailblazer::Activity::Signal)

    step Caco::Postgres::BuildAugeas()

    step :define_what_process,
      Output(ProcessSingleValue, :single_value) => Id(:process_single_value),
      Output(ProcessMultipleValue, :multiple_values) => Id(:process_multiple_values),
      Output(Trailblazer::Activity::Left, :failure) => End(:failure)

    step :process_single_value, magnetic_to: nil
    step :process_multiple_values, magnetic_to: nil

    def define_what_process(ctx, name: nil, names: nil, **)
      if name and name.is_a?(String)
        return ProcessSingleValue
      elsif names and names.is_a?(Array)
        return ProcessMultipleValue
      else
        return false
      end
    end

    def process_single_value(ctx, name:, aug:, **)
      ctx[:value] = aug.get("/files/postgresql.conf/#{name}")
    end

    def process_multiple_values(ctx, names:, aug:, **)
      ctx[:values] = {}
      names.each do |name|
        ctx[:values][name.to_s] = aug.get("/files/postgresql.conf/#{name}")
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
caco-0.1.0 lib/caco/postgres/conf_get.rb