class Coppy::Steps::InFiles

Public Class Methods

new(*file_patterns, &block) click to toggle source
# File lib/coppy/steps/in_files.rb, line 15
def initialize(*file_patterns, &block)
  @patterns = file_patterns
  @manifesto = Manifesto.load(self.class.dsl, &block)
end

Public Instance Methods

call(env) click to toggle source
# File lib/coppy/steps/in_files.rb, line 20
def call(env)
  files = @patterns.flat_map { |pattern| Dir.glob(File.join env.target, pattern) }
  files.each do |file_path|
    file = File.read(file_path)
    local_env = env.subenv(
      file: file
    )
    @manifesto.execute!(local_env)
    File.open(file_path, 'w') { |f| f.write local_env.file }
  end
end