给定一个对象和一个模块,如何检查该对象是否已被该模块扩展?
似乎没有相应的延伸?方法

moirb(main):001:0> module Foobar
irb(main):002:1> end
=> nil
irb(main):003:0> o=Object.new
=> #<Object:0x000001010d1400>
irb(main):004:0> o.class.include? Foobar
=> false
irb(main):005:0> o.extend Foobar
=> #<Object:0x000001010d1400>
irb(main):006:0> o.class.include? Foobar
=> false
irb(main):007:0> o.class.included_modules
=> [PP::ObjectMixin, Kernel]
irb(main):016:0* o.methods.grep /extend/
=> [:extend]
irb(main):019:0> o.class.methods.grep /extend/
=> [:extend]

最佳答案

有什么理由不只是使用is_a?

o.is_a? Foobar
# => true

关于ruby - 如何确定实例是否已被Ruby模块扩展?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12116271/

10-14 06:33