summaryrefslogtreecommitdiff
path: root/lib/hoe/clean.rb
blob: c59be5b2837bbbe022043573ac19af6ddc5db179 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
##
# Clean plugin for hoe.
#
# === Tasks Provided:
#
# clean::              Clean up all the extras.

module Hoe::Clean
  ##
  # Optional: An array of file patterns to delete on clean.

  attr_accessor :clean_globs

  ##
  # Initialize variables for plugin.

  def initialize_clean
    self.clean_globs ||= %w[diff diff.txt TAGS ri deps .source_index
                            *.gem **/*~ **/.*~ **/*.rbc coverage*]
  end

  ##
  # Define tasks for plugin.

  def define_clean_tasks
    task :clobber_docs # no-op, just in case
    task :clobber_package # no-op, just in case

    desc "Clean up all the extras."
    task :clean => [ :clobber_docs, :clobber_package ] do
      clean_globs.each do |pattern|
        files = Dir[pattern]
        rm_rf files, :verbose => true unless files.empty?
      end
    end
  end
end