metal_archives 0.8.0 → 1.0.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/.gitignore +59 -7
- data/.rspec +1 -0
- data/.rubocop.yml +14 -0
- data/.travis.yml +11 -0
- data/Gemfile +2 -0
- data/{LICENSE → LICENSE.md} +0 -0
- data/README.md +77 -9
- data/Rakefile +5 -3
- data/lib/metal_archives.rb +8 -0
- data/lib/metal_archives/configuration.rb +28 -7
- data/lib/metal_archives/error.rb +37 -30
- data/lib/metal_archives/http_client.rb +21 -42
- data/lib/metal_archives/middleware/headers.rb +38 -0
- data/lib/metal_archives/middleware/rewrite_endpoint.rb +38 -0
- data/lib/metal_archives/models/artist.rb +51 -65
- data/lib/metal_archives/models/band.rb +41 -39
- data/lib/metal_archives/models/base_model.rb +88 -59
- data/lib/metal_archives/models/label.rb +7 -6
- data/lib/metal_archives/parsers/artist.rb +110 -99
- data/lib/metal_archives/parsers/band.rb +168 -156
- data/lib/metal_archives/parsers/label.rb +54 -52
- data/lib/metal_archives/parsers/parser.rb +73 -71
- data/lib/metal_archives/utils/collection.rb +7 -1
- data/lib/metal_archives/utils/lru_cache.rb +11 -4
- data/lib/metal_archives/utils/nil_date.rb +54 -0
- data/lib/metal_archives/utils/range.rb +16 -8
- data/lib/metal_archives/version.rb +3 -1
- data/metal_archives.gemspec +21 -11
- data/spec/configuration_spec.rb +101 -0
- data/spec/factories/artist_factory.rb +37 -0
- data/spec/factories/band_factory.rb +60 -0
- data/spec/factories/nil_date_factory.rb +9 -0
- data/spec/factories/range_factory.rb +8 -0
- data/spec/models/artist_spec.rb +142 -0
- data/spec/models/band_spec.rb +179 -0
- data/spec/models/base_model_spec.rb +217 -0
- data/spec/parser_spec.rb +19 -0
- data/spec/spec_helper.rb +111 -0
- data/spec/support/factory_girl.rb +5 -0
- data/spec/support/metal_archives.rb +26 -0
- data/spec/utils/collection_spec.rb +72 -0
- data/spec/utils/lru_cache_spec.rb +53 -0
- data/spec/utils/nil_date_spec.rb +98 -0
- data/spec/utils/range_spec.rb +62 -0
- metadata +142 -57
- data/test/base_model_test.rb +0 -111
- data/test/configuration_test.rb +0 -57
- data/test/parser_test.rb +0 -37
- data/test/property/artist_property_test.rb +0 -43
- data/test/property/band_property_test.rb +0 -94
- data/test/query/artist_query_test.rb +0 -109
- data/test/query/band_query_test.rb +0 -152
- data/test/test_helper.rb +0 -25
- data/test/utils/collection_test.rb +0 -51
- data/test/utils/lru_cache_test.rb +0 -22
- data/test/utils/range_test.rb +0 -42
@@ -1,51 +0,0 @@
|
|
1
|
-
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
-
require 'test/unit'
|
3
|
-
|
4
|
-
require 'metal_archives/utils/collection'
|
5
|
-
|
6
|
-
class CollectionTest < Test::Unit::TestCase
|
7
|
-
def test_each
|
8
|
-
l = lambda do
|
9
|
-
@i ||= 0
|
10
|
-
|
11
|
-
return [] if @i >= 100
|
12
|
-
items = (@i .. (@i + 9)).to_a
|
13
|
-
@i += 10
|
14
|
-
|
15
|
-
items
|
16
|
-
end
|
17
|
-
|
18
|
-
c = MetalArchives::Collection.new l
|
19
|
-
|
20
|
-
i = 0
|
21
|
-
c.each do |item|
|
22
|
-
assert_equal i, item
|
23
|
-
i += 1
|
24
|
-
end
|
25
|
-
|
26
|
-
assert_equal 100, i
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_return
|
30
|
-
l = lambda do
|
31
|
-
@i ||= 0
|
32
|
-
|
33
|
-
raise StandardError if @i >= 100
|
34
|
-
items = (@i .. (@i + 9)).to_a
|
35
|
-
@i += 10
|
36
|
-
|
37
|
-
items
|
38
|
-
end
|
39
|
-
|
40
|
-
c = MetalArchives::Collection.new l
|
41
|
-
|
42
|
-
i = 0
|
43
|
-
c.each do |item|
|
44
|
-
break if i == 99
|
45
|
-
assert_equal i, item
|
46
|
-
i += 1
|
47
|
-
end
|
48
|
-
|
49
|
-
assert_equal 99, i
|
50
|
-
end
|
51
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
|
3
|
-
class LruCacheTest < Test::Unit::TestCase
|
4
|
-
def test_lru
|
5
|
-
cache = MetalArchives::LRUCache.new 3
|
6
|
-
|
7
|
-
cache[:a] = 'one'
|
8
|
-
cache[:b] = 'two'
|
9
|
-
cache[:c] = 'three'
|
10
|
-
|
11
|
-
assert_equal 3, cache.instance_variable_get('@size')
|
12
|
-
|
13
|
-
cache[:d] = 'four'
|
14
|
-
|
15
|
-
assert_equal 3, cache.instance_variable_get('@size')
|
16
|
-
|
17
|
-
assert_equal 'two', cache[:b]
|
18
|
-
assert_equal 'three', cache[:c]
|
19
|
-
assert_equal 'four', cache[:d]
|
20
|
-
assert_equal nil, cache[:a]
|
21
|
-
end
|
22
|
-
end
|
data/test/utils/range_test.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
-
require 'test/unit'
|
3
|
-
|
4
|
-
require 'metal_archives/utils/range'
|
5
|
-
|
6
|
-
class RangeTest < Test::Unit::TestCase
|
7
|
-
def test_basic_attributes
|
8
|
-
range = MetalArchives::Range.new 3, 5
|
9
|
-
|
10
|
-
assert_respond_to range, :begin
|
11
|
-
assert_respond_to range, :end
|
12
|
-
|
13
|
-
assert_equal 3, range.begin
|
14
|
-
assert_equal 5, range.end
|
15
|
-
|
16
|
-
assert range.begin?
|
17
|
-
assert range.end?
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_nil
|
21
|
-
range = MetalArchives::Range.new nil, 5
|
22
|
-
|
23
|
-
assert !range.begin?
|
24
|
-
assert range.end?
|
25
|
-
|
26
|
-
assert_equal nil, range.begin
|
27
|
-
assert_equal 5, range.end
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_comparable
|
31
|
-
range1 = MetalArchives::Range.new(1, 3)
|
32
|
-
range2 = MetalArchives::Range.new(1, 3)
|
33
|
-
range3 = MetalArchives::Range.new(nil, 3)
|
34
|
-
range4 = MetalArchives::Range.new(nil, 3)
|
35
|
-
range5 = MetalArchives::Range.new(1, nil)
|
36
|
-
range6 = MetalArchives::Range.new(1, nil)
|
37
|
-
|
38
|
-
assert_equal range1, range2
|
39
|
-
assert_equal range3, range4
|
40
|
-
assert_equal range5, range6
|
41
|
-
end
|
42
|
-
end
|