2009-06-23 70 views
0

我需要通過覆蓋一個方法並添加一個我自己的插件來擴展一個插件。到目前爲止,我已經遵循Strictly Untyped's指南,但我沒有取得太大的成功。基本上,初始化文件夾中有一個文件從lib目錄中加載擴展名。擴展一個rails插件

在我的初始化文件夾,我有這樣一個文件:在

require 'amazon_extensions/question_generator_extendors.rb' 
require 'amazon/webservices/mturk/question_generator.rb' 

Amazon::WebServices::MTurk::QuestionGenerator.class_eval do 
include Amazon::QuestionGeneratorExtendors 
end 

如果我打開,我想延伸,然後原班包括我的分機(亞馬遜:: QuestionGeneratorExtendors)

然後lib /目錄我有一個包含question_generator_extendors.rb一個amazon_extensions文件夾:

module Amazon 
    module QuestionGeneratorExtendors 

    def self.included(base) 
     base.class_eval {include InstanceMethods} 
    end 

    module InstanceMethods 
     def ask(*args) 
     case @type 
     when :Basic 
      askBasic(args.join) 
     when :Formatted 
      askFormatted(args.join) 
     end 
     end 

     def askFormatted(text) 
     id = "FormattedQuestion#{@questions.size+1}" 
     question = REXML::Element.new 'FormattedContent' 
     ... 
     end 
    end 
    end 
end 

但是當我嘗試和運行這個它仍然會ñ不承認我的變化。有什麼想法嗎?

回答

0

嘗試交換require語句。

所以不是

require 'amazon_extensions/question_generator_extendors.rb' 
require 'amazon/webservices/mturk/question_generator.rb' 

require 'amazon/webservices/mturk/question_generator.rb' 
require 'amazon_extensions/question_generator_extendors.rb'