Sha256: d9352f2110413774388064845bb4fe9ff50b6c39b1908a21dd001ec359cb1c27

Contents?: true

Size: 739 Bytes

Versions: 1

Compression:

Stored size: 739 Bytes

Contents

class Lono::Builder::Dsl::Finalizer::Files
  class Replace < Base
    def run
      replacements.each do |placeholder, replacement|
        update_template!(@cfn)
      end
      @cfn
    end

    def replacements
      Lono::Files.files.inject({}) do |result, file|
        result.merge(file.marker => file.s3_key)
      end
    end

    def update_template!(hash)
      hash.each do |k, v|
        if v.is_a?(String)
          if v =~ %r{^LONO://}
            v.replace(replacements[v]) # replace the placeholder
          end
        elsif v.is_a?(Hash)
          update_template!(v) # recurse
        elsif v.is_a?(Array)
          v.each { |x| update_template!(x) if x.is_a?(Hash) }
        end
      end
      hash
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lono-8.0.0.pre.rc3 lib/lono/builder/dsl/finalizer/files/replace.rb