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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8e3cdbaca08453f89fdf008362cd405344099c11
4
- data.tar.gz: ed9f37be9ee34d42797fe5f9cec5e8c9e0c93272
3
+ metadata.gz: e19af43a38aa2f5242fee7553c145f673811af35
4
+ data.tar.gz: 05f2f5ad5b31fa0b8fa095f9866f6b4d148ce4c3
5
5
  SHA512:
6
- metadata.gz: 6cf8ff4eb55da462c100bdd1fc1812c51bdccfb3a37967e24f40fdab95dd3f4506a82ae22a67bec2d3b70801c8f93c4d38f9f0ca2a5ab8bebd6b380b3817ca20
7
- data.tar.gz: 5f651187da8e27842ffef53c2d1d11be0a343997d27753bf9883220b91dc53a90ac1db6046aa8bbf86206b1c4caf257211f2692894dfa8f0e33395d4896fb7a0
6
+ metadata.gz: 73946de65fb4d67fc98591a897bd9045db3c483e39084656ec4b4e39fa49b247ccd892aeca6f7565969c3522c8772ac0ae6d577ed1d6c6a7d7797fd960dabf89
7
+ data.tar.gz: 1f2bba663937069139bbd0d2a0093e9e95b7e547f1a1b7a4e0f3e4e3a40790a9f4780cecaf5804677c02fc1df44f2c3c74b938930a97c6c6c5cd29ebcd1bcc71
@@ -1,22 +1,22 @@
1
- require_relative 'metal_archives/version'
2
- require_relative 'metal_archives/configuration'
3
- require_relative 'metal_archives/error'
1
+ require 'metal_archives/version'
2
+ require 'metal_archives/configuration'
3
+ require 'metal_archives/error'
4
4
 
5
- require_relative 'metal_archives/utils/range'
6
- require_relative 'metal_archives/utils/collection'
7
- require_relative 'metal_archives/utils/lru_cache'
5
+ require 'metal_archives/utils/range'
6
+ require 'metal_archives/utils/collection'
7
+ require 'metal_archives/utils/lru_cache'
8
8
 
9
- require_relative 'metal_archives/models/base_model'
10
- require_relative 'metal_archives/models/label'
11
- require_relative 'metal_archives/models/artist'
12
- require_relative 'metal_archives/models/band'
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
- require_relative 'metal_archives/parsers/parser'
15
- require_relative 'metal_archives/parsers/label'
16
- require_relative 'metal_archives/parsers/artist'
17
- require_relative 'metal_archives/parsers/band'
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
- require_relative 'metal_archives/http_client'
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 = "http://www.metal-archives.com/artist/view/id/#{id}"
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 = "http://www.metal-archives.com/artist/read-more/id/#{id}/field/biography"
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 = "http://www.metal-archives.com/artist/read-more/id/#{id}/field/trivia"
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 = "http://www.metal-archives.com/link/ajax-list/type/person/id/#{id}"
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 = 'http://www.metal-archives.com/search/ajax-artist-search/'
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 = 'http://www.metal-archives.com/search/ajax-artist-search/'
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 = 'http://www.metal-archives.com/search/ajax-artist-search/'
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 = "http://www.metal-archives.com/band/view/id/#{id}"
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 = "http://www.metal-archives.com/band/read-more/id/#{id}"
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 = "http://www.metal-archives.com/band/ajax-recommendations/id/#{id}"
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 = "http://www.metal-archives.com/link/ajax-list/type/band/id/#{id}"
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 = 'http://www.metal-archives.com/search/ajax-advanced/searching/bands/'
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 = 'http://www.metal-archives.com/search/ajax-advanced/searching/bands/'
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
- "http://www.metal-archives.com/labels/#{params[:name]}/#{params[:id]}"
12
+ "#{MetalArchives.config.endpoint}labels/#{params[:name]}/#{params[:id]}"
13
13
  end
14
14
 
15
15
  def parse(response)
@@ -2,5 +2,5 @@ module MetalArchives
2
2
  ##
3
3
  # MetalArchives API version
4
4
  #
5
- VERSION = '0.7.1'
5
+ VERSION = '0.8.0'
6
6
  end
@@ -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 = ["Florian Dejonckheere"]
5
- gem.email = ["florian@floriandejonckheere.be"]
4
+ gem.authors = ['Florian Dejonckheere']
5
+ gem.email = ['florian@floriandejonckheere.be']
6
6
  gem.summary = %q{Metal Archives Ruby API}
7
- gem.homepage = "http://github.com/floriandejonckheere/metal_archives"
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 = "metal_archives"
12
+ gem.name = 'metal_archives'
13
13
  gem.require_paths = %w[lib]
14
14
  gem.version = MetalArchives::VERSION
15
- gem.license = "MIT"
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.7.1
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-03-16 00:00:00.000000000 Z
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: