Hyrule-Compendium 3.0.0 → 3.1.0
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/lib/hyrule_compendium.rb +36 -14
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c8ae2028d9a31146617fa11e95e440fcaf3c09deb62532cecc4285a1dabec7b
|
4
|
+
data.tar.gz: a3bfce310743fe6bd4879f1e4fdadf369c87459410b6767491bbc765c19b18ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49a53bd1239809009a0f74a09351b957b96498bf2c81d2ab62c4367e3d7a9a1e7bcb545450fc429c70a440d68c3e893d27666cdbe73064e40eb55fcb3ca5c9e0
|
7
|
+
data.tar.gz: 136f7deafe9023707740b4e371a29bf3efe4a7d5e9807dece28db3828a65486d1df7dbeaf02856205d62289f70f3f6ee633a18bf5d34d8310c254e386ff15bf7
|
data/lib/hyrule_compendium.rb
CHANGED
@@ -31,9 +31,9 @@ class NoCategoryError < StandardError
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
def make_req url
|
34
|
+
def make_req url, timeout
|
35
35
|
uri = URI url
|
36
|
-
res = Net::HTTP.start uri.host, uri.port do |http|
|
36
|
+
res = Net::HTTP.start uri.host, uri.port, read_timeout: timeout do |http|
|
37
37
|
req = Net::HTTP::Get.new uri
|
38
38
|
http.request req
|
39
39
|
end
|
@@ -47,32 +47,40 @@ class Hyrule_Compendium
|
|
47
47
|
# * `url`: The base URL of the API server
|
48
48
|
# - type: str
|
49
49
|
# - default: "http://botw-compendium.herokuapp.com/api/v2"
|
50
|
+
# * `default_timeout`: Default seconds to wait for response for all API calling functions until raising `Net::ReadTimeout`.
|
51
|
+
# - type: float, int
|
52
|
+
# - default: `nil` (no timeout)
|
53
|
+
# - notes: If a API calling function has a parameter `timeout`, it will overide this.
|
50
54
|
|
51
|
-
def initialize url
|
55
|
+
def initialize url: "http://botw-compendium.herokuapp.com/api/v2", default_timeout: nil
|
52
56
|
@base = url
|
57
|
+
@default_timeout = default_timeout
|
53
58
|
end
|
54
59
|
|
55
|
-
def get_entry entry
|
60
|
+
def get_entry entry, timeout=@default_timeout
|
56
61
|
# Gets an entry from the compendium.
|
57
62
|
#
|
58
63
|
# Parameters:
|
59
64
|
# * `entry`: The ID or name of the entry to be retrieved.
|
60
65
|
# - type: str, int
|
66
|
+
# * `timeout`: Seconds to wait for response until raising `Net::ReadTimeout`.
|
67
|
+
# - type: float, int
|
68
|
+
# - default: `@default_timeout`
|
61
69
|
#
|
62
70
|
# Returns: The entry's metadata.
|
63
|
-
# type: hash
|
71
|
+
# - type: hash
|
64
72
|
#
|
65
73
|
# Raises:
|
66
74
|
# * `NoEntryError` when the entry is not found.
|
67
75
|
|
68
|
-
res = make_req
|
76
|
+
res = make_req("#{@base}/entry/#{entry.to_s.gsub " ", "%20"}", timeout=timeout)
|
69
77
|
if res == {}
|
70
78
|
raise NoEntryError.new entry
|
71
79
|
end
|
72
80
|
return res
|
73
81
|
end
|
74
82
|
|
75
|
-
def get_category category
|
83
|
+
def get_category category, timeout=@default_timeout
|
76
84
|
# Gets all entries from a category in the compendium.
|
77
85
|
#
|
78
86
|
# Parameters:
|
@@ -81,6 +89,12 @@ class Hyrule_Compendium
|
|
81
89
|
# - notes:
|
82
90
|
# * must be "creatures", "equipment", "materials", "monsters", or "treasure"
|
83
91
|
# * the category "creatures" has two sub-categories, as keys: "food" and "non_food"
|
92
|
+
# * `timeout`: Seconds to wait for response until raising `Net::ReadTimeout`.
|
93
|
+
# - type: float, int
|
94
|
+
# - default: `@default_timeout`
|
95
|
+
#
|
96
|
+
# Returns: All entries in the category.
|
97
|
+
# - type: array, hash (for creatures)
|
84
98
|
#
|
85
99
|
# Raises:
|
86
100
|
# * `NoCategoryError` when the category is not found.
|
@@ -88,19 +102,24 @@ class Hyrule_Compendium
|
|
88
102
|
if !(["creatures", "equipment", "materials", "monsters", "treasure"].include? category)
|
89
103
|
raise NoCategoryError.new category
|
90
104
|
end
|
91
|
-
return make_req "#{@base}/category/#{category}"
|
105
|
+
return make_req "#{@base}/category/#{category}", timeout=timeout
|
92
106
|
end
|
93
107
|
|
94
|
-
def get_all
|
108
|
+
def get_all timeout=@default_timeout
|
95
109
|
# Gets all entries from the compendium.
|
96
|
-
#
|
110
|
+
#
|
111
|
+
# Parameters:
|
112
|
+
# * `timeout`: Seconds to wait for response until raising `Net::ReadTimeout`.
|
113
|
+
# - type: float, int
|
114
|
+
# - default: `@default_timeout`
|
115
|
+
#
|
97
116
|
# Returns: all items in the compendium with their metadata, nested in categories.
|
98
|
-
# type: hash
|
117
|
+
# - type: hash
|
99
118
|
|
100
|
-
return make_req @base
|
119
|
+
return make_req @base, timeout
|
101
120
|
end
|
102
121
|
|
103
|
-
def download_entry_image entry, output_file
|
122
|
+
def download_entry_image entry, output_file, timeout=@default_timeout
|
104
123
|
# Downloads the image of a compendium entry.
|
105
124
|
#
|
106
125
|
# Parameters:
|
@@ -108,8 +127,11 @@ class Hyrule_Compendium
|
|
108
127
|
# - type: str, int
|
109
128
|
# * `output_file`: The output file's path.
|
110
129
|
# - type: str
|
130
|
+
# * `timeout`: Seconds to wait for server response until raising `Net::ReadTimeout`.
|
131
|
+
# - type: float, int
|
132
|
+
# - default: `@default_timeout`
|
111
133
|
|
112
|
-
open (get_entry entry)["image"] do |image|
|
134
|
+
open (get_entry entry, timeout)["image"] do |image|
|
113
135
|
File.open output_file, "wb" do |file|
|
114
136
|
file.write image.read
|
115
137
|
end
|
metadata
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Hyrule-Compendium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aarav Borthakur
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2021-01-02 00:00:00.000000000 Z
|
@@ -21,7 +21,7 @@ homepage: https://github.com/Hyrule-Compendium-API/Hyrule-Compendium-ruby-client
|
|
21
21
|
licenses:
|
22
22
|
- MIT
|
23
23
|
metadata: {}
|
24
|
-
post_install_message:
|
24
|
+
post_install_message:
|
25
25
|
rdoc_options: []
|
26
26
|
require_paths:
|
27
27
|
- lib
|
@@ -36,8 +36,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: '0'
|
38
38
|
requirements: []
|
39
|
-
rubygems_version: 3.0.
|
40
|
-
signing_key:
|
39
|
+
rubygems_version: 3.0.3
|
40
|
+
signing_key:
|
41
41
|
specification_version: 4
|
42
42
|
summary: Hyrule Compendium API
|
43
43
|
test_files: []
|