module RapGenius::Client
Constants
- BASE_URL
- DOM_TEXT_FORMAT
- PLAIN_TEXT_FORMAT
Attributes
access_token[RW]
text_format[R]
Public Instance Methods
document()
click to toggle source
# File lib/rapgenius/client.rb, line 30 def document @document ||= fetch(@url) end
fetch(url, params = {})
click to toggle source
# File lib/rapgenius/client.rb, line 34 def fetch(url, params = {}) warn "[rapgenius] The RapGenius gem is now deprecated in favour of the more " \ "powerful and more robust Genius gem. See https://github.com/timrogers/" \ "genius for more details." unless RapGenius::Client.access_token raise MissingAccessTokenError, "You must specify an access token by setting " \ "RapGenius::Client.access_token" end response = HTTPClient.get(url, query: { text_format: "#{DOM_TEXT_FORMAT},#{PLAIN_TEXT_FORMAT}" }.merge(params), headers: { 'Authorization' => "Bearer #{RapGenius::Client.access_token}", 'User-Agent' => "rapgenius.rb v#{RapGenius::VERSION}" }) case response.code when 404 raise RapGenius::NotFoundError when 401 raise RapGenius::AuthenticationError when 200 return response.parsed_response else raise RapGenius::Error, "Received a #{response.code} HTTP response" end end
url=(url)
click to toggle source
# File lib/rapgenius/client.rb, line 22 def url=(url) unless url =~ /^https?:\/\// @url = build_api_url(url) else @url = url end end
Private Instance Methods
build_api_url(path)
click to toggle source
# File lib/rapgenius/client.rb, line 65 def build_api_url(path) BASE_URL + path.gsub(/^\//, '') end