Class: Buildr::Filter
- Inherits:
-
Rake::Task
- Object
- Rake::Task
- Buildr::Filter
- Defined in:
- lib/tasks/filter.rb
Instance Attribute Summary collapse
-
#filter ⇒ Object
Filter to use.
-
#target ⇒ Object
The target directory.
Instance Method Summary collapse
- #exclude(*files) ⇒ Object
- #include(*files) ⇒ Object (also: #add)
-
#initialize(*args) ⇒ Filter
constructor
A new instance of Filter.
- #into(dir) ⇒ Object
- #using(filter, &block) ⇒ Object
Constructor Details
#initialize(*args) ⇒ Filter
Returns a new instance of Filter.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/tasks/filter.rb', line 10 def initialize(*args) super enhance do |task| fail "No target directory specified" if !target || (File.exist?(target) && !File.directory?(target)) unless copy_map.empty? verbose(Rake.application..trace || false) do copy_map do |dest, src| mkpath File.dirname(dest) rescue nil case filter when Proc, Method filtered = filter.call(File.read(src)) File.open(dest, "w") { |file| file.write filtered } when Hash filtered = File.read(src).gsub(/\$\{.*\}/) { |str| filter[str[2..-2]] || str } File.open(dest, "w") { |file| file.write filtered } when nil cp src, dest else fail "Filter can be a hash (key=>value), or a proc/method; I don't understand #{filter}" end end touch target if File.exist?(target) end end end end |
Instance Attribute Details
#target ⇒ Object
The target directory.
6 7 8 |
# File 'lib/tasks/filter.rb', line 6 def target @target end |
Instance Method Details
#exclude(*files) ⇒ Object
43 44 45 46 |
# File 'lib/tasks/filter.rb', line 43 def exclude(*files) prerequisites.exclude *files self end |
#include(*files) ⇒ Object Also known as: add
37 38 39 40 |
# File 'lib/tasks/filter.rb', line 37 def include(*files) prerequisites.include *files self end |
#into(dir) ⇒ Object
48 49 50 51 |
# File 'lib/tasks/filter.rb', line 48 def into(dir) self.target = dir self end |