ygoprodeck 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +7 -2
- data/Rakefile +4 -2
- data/examples/{try_archetype.rb → archetype.rb} +1 -1
- data/examples/banlist.rb +5 -0
- data/examples/check_db.rb +3 -0
- data/examples/list.rb +3 -0
- data/examples/random.rb +18 -0
- data/examples/search.rb +27 -0
- data/examples/search_fuzzy.rb +27 -0
- data/examples/set.rb +3 -0
- data/lib/ygoprodeck/search/archetype.rb +27 -20
- data/lib/ygoprodeck/search/banlist.rb +36 -24
- data/lib/ygoprodeck/search/card_sets.rb +26 -10
- data/lib/ygoprodeck/search/check_db_version.rb +33 -0
- data/lib/ygoprodeck/search/client/image_gapis.rb +2 -2
- data/lib/ygoprodeck/search/fuzzy_name.rb +18 -19
- data/lib/ygoprodeck/search/list.rb +46 -20
- data/lib/ygoprodeck/search/name.rb +20 -19
- data/lib/ygoprodeck/search/random.rb +18 -10
- data/lib/ygoprodeck/version.rb +1 -1
- data/lib/ygoprodeck.rb +1 -0
- data/spec/check_db_spec.rb +6 -0
- data/spec/spec_helper.rb +1 -1
- data/ygoprodeck.gemspec +1 -1
- metadata +15 -11
- data/examples/a.rb +0 -22
- data/examples/try.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65e1a83a313bf96bf2f0fb16903e27702a264e280a62e80c13e7c9ff945a84d0
|
4
|
+
data.tar.gz: aadbb1e8774beb238b0d538d72cf700a129080bd99541f70eb466b563c4f55b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 531e2861df7e647c64efeb8dfc6eac4c9e34cd90a9b6fc2773e2c5219eb7a55c477e50c81e4174e7e972b259d143bde074ebc311984a77f134d3468348f8f6b3
|
7
|
+
data.tar.gz: 1fc2c092a8b37df4d7de5430fb00409b6c41af9e9c27828de90db7ae1ad763b5b67dc4f89274fa5a374afce667934fa289d774a19bf875fc9ed4eb3e9b96d873
|
data/README.md
CHANGED
@@ -66,6 +66,11 @@ Ygoprodeck::Banlist.ocg
|
|
66
66
|
Ygoprodeck::Banlist.goat
|
67
67
|
```
|
68
68
|
|
69
|
+
Check Database Version :
|
70
|
+
```ruby
|
71
|
+
Ygoprodeck::CheckDbVer.info
|
72
|
+
```
|
73
|
+
|
69
74
|
or look [examples](https://github.com/rokhimin/ygoprodeck/blob/master/examples)
|
70
75
|
|
71
76
|
#### Noted
|
@@ -103,9 +108,9 @@ Rate Limiting on the API is enabled. The rate limit is 20 requests per 1 second
|
|
103
108
|
|
104
109
|
## Development
|
105
110
|
|
106
|
-
#### Test
|
111
|
+
#### Unit Test
|
107
112
|
```
|
108
|
-
|
113
|
+
rspec
|
109
114
|
```
|
110
115
|
|
111
116
|
## Contributing
|
data/Rakefile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'ygoprodeck'
|
2
2
|
|
3
|
-
# kaiba is example, you free to change
|
3
|
+
# kaiba is example, you free to change card name
|
4
4
|
kaiba = Ygoprodeck::Archetype.is('blue-eyes') # example I wanna search 'blue-eyes' archetype
|
5
5
|
|
6
6
|
# make for looping for listing archetype
|
data/examples/banlist.rb
ADDED
data/examples/list.rb
ADDED
data/examples/random.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'ygoprodeck'
|
2
|
+
|
3
|
+
yugi = Ygoprodeck::Card.random
|
4
|
+
puts yugi
|
5
|
+
|
6
|
+
puts '#' *10
|
7
|
+
|
8
|
+
puts yugi['id']
|
9
|
+
puts yugi['name']
|
10
|
+
puts yugi['attribute']
|
11
|
+
puts yugi['type']
|
12
|
+
puts yugi['race']
|
13
|
+
puts yugi['level']
|
14
|
+
puts yugi['desc']
|
15
|
+
puts yugi['atk']
|
16
|
+
puts yugi['def']
|
17
|
+
puts Ygoprodeck::Image.is(yugi['id'])
|
18
|
+
puts Ygoprodeck::Image_small.is(yugi['id'])
|
data/examples/search.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'ygoprodeck'
|
2
|
+
|
3
|
+
# yugi is example, you free to change name card
|
4
|
+
yugi = Ygoprodeck::Name.is('dark magician') # example I wanna search 'dark magician' using fuzzy search
|
5
|
+
|
6
|
+
case
|
7
|
+
when yugi == nil
|
8
|
+
puts "Card not found"
|
9
|
+
else
|
10
|
+
puts yugi # => get all information of dark magician (name,id,level,attr,atk,def,etc)
|
11
|
+
|
12
|
+
puts '#' *10
|
13
|
+
|
14
|
+
|
15
|
+
# => get specific information of dark magician
|
16
|
+
puts yugi['id']
|
17
|
+
puts yugi['name']
|
18
|
+
puts yugi['attribute']
|
19
|
+
puts yugi['type']
|
20
|
+
puts yugi['race']
|
21
|
+
puts yugi['level']
|
22
|
+
puts yugi['desc']
|
23
|
+
puts yugi['atk']
|
24
|
+
puts yugi['def']
|
25
|
+
puts Ygoprodeck::Image.is(yugi['id']) # => use id from yugi['id'] to get dark magician image
|
26
|
+
puts Ygoprodeck::Image_small.is(yugi['id']) # => small version
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'ygoprodeck'
|
2
|
+
|
3
|
+
# yugi is example, you free to change name card
|
4
|
+
yugi = Ygoprodeck::Fname.is('dark magician') # example I wanna search 'dark magician' using fuzzy search
|
5
|
+
|
6
|
+
case
|
7
|
+
when yugi == nil
|
8
|
+
puts "Card not found"
|
9
|
+
else
|
10
|
+
puts yugi # => get all information of dark magician (name,id,level,attr,atk,def,etc)
|
11
|
+
|
12
|
+
puts '#' *10
|
13
|
+
|
14
|
+
|
15
|
+
# => get specific information of dark magician
|
16
|
+
puts yugi['id']
|
17
|
+
puts yugi['name']
|
18
|
+
puts yugi['attribute']
|
19
|
+
puts yugi['type']
|
20
|
+
puts yugi['race']
|
21
|
+
puts yugi['level']
|
22
|
+
puts yugi['desc']
|
23
|
+
puts yugi['atk']
|
24
|
+
puts yugi['def']
|
25
|
+
puts Ygoprodeck::Image.is(yugi['id']) # => use id from yugi['id'] to get dark magician image
|
26
|
+
puts Ygoprodeck::Image_small.is(yugi['id']) # => small version
|
27
|
+
end
|
data/examples/set.rb
ADDED
@@ -1,21 +1,28 @@
|
|
1
|
-
|
2
1
|
module Ygoprodeck
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
2
|
+
class Archetype
|
3
|
+
attr_reader :archetype
|
4
|
+
|
5
|
+
def self.is(archetype)
|
6
|
+
url = "#{Ygoprodeck::Endpoint.is}cardinfo.php?archetype=#{URI.encode_www_form_component(archetype)}"
|
7
|
+
uri = URI(url)
|
8
|
+
|
9
|
+
begin
|
10
|
+
response = Net::HTTP.get(uri)
|
11
|
+
load = JSON.parse(response)
|
12
|
+
|
13
|
+
if load['data'].nil? || load['data'].empty?
|
14
|
+
{ 'error' => 'No card matching your query was found in the database.' }
|
15
|
+
else
|
16
|
+
load['data']
|
17
|
+
end
|
18
|
+
|
19
|
+
rescue JSON::ParserError => e
|
20
|
+
{ 'error' => 'Failed to parse JSON response' }
|
21
|
+
rescue SocketError => e
|
22
|
+
{ 'error' => 'Network connection error' }
|
23
|
+
rescue StandardError => e
|
24
|
+
{ 'error' => "An unexpected error occurred: #{e.message}" }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -1,26 +1,38 @@
|
|
1
|
-
|
2
1
|
module Ygoprodeck
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
2
|
+
class Banlist
|
3
|
+
def self.fetch_banlist(format)
|
4
|
+
url = "#{Ygoprodeck::Endpoint.is}cardinfo.php?banlist=#{format}"
|
5
|
+
uri = URI(url)
|
6
|
+
|
7
|
+
begin
|
8
|
+
response = Net::HTTP.get(uri)
|
9
|
+
load = JSON.parse(response)
|
10
|
+
|
11
|
+
if load.has_key?('error')
|
12
|
+
{ 'error' => load['error'] }
|
13
|
+
else
|
14
|
+
load
|
15
|
+
end
|
16
|
+
|
17
|
+
rescue JSON::ParserError => e
|
18
|
+
{ 'error' => 'Failed to parse JSON response' }
|
19
|
+
rescue SocketError => e
|
20
|
+
{ 'error' => 'Network connection error' }
|
21
|
+
rescue StandardError => e
|
22
|
+
{ 'error' => "An unexpected error occurred: #{e.message}" }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.tcg
|
27
|
+
fetch_banlist('tcg')
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.ocg
|
31
|
+
fetch_banlist('ocg')
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.goat
|
35
|
+
fetch_banlist('goat')
|
36
|
+
end
|
37
|
+
end
|
26
38
|
end
|
@@ -1,12 +1,28 @@
|
|
1
|
-
|
2
1
|
module Ygoprodeck
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
class Card
|
3
|
+
def self.sets
|
4
|
+
url = "https://db.ygoprodeck.com/api/v7/cardsets.php"
|
5
|
+
uri = URI(url)
|
6
|
+
|
7
|
+
begin
|
8
|
+
response = Net::HTTP.get(uri)
|
9
|
+
load = JSON.parse(response)
|
10
|
+
|
11
|
+
if load.is_a?(Hash) && load.has_key?('error')
|
12
|
+
{ 'error' => load['error'] }
|
13
|
+
else
|
14
|
+
load
|
15
|
+
end
|
16
|
+
|
17
|
+
rescue JSON::ParserError => e
|
18
|
+
{ 'error' => 'Failed to parse JSON response' }
|
19
|
+
rescue SocketError => e
|
20
|
+
{ 'error' => 'Network connection error' }
|
21
|
+
rescue Timeout::Error => e
|
22
|
+
{ 'error' => 'Request timed out' }
|
23
|
+
rescue StandardError => e
|
24
|
+
{ 'error' => "An unexpected error occurred: #{e.message}" }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
12
28
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Ygoprodeck
|
2
|
+
class CheckDbVer
|
3
|
+
def self.info
|
4
|
+
url = "https://db.ygoprodeck.com/api/v7/checkDBVer.php"
|
5
|
+
uri = URI(url)
|
6
|
+
|
7
|
+
begin
|
8
|
+
response = Net::HTTP.get_response(uri)
|
9
|
+
|
10
|
+
unless response.is_a?(Net::HTTPSuccess)
|
11
|
+
return { 'error' => "HTTP request failed with status code: #{response.code}" }
|
12
|
+
end
|
13
|
+
|
14
|
+
load = JSON.parse(response.body)
|
15
|
+
|
16
|
+
if load.is_a?(Hash) && load.has_key?('error')
|
17
|
+
{ 'error' => load['error'] }
|
18
|
+
else
|
19
|
+
load
|
20
|
+
end
|
21
|
+
|
22
|
+
rescue JSON::ParserError => e
|
23
|
+
{ 'error' => 'Failed to parse JSON response' }
|
24
|
+
rescue SocketError => e
|
25
|
+
{ 'error' => 'Network connection error' }
|
26
|
+
rescue Net::ReadTimeout => e
|
27
|
+
{ 'error' => 'Request timed out' }
|
28
|
+
rescue StandardError => e
|
29
|
+
{ 'error' => "An unexpected error occurred: #{e.message}" }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -3,14 +3,14 @@ module Ygoprodeck
|
|
3
3
|
class Image
|
4
4
|
attr_reader :image_by_id
|
5
5
|
def self.is(image_by_id)
|
6
|
-
"https://
|
6
|
+
"https://images.ygoprodeck.com/images/cards/#{image_by_id}.jpg"
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
10
|
class Image_small
|
11
11
|
attr_reader :image_small_by_id
|
12
12
|
def self.is(image_small_by_id)
|
13
|
-
"https://
|
13
|
+
"https://images.ygoprodeck.com/images/cards_cropped/#{image_small_by_id}.jpg"
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -1,21 +1,20 @@
|
|
1
|
-
|
2
1
|
module Ygoprodeck
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
2
|
+
class Fname
|
3
|
+
def self.is(f_name)
|
4
|
+
url = "#{Ygoprodeck::Endpoint.is}cardinfo.php?fname=#{URI.encode_www_form_component(f_name)}"
|
5
|
+
uri = URI(url)
|
6
|
+
|
7
|
+
begin
|
8
|
+
response = Net::HTTP.get(uri)
|
9
|
+
load = JSON.parse(response)
|
10
|
+
|
11
|
+
return nil if load["data"].nil? || load["data"].empty?
|
12
|
+
|
13
|
+
load["data"][0]
|
21
14
|
|
15
|
+
rescue JSON::ParserError, SocketError, StandardError => e
|
16
|
+
nil
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,21 +1,47 @@
|
|
1
|
-
|
2
1
|
module Ygoprodeck
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
2
|
+
class List
|
3
|
+
attr_reader :list
|
4
|
+
|
5
|
+
def self.is(list)
|
6
|
+
begin
|
7
|
+
# Encode query parameter to handle special characters properly
|
8
|
+
url = "#{Ygoprodeck::Endpoint.is}cardinfo.php?fname=#{URI.encode_www_form_component(list)}"
|
9
|
+
uri = URI(url)
|
10
|
+
|
11
|
+
# Use timeout to prevent hanging on slow connections
|
12
|
+
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https', open_timeout: 10, read_timeout: 10) do |http|
|
13
|
+
http.get(uri.request_uri)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Check HTTP status code first
|
17
|
+
case response
|
18
|
+
when Net::HTTPSuccess
|
19
|
+
load = JSON.parse(response.body)
|
20
|
+
|
21
|
+
if load.has_key?('error')
|
22
|
+
return { 'error' => load['error'] }
|
23
|
+
elsif load['data'].nil? || load['data'].empty?
|
24
|
+
return { 'error' => 'No card matching your query was found in the database.' }
|
25
|
+
else
|
26
|
+
return load['data']
|
27
|
+
end
|
28
|
+
else
|
29
|
+
return { 'error' => "HTTP request failed with status code: #{response.code}" }
|
30
|
+
end
|
31
|
+
|
32
|
+
rescue URI::InvalidURIError => e
|
33
|
+
{ 'error' => 'Invalid URL or search term' }
|
34
|
+
rescue JSON::ParserError => e
|
35
|
+
{ 'error' => 'Failed to parse JSON response' }
|
36
|
+
rescue Net::OpenTimeout => e
|
37
|
+
{ 'error' => 'Connection timed out' }
|
38
|
+
rescue Net::ReadTimeout => e
|
39
|
+
{ 'error' => 'Request timed out' }
|
40
|
+
rescue SocketError => e
|
41
|
+
{ 'error' => 'Network connection error' }
|
42
|
+
rescue StandardError => e
|
43
|
+
{ 'error' => "An unexpected error occurred: #{e.message}" }
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -1,21 +1,22 @@
|
|
1
|
-
|
2
1
|
module Ygoprodeck
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
2
|
+
class Name
|
3
|
+
attr_reader :name
|
4
|
+
|
5
|
+
def self.is(name)
|
6
|
+
url = "#{Ygoprodeck::Endpoint.is}cardinfo.php?name=#{URI.encode_www_form_component(name)}"
|
7
|
+
uri = URI(url)
|
8
|
+
|
9
|
+
begin
|
10
|
+
response = Net::HTTP.get(uri)
|
11
|
+
load = JSON.parse(response)
|
12
|
+
|
13
|
+
return nil if load["data"].nil? || load["data"].empty?
|
14
|
+
|
15
|
+
load["data"][0]
|
21
16
|
|
17
|
+
rescue JSON::ParserError, SocketError, StandardError => e
|
18
|
+
nil
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,12 +1,20 @@
|
|
1
|
-
|
2
1
|
module Ygoprodeck
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
class Card
|
3
|
+
def self.random
|
4
|
+
url = "https://db.ygoprodeck.com/api/v7/cardinfo.php?num=1&offset=0&sort=random&cachebust"
|
5
|
+
uri = URI(url)
|
6
|
+
|
7
|
+
begin
|
8
|
+
response = Net::HTTP.get(uri)
|
9
|
+
load = JSON.parse(response)
|
10
|
+
|
11
|
+
return nil if load["data"].nil? || load["data"].empty?
|
12
|
+
|
13
|
+
load["data"][0]
|
14
|
+
|
15
|
+
rescue JSON::ParserError, SocketError, StandardError => e
|
16
|
+
nil
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
12
20
|
end
|
data/lib/ygoprodeck/version.rb
CHANGED
data/lib/ygoprodeck.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/ygoprodeck.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.required_ruby_version = '>= 2.0.0'
|
21
21
|
|
22
|
-
spec.add_development_dependency "bundler", "~> 2.
|
22
|
+
spec.add_development_dependency "bundler", "~> 2.5.23"
|
23
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
24
24
|
spec.add_development_dependency "rspec", "~> 3.0"
|
25
25
|
spec.add_development_dependency 'rspec-prof', '~> 0.0.7'
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ygoprodeck
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rokhimin Wahid
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-05-14 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: bundler
|
@@ -16,14 +15,14 @@ dependencies:
|
|
16
15
|
requirements:
|
17
16
|
- - "~>"
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
18
|
+
version: 2.5.23
|
20
19
|
type: :development
|
21
20
|
prerelease: false
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - "~>"
|
25
24
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
25
|
+
version: 2.5.23
|
27
26
|
- !ruby/object:Gem::Dependency
|
28
27
|
name: rake
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,15 +112,21 @@ files:
|
|
113
112
|
- Rakefile
|
114
113
|
- bin/console
|
115
114
|
- bin/setup
|
116
|
-
- examples/
|
117
|
-
- examples/
|
118
|
-
- examples/
|
115
|
+
- examples/archetype.rb
|
116
|
+
- examples/banlist.rb
|
117
|
+
- examples/check_db.rb
|
118
|
+
- examples/list.rb
|
119
|
+
- examples/random.rb
|
120
|
+
- examples/search.rb
|
121
|
+
- examples/search_fuzzy.rb
|
122
|
+
- examples/set.rb
|
119
123
|
- lib/ygoprodeck.rb
|
120
124
|
- lib/ygoprodeck/errors.rb
|
121
125
|
- lib/ygoprodeck/search/all_card.rb
|
122
126
|
- lib/ygoprodeck/search/archetype.rb
|
123
127
|
- lib/ygoprodeck/search/banlist.rb
|
124
128
|
- lib/ygoprodeck/search/card_sets.rb
|
129
|
+
- lib/ygoprodeck/search/check_db_version.rb
|
125
130
|
- lib/ygoprodeck/search/client/endpoint.rb
|
126
131
|
- lib/ygoprodeck/search/client/image_gapis.rb
|
127
132
|
- lib/ygoprodeck/search/fuzzy_name.rb
|
@@ -132,6 +137,7 @@ files:
|
|
132
137
|
- spec/archetype_spec.rb
|
133
138
|
- spec/banlist_spec.rb
|
134
139
|
- spec/cardsets_spec.rb
|
140
|
+
- spec/check_db_spec.rb
|
135
141
|
- spec/fuzzy_name_spec.rb
|
136
142
|
- spec/image_spec.rb
|
137
143
|
- spec/list_spec.rb
|
@@ -145,7 +151,6 @@ homepage: http://github.com/rokhimin/ygoprodeck
|
|
145
151
|
licenses:
|
146
152
|
- MIT
|
147
153
|
metadata: {}
|
148
|
-
post_install_message:
|
149
154
|
rdoc_options: []
|
150
155
|
require_paths:
|
151
156
|
- lib
|
@@ -160,8 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
165
|
- !ruby/object:Gem::Version
|
161
166
|
version: '0'
|
162
167
|
requirements: []
|
163
|
-
rubygems_version: 3.
|
164
|
-
signing_key:
|
168
|
+
rubygems_version: 3.6.3
|
165
169
|
specification_version: 4
|
166
170
|
summary: ygoprodeck API wrapper for search yugioh's card
|
167
171
|
test_files: []
|
data/examples/a.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'net/http'
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
endpoint = "https://db.ygoprodeck.com/api/v7/"
|
5
|
-
f_name = "dark magician"
|
6
|
-
url = "#{endpoint}cardinfo.php?name=#{f_name}"
|
7
|
-
|
8
|
-
uri = URI(url)
|
9
|
-
response = Net::HTTP.get(uri)
|
10
|
-
load = JSON.parse(response)
|
11
|
-
yugi = load['data'][0]
|
12
|
-
|
13
|
-
# => get specific information of dark magician
|
14
|
-
puts yugi['id']
|
15
|
-
puts yugi['name']
|
16
|
-
puts yugi['attribute']
|
17
|
-
puts yugi['type']
|
18
|
-
puts yugi['race']
|
19
|
-
puts yugi['level']
|
20
|
-
puts yugi['desc']
|
21
|
-
puts yugi['atk']
|
22
|
-
puts yugi['def']
|
data/examples/try.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'ygoprodeck'
|
2
|
-
|
3
|
-
# yugi is example, you free to change variable name
|
4
|
-
yugi = Ygoprodeck::Fname.is('dark magician') # example I wanna search 'dark magician' using fuzzy search
|
5
|
-
|
6
|
-
#puts yugi # => get all information of dark magician (name,id,level,attr,atk,def,etc)
|
7
|
-
|
8
|
-
puts '#' *10
|
9
|
-
|
10
|
-
# => get specific information of dark magician
|
11
|
-
puts yugi['data'][0]['id']
|
12
|
-
puts yugi['name']
|
13
|
-
puts yugi['attribute']
|
14
|
-
puts yugi['type']
|
15
|
-
puts yugi['race']
|
16
|
-
puts yugi['level']
|
17
|
-
puts yugi['desc']
|
18
|
-
puts yugi['atk']
|
19
|
-
puts yugi['def']
|
20
|
-
puts Ygoprodeck::Image.is(yugi['id']) # => use id from yugi['id'] to get dark magician image
|
21
|
-
puts Ygoprodeck::Image_small.is(yugi['id']) # => small version
|