Sha256: b104547b2b2c402aad10aea6355b3be663ea811bfa5b65001feea0ac89b95e25

Contents?: true

Size: 692 Bytes

Versions: 10

Compression:

Stored size: 692 Bytes

Contents

# encoding: utf-8

require "nake/abstract_task"

module Nake
  class Rule < AbstractTask
    undef_method :hidden, :hidden=
    class << self
      undef_method :tasks
    end

    def self.rules
      @@rules ||= Hash.new
    end

    # Rule["test.o"]
    # # => rule with pattern ".o"
    def self.[](file)
      self.rules.find { |rule| rule.match?(file.to_s) }
    end

    def self.[]=(pattern, rule)
      self.rules[pattern.to_s] = rule
    end

    alias_method :pattern, :name
    def match?(file)
      #
    end
  end

  # Somewhat like method_missing:
  # If you can't find a task, try to look for a rule
  AbstractTask.tasks.default_proc = lambda { |hash, name| Rule[name] }
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
nake-0.1.1 lib/nake/rule.rb
nake-0.1 lib/nake/rule.rb
nake-0.0.9.5 lib/nake/rule.rb
nake-0.0.9.4 lib/nake/rule.rb
nake-0.0.9.3 lib/nake/rule.rb
nake-0.0.9.2 lib/nake/rule.rb
nake-0.0.9.pre lib/nake/rule.rb
do_riak-0.10.1.pre gems/gems/nake-0.0.8/lib/nake/rule.rb
nake-0.0.8.pre lib/nake/rule.rb
nake-0.0.8 lib/nake/rule.rb