class Piperun::Pipeline
Attributes
filters[R]
Public Class Methods
build(src, dst, &block)
click to toggle source
# File lib/piperun/pipeline.rb, line 17 def self.build(src, dst, &block) pipe = new(src, dst) dsl = DSL.new(pipe) dsl.instance_eval(&block) pipe end
new(src, dst)
click to toggle source
# File lib/piperun/pipeline.rb, line 7 def initialize(src, dst) @src = File.absolute_path(src) @dst = File.absolute_path(dst) @filters = [] end
Public Instance Methods
add_filter(f)
click to toggle source
# File lib/piperun/pipeline.rb, line 13 def add_filter(f) @filters << f end
run(files = nil)
click to toggle source
# File lib/piperun/pipeline.rb, line 42 def run(files = nil) if files == nil Dir.chdir @src do files = Dir['**/*'].reject {|fn| File.directory?(fn) } end end src = @src @filters.each do |f| begin break if files.length == 0 if f == @filters.last dst = @dst FileUtils.mkdir_p dst else dst = Dir.mktmpdir end files = f.run(src, dst, files) ensure FileUtils.remove_entry_secure src unless src == @src end src = dst end return files end
watch()
click to toggle source
# File lib/piperun/pipeline.rb, line 73 def watch Listen.to(@src) do |modified, added, removed| run end.start end