2013-05-02 2 views
0

Я просто пытаюсь понять, как использовать определенные рубиновые драгоценные камни. Например, возьмите это reddit gem. Он говорит, чтобы иметь этот код, чтобы начать:Ruby Gems Документация

require 'snoo' 

# Create a new instance of the client 
reddit = Snoo::Client.new 

# Log into reddit 
reddit.log_in 'Username', 'Password' 

# Send a private message to me (Paradox!) 
reddit.send_pm 'Paradox', 'Snoo rubygem rocks!', "Hey Paradox, I'm trying your Snoo rubygem out and it rocks. Thanks for providing such an awesome thing!" 

# Log back out of reddit 
reddit.log_out 

Великий, но в the documentation вы можете увидеть, что класс Клиент не имеет очень много интересных функций. Захватывающие функции в классе Account, но нет никакого способа, чтобы добраться до него ... потому что если я пытаюсь что-то вроде этого

reddit = Snoo::Account.new 

Я получаю эту ошибку:

`initialize': undefined method `new' for Snoo::Account:Module (NoMethodError) 

Хорошо так что нет новый метод, но как я могу создать объект Account и использовать его функции, такие как log_in?

ответ

2

Snoo::Account является рубином Module, и был смешано с Snoo::Client уже с самоцветом. Все функции Snoo::Account уже доступны для вас на объекте reddit.

Документация по синопсификации в readme не делает это очень ясным. Но в противном случае документация на драгоценный камень выглядит хорошо для меня.

1

Вкратце рассмотрев исходный код на github, я считаю, что это ошибка в документации, так как клиент явно включает в себя функциональность многих других модулей, включая модуль учетной записи, к которому вы хотите получить доступ. В вашем примере кода, попробуйте следующие методы, чтобы подтвердить это для себя:

reddit.methods.sort 
reddit.is_a? Snoo::Account 

Я предполагаю, что программное обеспечение документации не ловите включает в себя, как они были выполнены с использованием блока.

Смежные вопросы