Class: MagicLoader::Task
- Inherits:
-
Rake::TaskLib
- Object
- Rake::TaskLib
- MagicLoader::Task
- Defined in:
- lib/magic_loader/tasks.rb
Overview
Generates the MagicLoader rake task
Instance Method Summary collapse
-
#initialize(*paths) ⇒ Task
constructor
Please see the README for how to use this task.
Constructor Details
#initialize(*paths) ⇒ Task
Please see the README for how to use this task
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/magic_loader/tasks.rb', line 29 def initialize(*paths) = paths.last.is_a?(Hash) ? paths.pop : {} task_name = [:name] || 'magicload' desc "Automagically calculate code dependencies" task task_name do load_order = MagicLoader.require_all(*paths) strip_paths!(load_order, [:strip]) if [:strip] magic_block = [ BEGIN_MAGIC, MAGIC_WARNING, "# Run \"rake #{task_name}\" to regenerate", load_order.map { |t| "require #{t.dump}" }, END_MAGIC ].flatten.join("\n") if [:target] if File.exists? [:target] annotate_file [:target], magic_block else File.open([:target], "w") { |f| f << magic_block } end else puts magic_block end end if [:clean] namespace task_name do desc "Remove the previous MagicLoader block" task :clean do strip_magic_block [:target] end end Rake::Task[task_name].prerequisites << "#{task_name}:clean" end end |