2011-07-17 129 views
1

我想获取特定用户的Twitter时间线,但Twitter的宝石的作品,它是按照我需要的相反顺序排序鸣叫(最新最老的)。 twitter gem将数组中的用户的时间轴推文分组,但如果我尝试使用排序,或者反转它不起作用。如何修改一个模块里面的红宝石宝石

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

所以我想实现它,但我不知道如何。我如何将新东西添加到Mash类? 如果我理解正确,每个推文的类都是Mash,位于Hashie模块内部,位于Twitter模块/ gem内部?

我想修改类与此代码:

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

但它不工作...(虽然我没有得到任何错误)。有人能指点我正确的方向吗?

随意编辑标题,如果这个问题不正确的

回答

2

Hashie::Mash类是hashie宝石的一部分(如名字所暗示的)是不是Twitter命名空间的一部分。如果你想扩展它,使用

module Hashie 
    class Mash < Hash 
    ... 
    end 
end 

...或者更简单:

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

谢谢Koractor。那么这个宝石叫做Hashie?我认为这个宝石的名字是Twitter(因为我安装了它,并且包含了它的名字)。叽叽喳喳只是文件的名称或什么? –

+2

不,你正在使用的宝石叫做'twitter',它的命名空间是'Twitter'。但它取决于另一个称为'hashie'的gem,其命名空间是'Hashie'。这可能是造成混乱的原因。 :) – Koraktor

+1

我不能得到这些工作中的任何一个:如果我使用第一种方法,我会得到“类Mash的超类不匹配”错误。如果我使用第二个,我会得到“未初始化的常量Object :: Hashie”。有任何想法吗? –

0

此问题是由要求Twitter的模块内 'HASHIE' 解决。

module Twitter 
    require "hashie" 
end 

这对我很有用。