Ruby monkey补丁AWS :: S3 :: S3Object

时间:2015-07-08 19:19:59

标签: ruby-on-rails ruby

我需要在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的一个实例。无论出于何种原因,我的新方法并没有混合。我做错了什么?

1 个答案:

答案 0 :(得分:1)

module AWS
  module S3
   class S3Object
     def blah
       puts 'foo'
     end
   end
end
相关问题