This repository has been archived on 2021-10-01. You can view files and clone it, but cannot push or open issues or pull requests.
d20pfsrd/lib/page.rb

45 lines
713 B
Ruby

# require "pry"
# require "colorize"
# require "yaml"
require "nokogiri"
require "net/http"
require_relative "./cache"
class Page
include Cache
BASE_URL = "https://www.d20pfsrd.com"
attr_accessor :uri
def initialize(uri: nil)
@uri = uri
@uri = URI.join(BASE_URL, uri) if !@uri.start_with?("https://")
end
def get
raise "No URI provided" unless @uri
uri = URI(@uri)
if uri != @page_uri
@page = cache(uri) { Net::HTTP.get(uri) }
@page_uri = uri
end
self
end
def parse
raise "Nothing to parse" unless @uri && @page
Nokogiri::HTML.parse(@page)
end
def to_ruby
raise "Not implemented"
end
def inspect
"<@uri=#{@uri}>"
end
end