0

メソッドを上書きし、独自のメソッドを追加して、プラグインを拡張する必要があります。これまでのところ、 Strictly Untyped のガイドに従っていますが、あまり成功していません。基本的に、lib ディレクトリからエクステンションをロードするイニシャライザ フォルダにファイルがあります。

初期化子フォルダーには、次のファイルがあります。

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

拡張したい元のクラスをロードし、拡張機能を含める場所 (Amazon::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

しかし、これを実行しようとすると、変更が認識されません。何かご意見は?

4

1 に答える 1

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'
于 2009-06-25T20:38:24.503 に答える