class RedditApi::Subreddits
Attributes
client[R]
query_factory[R]
subreddit_factory[R]
Public Class Methods
new()
click to toggle source
# File lib/reddit_api/subreddits.rb, line 5 def initialize @client = RedditApi::Client.new @subreddit_factory = RedditApi::Subreddit @query_factory = RedditApi::Query end
Public Instance Methods
data_for(subreddit_name)
click to toggle source
# File lib/reddit_api/subreddits.rb, line 16 def data_for(subreddit_name) query = build_singular_query(subreddit_name) client.get(query) build_subreddit(query.captured_records.first) end
top(count)
click to toggle source
# File lib/reddit_api/subreddits.rb, line 11 def top(count) subreddits_data = top_data(count) build_all_subreddits(subreddits_data) end
Private Instance Methods
build_all_subreddits(subreddits_data)
click to toggle source
# File lib/reddit_api/subreddits.rb, line 45 def build_all_subreddits(subreddits_data) subreddits_data.map! do |subreddit_data| build_subreddit(subreddit_data["data"]) end end
build_plural_query(count)
click to toggle source
# File lib/reddit_api/subreddits.rb, line 31 def build_plural_query(count) endpoint = "subreddits/popular.json" query_factory.new(count: count, endpoint: endpoint, resource: :subreddit) end
build_singular_query(subreddit_name)
click to toggle source
# File lib/reddit_api/subreddits.rb, line 38 def build_singular_query(subreddit_name) endpoint = "r/#{subreddit_name}/about.json" query_factory.new(count: 1, endpoint: endpoint, resource: :subreddit) end
build_subreddit(subreddit_data)
click to toggle source
# File lib/reddit_api/subreddits.rb, line 51 def build_subreddit(subreddit_data) subreddit_factory.new(subreddit_data) end
top_data(count)
click to toggle source
# File lib/reddit_api/subreddits.rb, line 25 def top_data(count) query = build_plural_query(count) client.get(query) query.captured_records end