class Brutalismbot::Reddit::Resource
Attributes
uri[R]
user_agent[R]
Public Class Methods
new(uri:nil, user_agent:nil)
click to toggle source
# File lib/brutalismbot/reddit/resource.rb, line 14 def initialize(uri:nil, user_agent:nil) @uri = uri || "https://www.reddit.com/r/brutalism/new.json" @user_agent = user_agent || "Brutalismbot v#{Brutalismbot::VERSION}" end
Public Instance Methods
all()
click to toggle source
# File lib/brutalismbot/reddit/resource.rb, line 37 def all to_a end
each() { |post| ... }
click to toggle source
# File lib/brutalismbot/reddit/resource.rb, line 19 def each Brutalismbot.logger.info("GET #{@uri}") uri = URI.parse(@uri) Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http| request = Net::HTTP::Get.new(uri, "user-agent" => @user_agent) response = JSON.parse(http.request(request).body) children = response.dig("data", "children") || [] children.each do |child| item = child.transform_keys(&:to_sym) post = Post.new(**item) unless post.is_self? Brutalismbot.logger.warn("NO MEDIA URLs for #{post.permalink}") if post.media_urls.empty? yield post end end end end
last()
click to toggle source
# File lib/brutalismbot/reddit/resource.rb, line 41 def last to_a.last end