创建对象以调用retweeted_by_user

我正在使用Ruby Twitter gem。 我想调用retweeted_by_user(user,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)您发布的代码与调用retweeted_by_user()有什么关系?

2) I want to call retweeted_by_user(user, options = {}). How do I create instance of object to call this method. It is instance method, correct? I want to call retweeted_by_user(user, options = {}). How do I create instance of object to call this method. It is instance method, correct?

如果你去twittergem网站:

https://github.com/sferik/twitter

…然后点击文档链接,它会带你到这里:

http://rdoc.info/gems/twitter

…然后,如果单击右上角的Method List ,然后向下看retweeted_by_user()的列表,然后单击该链接,它将转到此处的方法定义:

http://rdoc.info/gems/twitter/Twitter/REST/Timelines#retweeted_by_user-instance_method

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

Twitter::REST::Timelines

在ruby中,模块包含在类中,然后该类的实例可以调用模块中定义的(实例)方法。 什么类包括Twitter :: REST :: Timelines模块? 在页面顶部,它说:

Included in:API

如果您点击API链接,则会转到此处:

http://rdoc.info/gems/twitter/Twitter/REST/API

在该页面的顶部,它显示Module: Twitter::REST::API

好的,模块还可以包含另一个模块,这意味着它就像包含模块本身定义了包含模块中的方法一样。 但是我们仍然需要找到一个包含该模块的类,并且在Module: Twitter::REST::API下的页面顶部,它Included in:Client ,如果你单击Client链接,它需要你在这里:

http://rdoc.info/gems/twitter/Twitter/REST/Client

那个页面说Class: Twitter::REST::Client ……这意味着Twitter类的对象:REST :: Client可以调用retweeted_by_user()方法,所以你可以写这样的东西:

 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 :: Clientinheritance构造函数

如果您点击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