2009-07-09 91 views
2

我想重寫高架的幾種方法來定製自己的控制檯,此刻我的代碼如下所示:紅寶石替代類<<事情

 cmd = ask("#{@prompt_label} #{@prompt_separator} ", @tab_completion_candidates) do |q| 
      q.readline = true 

      # rewriting the Question class to make it do what we want 
      class << q 
       HERE I WRITE MY CODE 
      end 
     end 

我希望能夠從我的分離改變我的主控制檯文件,所以我們說,我有一類控制檯:問一個包含所有我想在海萊::控制檯做的修改,我希望能夠做這樣的事情:

Console::Question << q 
end 

但不幸的是,這不起作用:)

任何解決方案?

謝謝你的時間。

回答

3

如果你把你的變化的模塊中,而不是一類,那麼你可以再做

q.extend(YourModule) 

例如覆蓋valid_answer?

module QuestionCustomisations 
    def valid_answer? 
    # your code here 
    end 
end 

q.extend(QuestionCustomisations) 

這將適用於只是被傳遞到塊的對象實例更改。

+0

感謝那:) – Benjamin 2009-07-09 09:07:03