class JishoAPI::Client
Constants
- URI
Attributes
response[RW]
Public Class Methods
new()
click to toggle source
# File lib/jisho_api/client.rb, line 11 def initialize; end
Public Instance Methods
make_request(params: {})
click to toggle source
# File lib/jisho_api/client.rb, line 13 def make_request(params: {}) params.merge!(keyword: query) unless params.key?(:keyword) params.merge!(page: page) unless params.key?(:page) invalidate_cached_response! self.response = connection.get do |req| req.params = params end handle_response end
Private Instance Methods
api_data()
click to toggle source
# File lib/jisho_api/client.rb, line 48 def api_data parsed_response[:data] end
api_status()
click to toggle source
# File lib/jisho_api/client.rb, line 44 def api_status parsed_response[:meta][:status] end
connection()
click to toggle source
# File lib/jisho_api/client.rb, line 28 def connection @connection ||= Faraday.new( url: URI, headers: { 'Content-Type' => 'application/json', 'User-Agent' => "gem jisho_api #{::JishoAPI::VERSION}" } ) end
handle_response()
click to toggle source
# File lib/jisho_api/client.rb, line 38 def handle_response return api_data if response.status == 200 && api_status == 200 raise APIError, "#{response.status} response from API" end
invalidate_cached_response!()
click to toggle source
# File lib/jisho_api/client.rb, line 56 def invalidate_cached_response! self.response = nil @parsed_response = nil end
parsed_response()
click to toggle source
# File lib/jisho_api/client.rb, line 52 def parsed_response @parsed_response ||= JSON.parse(response.body).with_indifferent_access end