Как скомпоновать задачи Тора в отдельные классы / модули / файлы?

У меня проблемы с получением Thor для этого, так что, надеюсь, кто-нибудь сможет указать, что Я делаю не так.

У меня есть основной класс class MyApp , который я хочу разбить на отдельные файлы для нескольких пространств имен, например thor create: app_type и thor update: app_type . Я могу' Я не нашел примеров, показывающих, как нужно разбить приложение Thor на части, и то, что я пробовал, похоже, не работает.

Возьмем, к примеру, этот класс, который я пытаюсь отделить от основного Thor class:

module Things
  module Grouping

    desc "something", "Do something cool in this group"
    def something
      ....
    end
  end
end

Когда я пытаюсь включить или требовать это в свой основной класс:

class App < Thor
  ....
  require 'grouping_file'
  include Things::Grouping
  ....
end

, я получаю исключение: '': undefined метод 'desc' для Things :: Grouping: Module ( NoMethodError)

Возможно ли иметь несколько пространств имен для задач Thor, и если да, то как их разбить, чтобы у вас не было одного монолитного класса, занимающего несколько сотен строк?

21
задан Nick Klauer 27 April 2011 в 13:18
поделиться