Melhores métodos de inclusão Ruby

Sempre me incomodou que o #include? método em ruby ​​trata o contêiner (neste caso, uma matriz) como o assunto do método. em minha própria mente distorcida, era estranho não pensar no elemento que procuro como o assunto.
Então eu fiz isso:

module ReverseInclude

def self.included(base)
base.class_eval do
extend
ClassMethods
include
InstanceMethods
end
end

module InstanceMethods
def included_in?(arr = [])
arr
.include?(self)
end

def not_included_in?(arr = [])
!(included_in?(arr))
end
end

module ClassMethods
end
end

Object.send(:include, ReverseInclude)

um pequeno módulo curto e feliz (sai pela culatra no objeto, como você pode ver) e adiciona o #included_in? e o #não incluído em? métodos para cada objeto no sistema e basicamente permite o seguinte:

@item.included_in?(array)

e

@item.not_included_in?(array)

Inicialmente pensei em estender o módulo Enumerable, mas por enquanto parecia ser o suficiente apenas expor esses métodos em um módulo autônomo.