metal_archives 0.7.1 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|