Кросс-классовый вызов в Торе

Я пытаюсь вызвать класс thor из другого класса thor.

class Foo < Thor
  desc "hello", "some description"
  def hello
    puts "Hello from Foo class"
  end
end

class Bar < Thor
desc "hello", "some description"
  def hello
    puts "Hello from Bar class"
    # ==> HERE I WANT TO CALL HELLO FROM FOO CLASS <==
  end
end

Существует метод вызова, но для вызова методов внутри одного класса. Есть ли способ сделать этот кросс-класс? Я предполагаю, что правильным способом будет использование фреймворка Thor.

ИЗМЕНИТЬ

Я пытаюсь иметь один класс, который делегирует задачу другим классам. Например, вы вызываете foo bar list, а основной класс Foo делегирует классу Bar со списком методов или foo module find 1 и делегирует класс Module с методом find и аргументами 1.


person Haris Krajina    schedule 30.07.2012    source источник
comment
Есть ли специфичная для Thor причина, по которой вы не можете поместить метод в суперкласс? В противном случае вам понадобится экземпляр, или, как вы сказали, может быть способ Thor, чтобы не следовать обычной семантике/использованию Ruby.   -  person Dave Newton    schedule 30.07.2012
comment
Выше добавлено больше информации, дело в том, что у меня много классов Тора, и я хочу дать им команду префикса. Что бы перейти к этому основному классу и делегировать другим. Мне было интересно, есть ли у Тора практика, чтобы сделать это.   -  person Haris Krajina    schedule 30.07.2012


Ответы (1)


я никогда не использовал Thor, но я думаю, что, взглянув на спецификацию здесь https://github.com/wycats/thor/blob/master/spec/invocation_spec.rb

это было бы

Foo.new.invoke(:hello)
person phoet    schedule 30.07.2012