Sha256: f9d2e3f6415ceae6c5aa2d70e4625b144bbebe848081528ce115deab4a6ab707
Contents?: true
Size: 1.44 KB
Versions: 2
Compression:
Stored size: 1.44 KB
Contents
require "http" require "json" require "uri" module Jikan class API 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 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 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 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 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jikan.rb-0.0.7 | lib/jikan/api.rb |
jikan.rb-0.0.6 | lib/jikan/api.rb |