Расширение плагина рельсов - PullRequest
0 голосов
/ 23 июня 2009

Мне нужно расширить плагин, переписав метод и добавив свой собственный. До сих пор я следовал руководству 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 / у меня есть папка amazon_extensions, которая содержит question_generator_extendors.rb:

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

Но когда я попытаюсь запустить его, он все равно не распознает мои изменения. Есть мысли?

1 Ответ

0 голосов
/ 26 июня 2009

Попробуйте поменять операторы 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...