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