Class: Rake::Distribute::Item::ErbFile
Instance Method Summary
collapse
Methods inherited from FileItem
#build, #build_dir, #define_diff_task, #define_tasks, #diff, #sanity?, #uninstall
Methods inherited from Base
#define_tasks, #diff, #from, #sanity?, #to
Constructor Details
#initialize(&block) ⇒ ErbFile
Returns a new instance of ErbFile.
17
18
19
20
21
22
23
24
25
|
# File 'lib/rake/distribute/item/erbfile.rb', line 17
def initialize(&block)
@context = {}
super
@build_proc ||= Proc.new do |from, to|
copy_entry from, to
end
end
|
Instance Method Details
#define_build_task(src) ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/rake/distribute/item/erbfile.rb', line 40
def define_build_task(src)
directory @build_dir
render_dest = File.join(@build_dir,
"#{Item.sn.to_s}-#{@src.pathmap('%n')}")
file render_dest => [@src, @build_dir] do
render(@src, render_dest)
end
desc 'distribute: clean'
task :clean do
safe_unlink render_dest
end
super_define_build_task(render_dest)
end
|
#render(from, to) ⇒ Object
31
32
33
34
35
36
37
|
# File 'lib/rake/distribute/item/erbfile.rb', line 31
def render(from, to)
File.open(to, 'w') do |f|
erb = ERB.new(File.read(from))
f.write(erb.result(ContextStruct.new(@context).get_binding))
f.flush
end
end
|
#super_define_build_task ⇒ Object
39
|
# File 'lib/rake/distribute/item/erbfile.rb', line 39
alias_method :super_define_build_task, :define_build_task
|
#with_context(context) ⇒ Object
27
28
29
|
# File 'lib/rake/distribute/item/erbfile.rb', line 27
def with_context(context)
@context = context
end
|