Class: NaeginClient

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

Overview

API Wrapper em Ruby, para Naeg.in

Instance Method Summary collapse

Constructor Details

#initialize(token) ⇒ NaeginClient

Cria uma instancia de NaeginClient

Raises:



10
11
12
13
14
# File 'lib/wrapper/client.rb', line 10

def initialize(token)
  raise InvalidToken, 'Tokens devem ser Strings' unless token.is_a? String

  @url = "https://api.naeg.in/%s?token=#{token}"
end

Instance Method Details

#random_image(tag, nsfw: nil, gif: nil) ⇒ Object

Retorna um objeto NaeginImage, levando ‘url’, ‘nsfw’ e ‘gif’ como atributos.

Raises:



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/wrapper/client.rb', line 26

def random_image(tag, nsfw: nil, gif: nil)
  url = "#{@url % 'img'}&tag=#{tag}"
  url += "&nsfw=#{nsfw}" if nsfw.is_a?(TrueClass) || nsfw.is_a?(FalseClass)
  url += "&gif=#{gif}" if gif.is_a?(TrueClass) || gif.is_a?(FalseClass)

  data = JSON.parse(RestClient.get(url).body)

  raise InvalidAPIResponse, data['mensagem'] if data['erro']

  NaeginImage.new(data)
end

#tagsObject

Lista todas as Tags disponiveis para uso, retornando uma array

Raises:



17
18
19
20
21
22
23
# File 'lib/wrapper/client.rb', line 17

def tags
  data = JSON.parse(RestClient.get(@url % 'tags').body)

  raise InvalidAPIResponse, data['mensagem'] if data['erro']

  data['tags']
end