metal_archives 0.7.1 → 0.8.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/metal_archives.rb +15 -15
- data/lib/metal_archives/configuration.rb +6 -0
- data/lib/metal_archives/models/artist.rb +7 -7
- data/lib/metal_archives/models/band.rb +6 -6
- data/lib/metal_archives/parsers/label.rb +1 -1
- data/lib/metal_archives/version.rb +1 -1
- data/metal_archives.gemspec +7 -7
- metadata +14 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e19af43a38aa2f5242fee7553c145f673811af35
|
4
|
+
data.tar.gz: 05f2f5ad5b31fa0b8fa095f9866f6b4d148ce4c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73946de65fb4d67fc98591a897bd9045db3c483e39084656ec4b4e39fa49b247ccd892aeca6f7565969c3522c8772ac0ae6d577ed1d6c6a7d7797fd960dabf89
|
7
|
+
data.tar.gz: 1f2bba663937069139bbd0d2a0093e9e95b7e547f1a1b7a4e0f3e4e3a40790a9f4780cecaf5804677c02fc1df44f2c3c74b938930a97c6c6c5cd29ebcd1bcc71
|
data/lib/metal_archives.rb
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require 'metal_archives/version'
|
2
|
+
require 'metal_archives/configuration'
|
3
|
+
require 'metal_archives/error'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
require 'metal_archives/utils/range'
|
6
|
+
require 'metal_archives/utils/collection'
|
7
|
+
require 'metal_archives/utils/lru_cache'
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
require 'metal_archives/models/base_model'
|
10
|
+
require 'metal_archives/models/label'
|
11
|
+
require 'metal_archives/models/artist'
|
12
|
+
require 'metal_archives/models/band'
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
require 'metal_archives/parsers/parser'
|
15
|
+
require 'metal_archives/parsers/label'
|
16
|
+
require 'metal_archives/parsers/artist'
|
17
|
+
require 'metal_archives/parsers/band'
|
18
18
|
|
19
|
-
|
19
|
+
require 'metal_archives/http_client'
|
20
20
|
|
21
21
|
##
|
22
22
|
# Metal Archives Ruby API
|
@@ -45,6 +45,11 @@ module MetalArchives
|
|
45
45
|
#
|
46
46
|
attr_accessor :app_contact
|
47
47
|
|
48
|
+
##
|
49
|
+
# Metal Archives endpoint (defaults to http://www.metal-archives.com/)
|
50
|
+
#
|
51
|
+
attr_accessor :endpoint
|
52
|
+
|
48
53
|
##
|
49
54
|
# Request throttling rate (in seconds per request per path)
|
50
55
|
#
|
@@ -69,6 +74,7 @@ module MetalArchives
|
|
69
74
|
# Default configuration values
|
70
75
|
#
|
71
76
|
def initialize
|
77
|
+
@endpoint = 'http://www.metal-archives.com/'
|
72
78
|
@throttle_rate = 1
|
73
79
|
@throttle_wait = 3
|
74
80
|
@logger = Logger.new STDOUT
|
@@ -155,25 +155,25 @@ module MetalArchives
|
|
155
155
|
#
|
156
156
|
def assemble # :nodoc:
|
157
157
|
## Base attributes
|
158
|
-
url = "
|
158
|
+
url = "#{MetalArchives.config.endpoint}artist/view/id/#{id}"
|
159
159
|
response = HTTPClient.get url
|
160
160
|
|
161
161
|
properties = Parsers::Artist.parse_html response.body
|
162
162
|
|
163
163
|
## Biography
|
164
|
-
url = "
|
164
|
+
url = "#{MetalArchives.config.endpoint}artist/read-more/id/#{id}/field/biography"
|
165
165
|
response = HTTPClient.get url
|
166
166
|
|
167
167
|
properties[:biography] = response.body
|
168
168
|
|
169
169
|
## Trivia
|
170
|
-
url = "
|
170
|
+
url = "#{MetalArchives.config.endpoint}artist/read-more/id/#{id}/field/trivia"
|
171
171
|
response = HTTPClient.get url
|
172
172
|
|
173
173
|
properties[:trivia] = response.body
|
174
174
|
|
175
175
|
## Related links
|
176
|
-
url = "
|
176
|
+
url = "#{MetalArchives.config.endpoint}link/ajax-list/type/person/id/#{id}"
|
177
177
|
response = HTTPClient.get url
|
178
178
|
|
179
179
|
properties[:links] = Parsers::Artist.parse_links_html response.body
|
@@ -233,7 +233,7 @@ module MetalArchives
|
|
233
233
|
def find_by(query)
|
234
234
|
raise MetalArchives::Errors::ArgumentError unless query.include? :name
|
235
235
|
|
236
|
-
url =
|
236
|
+
url = "#{MetalArchives.config.endpoint}search/ajax-artist-search/"
|
237
237
|
params = Parsers::Artist.map_params query
|
238
238
|
|
239
239
|
response = HTTPClient.get url, params
|
@@ -285,7 +285,7 @@ module MetalArchives
|
|
285
285
|
def search(name)
|
286
286
|
raise MetalArchives::Errors::ArgumentError unless name.is_a? String
|
287
287
|
|
288
|
-
url =
|
288
|
+
url = "#{MetalArchives.config.endpoint}search/ajax-artist-search/"
|
289
289
|
query = { :name => name }
|
290
290
|
|
291
291
|
params = Parsers::Artist.map_params query
|
@@ -328,7 +328,7 @@ module MetalArchives
|
|
328
328
|
# - rdoc-ref:MetalArchives::Errors::ParserError when parsing failed. Please report this error.
|
329
329
|
#
|
330
330
|
def all
|
331
|
-
url =
|
331
|
+
url = "#{MetalArchives.config.endpoint}search/ajax-artist-search/"
|
332
332
|
|
333
333
|
l = lambda do
|
334
334
|
@start ||= 0
|
@@ -212,25 +212,25 @@ module MetalArchives
|
|
212
212
|
#
|
213
213
|
def assemble # :nodoc:
|
214
214
|
## Base attributes
|
215
|
-
url = "
|
215
|
+
url = "#{MetalArchives.config.endpoint}band/view/id/#{id}"
|
216
216
|
response = HTTPClient.get url
|
217
217
|
|
218
218
|
properties = Parsers::Band.parse_html response.body
|
219
219
|
|
220
220
|
## Comment
|
221
|
-
url = "
|
221
|
+
url = "#{MetalArchives.config.endpoint}band/read-more/id/#{id}"
|
222
222
|
response = HTTPClient.get url
|
223
223
|
|
224
224
|
properties[:comment] = response.body
|
225
225
|
|
226
226
|
## Similar artists
|
227
|
-
url = "
|
227
|
+
url = "#{MetalArchives.config.endpoint}band/ajax-recommendations/id/#{id}"
|
228
228
|
response = HTTPClient.get url
|
229
229
|
|
230
230
|
properties[:similar] = Parsers::Band.parse_similar_bands_html response.body
|
231
231
|
|
232
232
|
## Related links
|
233
|
-
url = "
|
233
|
+
url = "#{MetalArchives.config.endpoint}link/ajax-list/type/band/id/#{id}"
|
234
234
|
response = HTTPClient.get url
|
235
235
|
|
236
236
|
properties[:links] = Parsers::Band.parse_related_links_html response.body
|
@@ -299,7 +299,7 @@ module MetalArchives
|
|
299
299
|
# - +:independent+: boolean
|
300
300
|
#
|
301
301
|
def find_by(query)
|
302
|
-
url =
|
302
|
+
url = "#{MetalArchives.config.endpoint}search/ajax-advanced/searching/bands"
|
303
303
|
params = Parsers::Band.map_params query
|
304
304
|
|
305
305
|
response = HTTPClient.get url, params
|
@@ -371,7 +371,7 @@ module MetalArchives
|
|
371
371
|
# - +:independent+: boolean
|
372
372
|
#
|
373
373
|
def search_by(query)
|
374
|
-
url =
|
374
|
+
url = "#{MetalArchives.config.endpoint}search/ajax-advanced/searching/bands"
|
375
375
|
|
376
376
|
params = Parsers::Band.map_params query
|
377
377
|
|
@@ -9,7 +9,7 @@ module Parsers
|
|
9
9
|
class Label # :nodoc:
|
10
10
|
class << self
|
11
11
|
def find_endpoint(params)
|
12
|
-
"
|
12
|
+
"#{MetalArchives.config.endpoint}labels/#{params[:name]}/#{params[:id]}"
|
13
13
|
end
|
14
14
|
|
15
15
|
def parse(response)
|
data/metal_archives.gemspec
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
require File.expand_path('../lib/metal_archives/version', __FILE__)
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
|
-
gem.authors = [
|
5
|
-
gem.email = [
|
4
|
+
gem.authors = ['Florian Dejonckheere']
|
5
|
+
gem.email = ['florian@floriandejonckheere.be']
|
6
6
|
gem.summary = %q{Metal Archives Ruby API}
|
7
|
-
gem.homepage =
|
7
|
+
gem.homepage = 'http://github.com/floriandejonckheere/metal_archives'
|
8
8
|
|
9
9
|
gem.files = %x{git ls-files}.split($\)
|
10
10
|
gem.executables = []
|
11
11
|
gem.test_files = gem.files.grep(%r{^spec/})
|
12
|
-
gem.name =
|
12
|
+
gem.name = 'metal_archives'
|
13
13
|
gem.require_paths = %w[lib]
|
14
14
|
gem.version = MetalArchives::VERSION
|
15
|
-
gem.license =
|
15
|
+
gem.license = 'MIT'
|
16
16
|
|
17
17
|
gem.add_development_dependency 'byebug', '~> 9.0'
|
18
18
|
gem.add_development_dependency 'rake', '~> 11.0'
|
@@ -21,6 +21,6 @@ Gem::Specification.new do |gem|
|
|
21
21
|
|
22
22
|
gem.add_dependency 'faraday', '~> 0.9'
|
23
23
|
gem.add_dependency 'faraday_throttler', '~> 0.0.3'
|
24
|
-
gem.add_dependency 'nokogiri', '~> 1.6.8'
|
25
|
-
gem.add_dependency 'countries', '~> 1.2.5'
|
24
|
+
gem.add_dependency 'nokogiri', '~> 1.6', '>= 1.6.8'
|
25
|
+
gem.add_dependency 'countries', '~> 1.2', '>= 1.2.5'
|
26
26
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metal_archives
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Dejonckheere
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|
@@ -99,6 +99,9 @@ dependencies:
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.6'
|
104
|
+
- - ">="
|
102
105
|
- !ruby/object:Gem::Version
|
103
106
|
version: 1.6.8
|
104
107
|
type: :runtime
|
@@ -106,6 +109,9 @@ dependencies:
|
|
106
109
|
version_requirements: !ruby/object:Gem::Requirement
|
107
110
|
requirements:
|
108
111
|
- - "~>"
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '1.6'
|
114
|
+
- - ">="
|
109
115
|
- !ruby/object:Gem::Version
|
110
116
|
version: 1.6.8
|
111
117
|
- !ruby/object:Gem::Dependency
|
@@ -113,6 +119,9 @@ dependencies:
|
|
113
119
|
requirement: !ruby/object:Gem::Requirement
|
114
120
|
requirements:
|
115
121
|
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '1.2'
|
124
|
+
- - ">="
|
116
125
|
- !ruby/object:Gem::Version
|
117
126
|
version: 1.2.5
|
118
127
|
type: :runtime
|
@@ -120,6 +129,9 @@ dependencies:
|
|
120
129
|
version_requirements: !ruby/object:Gem::Requirement
|
121
130
|
requirements:
|
122
131
|
- - "~>"
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '1.2'
|
134
|
+
- - ">="
|
123
135
|
- !ruby/object:Gem::Version
|
124
136
|
version: 1.2.5
|
125
137
|
description:
|