class Saru::Connection::Base
Constants
- ENDPOINT_BASE
- ENDPOINT_HOST
- WanikaniConnectionError
Attributes
levels[R]
Public Class Methods
new(levels)
click to toggle source
# File lib/saru/connection/base.rb, line 15 def initialize levels @levels = levels end
Public Instance Methods
call()
click to toggle source
# File lib/saru/connection/base.rb, line 19 def call response.status == 200 ? content : raise_error end
Private Instance Methods
base_path()
click to toggle source
# File lib/saru/connection/base.rb, line 41 def base_path "#{ENDPOINT_BASE}/#{Saru.api_key}" end
connection()
click to toggle source
# File lib/saru/connection/base.rb, line 34 def connection @connection ||= Faraday.new ENDPOINT_HOST do |connection| connection.headers[ 'Content-Type' ] = 'application/json' connection.adapter :net_http end end
content()
click to toggle source
# File lib/saru/connection/base.rb, line 30 def content @content ||= JSON.parse(response.body) end
levels_request()
click to toggle source
# File lib/saru/connection/base.rb, line 45 def levels_request Array(levels).join(',') end
raise_error()
click to toggle source
# File lib/saru/connection/base.rb, line 49 def raise_error raise WanikaniConnectionError, %Q{ Wanikani responded with #{response.status} (expecting 200) request: GET #{path} response: #{response.inspect} } end
response()
click to toggle source
# File lib/saru/connection/base.rb, line 25 def response raise ArgumentError, 'Missing API key' unless Saru.valid? @response ||= connection.get path end