class Middleman::Cli::Base

def method_missing(meth, *args)

Parameters:
  • meth (Symbol) --
def method_missing(meth, *args)
  meth = meth.to_s
  if self.class.map.has_key?(meth)
    meth = self.class.map[meth]
  end
  klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}")
  if klass.nil?
    tasks_dir = File.join(Dir.pwd, "tasks")
    if File.exists?(tasks_dir)
      Dir[File.join(tasks_dir, "**/*_task.rb")].each { |f| require f }
      klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}")
    end
  end
  if klass.nil?
    raise Thor::Error.new "There's no '#{meth}' command for Middleman. Try 'middleman help' for a list of commands."
  else
    args.unshift(task) if task
    klass.start(args, :shell => self.shell)
  end
end