class Jikan::API
Public Class Methods
new(use_ssl=true)
click to toggle source
# File lib/jikan/api.rb, line 8 def initialize(use_ssl=true) @endpoint = "" @id = nil @flag = nil @year = nil @page = nil @query = nil @selected_base = if use_ssl then Jikan::BASE_URL_V3_SSL else Jikan::BASE_URL_v3 end end
Public Instance Methods
get(endpoint:, flag: nil, id: 0, query: nil, year: Date.today.year, page: 1)
click to toggle source
# File lib/jikan/api.rb, line 18 def get(endpoint:, flag: nil, id: 0, query: nil, year: Date.today.year, page: 1) @endpoint = endpoint @id = id @flag = flag @query = query @year = year @page = page construct_url get_data end
Private Instance Methods
construct_url()
click to toggle source
# File lib/jikan/api.rb, line 32 def construct_url @end_url = "#{@selected_base}/#{@endpoint}" unless @flag.nil? || Jikan::FLAGS[@endpoint].include?(@flag) raise Jikan::FlagError, 'Flag not supported' end if @endpoint.eql?('season') if @flag.eql?(:later) @url = URI.encode("#{@end_url}/#{@flag}") elsif @url = URI.encode("#{@end_url}/#{@year}/#{@flag}") end elsif @endpoint.eql?('search') @url = URI.encode("#{@end_url}/#{@flag.to_s}?q=#{@query}&page=#{@page}") elsif @endpoint.eql?('user') @url = URI.encode("#{@end_url}/#{@query}/#{@flag.to_s}") else @url = "#{@end_url}/#{@id}" unless @flag.nil? @url << "/#{@flag.to_s}" end end end
get_data()
click to toggle source
# File lib/jikan/api.rb, line 57 def get_data res = HTTP.get(@url) if res.status >= 400 raise ClientError, "#{res.status}: error on endpoint #{@endpoint} (URL: #{@url})" end JSON.parse(res.body) end