Как изменить класс внутри модуля внутри рубинового камня - PullRequest
1 голос
/ 17 июля 2011

Я пытаюсь получить временную шкалу твиттера конкретного пользователя, но, как работает самоцвет Твиттера, он сортирует твиты в нужном мне порядке (от самого нового к старому).Драгоценный камень Twitter группирует твиты времени пользователя в массиве, но если я пытаюсь использовать сортировку или инвертировать, она не работает.

Я считаю, что это потому, что класс каждого твита (Hashie :: Mash)не реализует метод <=> или сопоставимый модуль.Имеет ли это смысл?

Так что я пытаюсь реализовать это, но я не уверен, как.Как я могу добавить новые вещи в класс Mash?Если я правильно понял, класс каждого твита - это Mash, внутри модуля Hashie, внутри модуля / гема Twitter?

Я пытаюсь изменить этот класс с помощью этого кода:

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

Но он не работает ... (хотя я не получаю никаких ошибок).Может ли кто-нибудь указать мне правильное направление?

Не стесняйтесь редактировать заголовок, если вопрос не правильный

Ответы [ 2 ]

2 голосов
/ 17 июля 2011

Класс Hashie::Mash является частью гема hashie и (как следует из названия) не является частью пространства имен Twitter. Если вы хотите расширить его, используйте

module Hashie
  class Mash < Hash
     ...
  end
end

... или даже проще:

class Hashie::Mash < Hashie::Hash
  ...
end
0 голосов
/ 11 января 2012

Эта проблема решается с помощью 'hashie' внутри модуля Twitter

module Twitter
  require "hashie"
end

Это работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...