如何修改ruby gem中的模块内部的类

时间:2011-07-17 13:39:03

标签: ruby rubygems

我正在尝试获取特定用户的Twitter时间轴,但是Twitter宝石的工作方式,它是按照我需要的相反顺序(从最新到最旧)排序推文。 twitter gem将用户的时间轴推文分组在一个数组中,但是如果我尝试使用sort,或者反转它就不起作用。

我相信这是因为每条推文(Hashie :: Mash)的类都没有实现< =>方法或类似模块。这有意义吗?

所以我试图实现它,但我不确定如何。如何向Mash类添加新内容? 如果我理解正确,每个推文的类都是Mash,在Hashie模块内部,在Twitter模块/ gem中?

我正在尝试使用以下代码修改该类:

  module Twitter
   module Hashie
    class Mash
      def testmethod
       puts 'hello world'
      end
    end
   end
  end

但它不起作用......(虽然我没有收到任何错误)。有人可以指出我正确的方向吗?

如果问题不正确,请随意编辑标题

2 个答案:

答案 0 :(得分:2)

Hashie::Mash类是hashie gem的一部分,(顾名思义)不是Twitter命名空间的一部分。如果要扩展它,请使用

module Hashie
  class Mash < Hash
     ...
  end
end

......甚至更简单:

class Hashie::Mash < Hashie::Hash
  ...
end

答案 1 :(得分:0)

通过在Twitter模块中要求'hashie'来解决此问题。

module Twitter
  require "hashie"
end

这适合我。