naegin 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6f75717b0eb8d9dd77b4582354475fd3f31dc20bdaaea05f649dbde277686942
4
+ data.tar.gz: a1ce1c6c2701a7684333dca4dfa3bf1c5062e3d46df4f38c860905f4f3a09fc7
5
+ SHA512:
6
+ metadata.gz: 6973e5c701a7bb55a8c406fcdfa1372ee9c4a0e29c76471f76ee22d4cb3d534f9775016e92ae2c2d21ce247017d2ecbb5fd22910af477d03551ad02a36834f1f
7
+ data.tar.gz: 97989b1f058c2dc8ef7094db3ae35e049fdb97337b538dc1016c01d8949accfe776ecd83c0ad77f859bda12e4396731ccae4c1b7c24410652e02643ff9bbab22
data/lib/naegin.rb ADDED
@@ -0,0 +1 @@
1
+ require 'wrapper/client'
@@ -0,0 +1,37 @@
1
+ require 'wrapper/errors'
2
+ require 'wrapper/image'
3
+
4
+ require 'rest-client'
5
+ require 'json'
6
+
7
+ # API Wrapper em Ruby, para Naeg.in
8
+ class NaeginClient
9
+ # Cria uma instancia de NaeginClient
10
+ def initialize(token)
11
+ raise InvalidToken, 'Tokens devem ser Strings' unless token.is_a? String
12
+
13
+ @url = "https://api.naeg.in/%s?token=#{token}"
14
+ end
15
+
16
+ # Lista todas as Tags disponiveis para uso, retornando uma array
17
+ def tags
18
+ data = JSON.parse(RestClient.get(@url % 'tags').body)
19
+
20
+ raise InvalidAPIResponse, data['mensagem'] if data['erro']
21
+
22
+ data['tags']
23
+ end
24
+
25
+ # Retorna um objeto NaeginImage, levando 'url', 'nsfw' e 'gif' como atributos.
26
+ def random_image(tag, nsfw: nil, gif: nil)
27
+ url = "#{@url % 'img'}&tag=#{tag}"
28
+ url += "&nsfw=#{nsfw}" if nsfw.is_a?(TrueClass) || nsfw.is_a?(FalseClass)
29
+ url += "&gif=#{gif}" if gif.is_a?(TrueClass) || gif.is_a?(FalseClass)
30
+
31
+ data = JSON.parse(RestClient.get(url).body)
32
+
33
+ raise InvalidAPIResponse, data['mensagem'] if data['erro']
34
+
35
+ NaeginImage.new(data)
36
+ end
37
+ end
@@ -0,0 +1,5 @@
1
+ class InvalidToken < ArgumentError
2
+ end
3
+
4
+ class InvalidAPIResponse < StandardError
5
+ end
@@ -0,0 +1,10 @@
1
+ # Representa uma Imagem retornada pela API
2
+ class NaeginImage
3
+ attr_reader :url, :nsfw, :gif
4
+
5
+ def initialize(data)
6
+ @url = data['url']
7
+ @nsfw = data['nsfw']
8
+ @gif = data['gif']
9
+ end
10
+ end
@@ -0,0 +1 @@
1
+ VERSION = '1.0.0'.freeze
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: naegin
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Naegin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-02-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rest-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: API Wrapper em Ruby, para Naeg.in
28
+ email: naegin2k19@gmail.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/naegin.rb
34
+ - lib/wrapper/client.rb
35
+ - lib/wrapper/errors.rb
36
+ - lib/wrapper/image.rb
37
+ - lib/wrapper/version.rb
38
+ homepage: https://github.com/Naegin/naegin.rb
39
+ licenses:
40
+ - MIT
41
+ metadata: {}
42
+ post_install_message:
43
+ rdoc_options: []
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ requirements: []
57
+ rubygems_version: 3.0.2
58
+ signing_key:
59
+ specification_version: 4
60
+ summary: API Wrapper em Ruby, para Naeg.in
61
+ test_files: []