Class: RedditApi::Comments

Inherits:
Object
  • Object
show all
Defined in:
lib/reddit_api/comments.rb

Constant Summary collapse

DEFAULT_MAX_MISSES =
2

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ Comments

Returns a new instance of Comments.



9
10
11
12
13
14
15
16
17
# File 'lib/reddit_api/comments.rb', line 9

def initialize(args = {})
  @client = args.fetch(:client, RedditApi::Client.new)
  @comment_factory = RedditApi::Comment
  @query_factory =  RedditApi::Query
  @offset = nil
  @max_misses = args.fetch(:max_miss, DEFAULT_MAX_MISSES)
  @misses = args.fetch(:misses, 0)
  @last_count = 0
end

Instance Attribute Details

#missesObject

Returns the value of attribute misses.



7
8
9
# File 'lib/reddit_api/comments.rb', line 7

def misses
  @misses
end

Instance Method Details

#most_recent_comments(user, count, offset = nil) ⇒ Object



30
31
32
33
# File 'lib/reddit_api/comments.rb', line 30

def most_recent_comments(user, count, offset = nil)
  comments_data = most_recent_comment_data(user.username, count, offset)
  build_all_comments(comments_data)
end

#most_recent_subreddits(user, count) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/reddit_api/comments.rb', line 19

def most_recent_subreddits(user, count)
  subreddits = {}
  while subreddits.length < count && misses < max_misses
    comments = most_recent_comments(user, 100, offset)
    collect_subreddits(comments, count, subreddits)
    update_progress(comments, subreddits.length)
  end
  reset_collection_metrics
  subreddits.keys
end