2011-07-17 9 views
1

私は特定のユーザーのtwitterタイムラインを取得しようとしていますが、Twitterの宝石の仕組みは、逆の順序でツイートをソートしています最も古い)。 twitter gemは、配列内のユーザーのタイムラインのつぶやきをグループ化しますが、並べ替えを使用しようとすると、それが逆転します。ルビーの宝石の中でモジュール内のクラスを修正する方法

これは、各ツイートのクラス(Hashie :: Mash)が< =>メソッドまたはそれに類するモジュールを実装していないためだと思います。これは理にかなっていますか?

私はそれを実装しようとしていますが、どうすればよいか分かりません。どのように新しいものをMashクラスに追加できますか? 私が正しく理解していれば、それぞれのツイートのクラスは、Hashieモジュールの中のTwitterモジュール/ gemの中のMashです。

私はこのコードでそのクラスを変更しようとしています:

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

しかし、(私はすべてのエラーを得ていないのですが)それが...動作していません。誰かが正しい方向に私を指差してくれますか?質問は右の1

答えて

2

Hashie::Mashクラスでない場合

はタイトルを編集すること自由に感じhashie宝石の一部であり、(名前のように示唆)Twitter名前空間の一部ではありません。あなたはそれを拡張したい場合は、

module Hashie 
    class Mash < Hash 
    ... 
    end 
end 

...またはさらに簡単に使用します。

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

ありがとう、Koractor。だから宝石はハシーと呼ばれていますか?私は宝石の名前がTwitterであると思った(私はそれをインストールし、その名前に含めたので)。ツイッターはファイルの名前なのでしょうか? –

+2

いいえ、あなたが使っている宝石は 'twitter'と呼ばれ、その名前空間は' Twitter'です。しかし、名前空間が「ハシー(Hashie)」である「ハッシー(hashie)」と呼ばれる別の宝石に依存しています。それはおそらく混乱の原因です。 :) – Koraktor

+1

私はこれらのいずれかを動作させることはできません。私が最初のメソッドを使用すると、 "クラスMashのスーパークラスの不一致"エラーが発生します。私が2番目を使用すると、私は "初期化されていない定数Object :: Hashie"を取得します。何か案は? –

0

この問題は、Twitterのモジュール内の「hashie」を必要とすることによって解決されます。

module Twitter 
    require "hashie" 
end 

それは私のために働く。

関連する問題