lib/nake/dsl.rb in nake-0.0.7 vs lib/nake/dsl.rb in nake-0.0.8.pre

- old
+ new

@@ -2,54 +2,69 @@ require "nake" require "nake/task" require "nake/file_task" -class Object - include Nake - def argument(*names, &block) - Nake.args[*names] = block - end +module Nake + module DSL + include Nake + def argument(*names, &block) + Nake.args[*names] = block + end - # Rake-style task definition - # task(:release, :build) do |task| - # # task definition - # end - def task(name, *dependencies, &block) - if block.nil? - Task.new(name, *dependencies) - else - Task.new(name, *dependencies) do |task| - task.define(&block) + # desc :release, "Create a new release" + # task(:release) do + # # ... + # end + def desc(task, description) + Task.new(task).description = description + end + + # Rake-style task definition + # task(:release, :build) do |task| + # # task definition + # end + def task(name, *dependencies, &block) + if block.nil? + Task.new(name, *dependencies) + else + Task.new(name, *dependencies) do |task| + task.define(&block) + end end end - end - def file(path, *dependencies, &block) - if block.nil? - FileTask.new(path, *dependencies) - else - FileTask.new(path, *dependencies) do |task| - task.define(&block) + def file(path, *dependencies, &block) + if block.nil? + FileTask.new(path, *dependencies) + else + FileTask.new(path, *dependencies) do |task| + task.define(&block) + end end end - end - # rule "*.o", "*.c" - # rule "**/*.o", "**/.c" - def rule(glob, dependency, &block) - Dir.glob(glob).each do |path| - FileTask.new(path) do |task| - task.description = "Generate #{path}" - task.define(&block) + # rule "*.o", "*.c" + # rule "**/*.o", "**/.c" + def rule(pattern, *dependencies, &block) + if block.nil? + Rule.new(pattern, *dependencies) + else + Rule.new(pattern, *dependencies) do |rule| + rule.define(&block) + end end end - end - def directory(path) - FileTask.new(path) do |task| - task.hidden = true # do not show in list - task.description = "Create directory #{path}" - task.define { mkdir_p path } + def directory(path) + FileTask.new(path) do |task| + task.hidden = true # do not show in list + task.description = "Create directory #{path}" + task.define { mkdir_p path } + end end end +end + +class Object + include Nake::DSL end