我想用配置对象修补现有库的一部分:
module Library
class A
end
class B
end
end
module Config
def config(&block)
@config ||= block&.call
end
end
module Patch
refine Library::A.singleton_class do
extend Config
config { "my for A" }
end
refine Library::B.singleton_class do
extend Config
config { "my for B" }
end
end
Library::A
应该有一些预定义的配置,并且Library::B
应该有自己的配置。不幸的是,这会引发错误:
using Patch
Library::A.config
=> undefined method `config' for Library::A:Class (NoMethodError)
我想我不明白在这种情况下如何进行改进。但是有没有办法实现这样的目标?