Class: Shikimori::API::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/shikimori/api/client.rb

Overview

Client to call shikimoris API

Constant Summary collapse

DEFAULT_SITE_URL =

Returns Default site url.

Returns:

  • (String)

    Default site url

'https://shikimori.one/'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(site = DEFAULT_SITE_URL, **options) ⇒ Client

Initialize a Shikimori’s API Client

Parameters:

  • site (String) (defaults to: DEFAULT_SITE_URL)

    Shikimori’s base url

  • options (Hash)

    Additional options to making requests to shikimori

Options Hash (**options):

  • :app_name (String)

    OAuth2 application name

  • :access_token (String)

    User’s access token from OAuth2

  • :refresh_token (String)

    User’s refresh token from OAuth2

  • :proxy_host (String)

    Proxy hostname

  • :proxy_port (Integer)

    Proxy port

  • :proxy_user (String)

    Proxy username

  • :proxy_password (String)

    Proxy password



28
29
30
31
32
33
34
# File 'lib/shikimori/api/client.rb', line 28

def initialize(site = DEFAULT_SITE_URL, **options)
  rest = REST.new(**options)
  base_uri = URI.new(site)

  @v1 = V1.new(base_url: base_uri.join('api/'), rest: rest)
  @v2 = V2.new(base_url: base_uri.join('api/v2/'), rest: rest)
end

Instance Attribute Details

#v1Object (readonly)

Returns the value of attribute v1.



15
16
17
# File 'lib/shikimori/api/client.rb', line 15

def v1
  @v1
end

#v2Object (readonly)

Returns the value of attribute v2.



15
16
17
# File 'lib/shikimori/api/client.rb', line 15

def v2
  @v2
end

Class Method Details

.as_app(site = DEFAULT_SITE_URL, **options) {|Client| ... } ⇒ Object

Using shikimori client as application

Examples:

Usage example

Shikimori::API::Client.as_app(access_token: 'my-access-token') do |client|
  animes = client.v1.animes
  mangas = client.v1.mangas
  # some logic ...
end

Yields:

  • (Client)

    client instance

See Also:



47
48
49
50
51
52
53
# File 'lib/shikimori/api/client.rb', line 47

def self.as_app(site = DEFAULT_SITE_URL, **options)
  client = new(site, **options)

  yield client

  client
end