2011-07-17 131 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 

這對我很有用。