我需要在AWS SDK版本1 1.60 gem中为我们的开发环境修补AWS S3Object类。我认为它就像任何其他猴子补丁一样简单,只需重新声明类并添加它或覆盖事物,但它似乎不起作用。我没有添加任何我尝试添加的方法。像下面这样简单的东西不会起作用。
class S3Object
def blah
puts 'foo'
end
end
connection = AWS::S3::new
connection.buckets['bucketname'].objects['object_name'].blah
有了这个我得到一个错误:
NoMethodError: undefined method `blah' for <AWS::S3::S3Object:amazon.server.com/bucketname>:AWS::S3::S3Object
我还尝试通过执行此操作来跟踪gem的模块和类结构
module AWS
class S3
class S3Object
def blah
puts '***** blah blah blah *****'
end
end
end
end
无法正常工作
从源代码的外观来看,对象集合应该包含S3Object的一个实例。无论出于何种原因,我的新方法并没有混合。我做错了什么?
答案 0 :(得分:1)
module AWS
module S3
class S3Object
def blah
puts 'foo'
end
end
end