class Gritano::CLI::Thor

Public Class Methods

before(methods, &block) click to toggle source
# File lib/gritano/thor.rb, line 16
def self.before(methods, &block)
  methods.each do |method|
    before_filters[method] = block
  end
end
before_filters() click to toggle source
# File lib/gritano/thor.rb, line 22
def self.before_filters
  @before_filters ||= {}
end
define_task(name, description="", &block) click to toggle source
# File lib/gritano/thor.rb, line 6
def self.define_task(name, description="", &block)
  params = block.parameters.map { |type, name| name.upcase }.join(' ')
  desc("#{name} #{params}".rstrip, description)
  bf = before_filters
  define_method(name.to_sym) do |*params|
    instance_eval(&bf[name]) if bf[name]
    instance_exec(*params, &block)
  end
end