読者です 読者をやめる 読者になる 読者になる

Ruby の using が refine 内だと反映されない

Ruby

Refinements の refine 内では外のスコープで定義した using は反映されませんでした。

module A
    refine Object do
        def mami
            :mami
        end
    end
end

using A

module B
    refine Class do
        def homu
            self.mami
        end
    end
end

using B

Class.new.homu
# => Error: undefined method `mami' for #<Class:0x000000016a9d10> (NoMethodError)

こういう仕様なんですかねぇー。
refinements は基本的に便利なんですけどちょいちょい痒いところに手が届かないのが…。