Sha256: bf43260e8b9f51686331f99181dc213d40f1e471b00a62ab8332b7edb77481ca

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

# encoding: utf-8

require "nake"
require "nake/task"
require "nake/file_task"

class Object
  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)
      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)
      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)
      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 }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nake-0.0.7 lib/nake/dsl.rb
nake-0.0.6 lib/nake/dsl.rb