2012-03-12 2 views
3

Я хотел бы добавить модуль ко всем классам Enumerable. Есть ли хороший способ сделать это?включает новый mixin во всех перечислимых классах

Мое решение в этой точке:

module Enumerable 
    include my_module 
end 

class Array 
    include Enumerable 
end 

class ____ 
etc... 

Если не включать новую версию Enumerable во всех классов, которые включают в себя оригинальные Enumerable, они не обновляются. Есть ли лучший способ сделать это? Возможно, с некоторым метапрограммированием?

Спасибо!

+0

Что вы пытаетесь достичь? –

+0

Я не думал, что это имело значение для вопроса. Но, я пытаюсь добавить палиндром? метод для перечислений для домашнего задания. Я понимаю, что это глупо для таких вещей, как хэш, но это то, что я пытаюсь сделать. – Nathan

ответ

3

Насколько я знаю, вы должны написать код метода внутри Enumerable модуля

module Enumerable 
    def so 
     "StackOverflow!" 
    end 
end 

a = [1, 3, 7] 
a.so 
#=> "StackOverflow!" 
+0

Да, это имеет большой смысл. Благодарю. – Nathan

Смежные вопросы