Ruby 创建对象以调用\u用户转发的\u

Ruby 创建对象以调用\u用户转发的\u,ruby,twitter,Ruby,Twitter,我正在使用Ruby Twitter gem。我想调用由_useruser转发的_,options={}。如何创建要调用此方法的对象实例。这是实例方法,对吗 我这样做是为了Twitter::REST::CLIENT client = client = Twitter::REST::Client.new do |config| config.consumer_key = "..." config.consumer_secret = "..." config.access_to

我正在使用Ruby Twitter gem。我想调用由_useruser转发的_,options={}。如何创建要调用此方法的对象实例。这是实例方法,对吗

我这样做是为了Twitter::REST::CLIENT

 client = client = Twitter::REST::Client.new do |config|
  config.consumer_key     = "..."
  config.consumer_secret  = "..."
  config.access_token     = "..."
  config.access_token_secret = "..."
end
但它不适用于Twitter::Tweet

 client = client = Twitter::Tweet.new do |config|
  config.consumer_key     = "..."
  config.consumer_secret  = "..."
  config.access_token     = "..."
  config.access_token_secret = "..."
end

1您发布的代码与调用\u用户转发的\u有什么关系

2我想调用由_useruser转发的_,options={}。如何创建要调用此方法的对象实例。这是实例方法,对吗

如果您访问twitter创业板网站:

…然后单击文档链接,它会将您带到此处:

…然后,如果您单击右上角的方法列表,并向下查看用户转发的方法列表,然后单击该链接,它会将您带到此处的方法定义:

…然后,如果滚动到该页面的顶部,您可以看到该方法在名为:

Twitter::REST::时间表

在ruby中,模块包含在一个类中,然后该类的实例可以调用模块中定义的instancemethods。哪些类包括Twitter::REST::Timelines模块?页面顶部写着:

包括在:API

如果单击API链接,它会将您带到此处:

页面顶部显示模块:Twitter::REST::API

好的,一个模块也可以包含另一个模块,这意味着包含模块本身定义了包含模块中的方法。但是我们仍然需要在某个地方找到一个包含该模块的类,在页面顶部的module:Twitter::REST::API下,它显示includein:Client,如果单击客户端链接,它会将您带到这里:

该页面显示类:Twitter::REST::Client…这意味着类Twitter:REST::Client的对象可以调用由用户转发的方法,因此您可以编写如下内容:

results = Twitter::REST::Client.new.retweeted_by_user(....)
事实上,在记录Twitter::REST::Client的页面上,有一个标题叫做Instance Methods,如果您向下滚动方法列表,文档将显示来自所包含模块的所有实例方法,例如

Methods included from Timelines: #home_timeline, #mentions_timeline,
#retweeted_by_me, #retweeted_by_user, #retweeted_to_me, 
#retweets_of_me, #user_timeline
关于此处的代码:

client = client = Twitter::REST::Client.new do |config|
  config.consumer_key     = "..."
  config.consumer_secret  = "..."
  config.access_token     = "..."
  config.access_token_secret = "..."
end
文档中提到了Twitter::REST::Client.new

建造商详情

此类从Twitter::Client继承构造函数

如果单击Twitter::Client链接,它会显示:

- (Twitter::Client) initialize(options = {}) {|_self| ... }
这意味着:如果您调用Twitter::REST:Client.new并使用一个参数指定一个块,ruby将把新的Twitter::REST::Client实例传递给该块,然后您可以在该对象上调用retweeted_by_user,例如:

Twitter::REST::Client.new do |twitter_rest_client_instance|
    results = twitter_rest_client_instance.retweeted_by_user(....)
    ...
end

非常感谢您提供的详细答案。我对Timelines模块中用户转发的\u旁边的-Array的意义感到困惑。我想这可能意味着它是Tweet类上的一个方法?你能解释一下吗?@TomokoYamaguchi,数组是用户方法转发的\u的返回值。在我看来,这就像Java/C++语法。在Java/C++中,该语法意味着返回值是一个数组,数组的元素是Twitter::Tweet类的实例。