Skip to content

Namespaces

rusikf edited this page Oct 9, 2014 · 6 revisions

By default, your Thor tasks are invoked using Ruby namespace. This class has no namespace:

class App < Thor
  desc 'install', 'Install something'
  def install
    # task code
  end
  # other tasks
end

Its tasks are invoked as:

thor app:install

However, you could namespace your class as:

module Sinatra
  class App < Thor
    desc 'install', 'Install something'
    def install
      # task code
    end
    # other tasks
  end
end

And then you should invoke your tasks as:

thor sinatra:app:install

If desired, you can change the namespace:

module Sinatra
  class App < Thor
    namespace :myapp
    def install
      # task code
    end
    # other tasks
  end
end

And then your tasks should be invoked as:

thor myapp:install
Clone this wiki locally