Sha256: c40881cbef02801fbdf1da157af820f012bc0ad8066bb1bb9c195af18e4a4865

Contents?: true

Size: 732 Bytes

Versions: 3

Compression:

Stored size: 732 Bytes

Contents

require 'rake'
require 'rake/tasklib'

module Maid
  module Rake
    class Task < ::Rake::TaskLib
      DEFAULT_DESCRIPTION = 'Maid Task'

      def initialize(*args, &task)
        @args      = args
        @task_proc = task
        define
      end

      private

      attr_reader :task_proc

      def args
        @args.reject(&:empty?)
      end

      def task_description
        @task_description ||= begin
          opts = args.detect { |arg| arg.is_a?(Hash) }
          (opts && opts.delete(:description)) || DEFAULT_DESCRIPTION
        end
      end

      def define
        desc task_description
        task(*args) do |task|
          SingleRule.perform(task.name, task_proc)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
maid-0.10.0 lib/maid/rake/task.rb
maid-0.10.0.pre.alpha.3 lib/maid/rake/task.rb
maid-0.10.0.pre.alpha.2 lib/maid/rake/task.rb