0

我只是想了解如何使用特定的红宝石。例如,以这个reddit gem为例。它说要启动此代码:

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

很好,但是在文档中您可以看到 Client 类没有很多令人兴奋的功能。令人兴奋的功能在 Account 类中,但没有办法得到它......因为如果我尝试这样的事情

reddit = Snoo::Account.new

我收到此错误:

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

好的,所以没有新方法,但是我如何制作一个Account对象并使用它的功能log_in呢?

4

2 回答 2

2

Snoo::Account是一个 Ruby Module,并且已经被Snoo::Clientgem 混入了。Snoo::Account您已经可以在reddit对象上使用 的所有功能。

自述文件中的概要文档并没有说明这一点。但除此之外,gem 上的文档对我来说看起来不错。

于 2013-05-02T09:59:54.267 回答
1

看一下github上的源代码让我相信这是文档中的一个错误,因为客户端清楚地包含了许多其他模块的功能,包括您想要访问的 Account 模块。在您的示例代码中,请尝试以下方法自行确认:

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

我假设文档软件没有捕获包含,因为它们是使用块执行的。

于 2013-05-02T09:54:56.247 回答