metal_archives 2.2.0 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ci.yml +46 -0
  3. data/.github/workflows/release.yml +69 -0
  4. data/.gitignore +6 -6
  5. data/.overcommit.yml +35 -0
  6. data/.rspec +1 -0
  7. data/.rubocop.yml +54 -8
  8. data/.rubocop_todo.yml +92 -0
  9. data/CHANGELOG.md +22 -0
  10. data/Gemfile +1 -1
  11. data/LICENSE.md +1 -1
  12. data/README.md +35 -64
  13. data/Rakefile +8 -7
  14. data/bin/console +41 -0
  15. data/bin/setup +8 -0
  16. data/docker-compose.yml +14 -0
  17. data/lib/metal_archives.rb +48 -29
  18. data/lib/metal_archives/{utils/collection.rb → collection.rb} +0 -0
  19. data/lib/metal_archives/configuration.rb +9 -33
  20. data/lib/metal_archives/{error.rb → errors.rb} +0 -0
  21. data/lib/metal_archives/http_client.rb +13 -8
  22. data/lib/metal_archives/{utils/lru_cache.rb → lru_cache.rb} +0 -0
  23. data/lib/metal_archives/middleware/cache_check.rb +2 -4
  24. data/lib/metal_archives/middleware/encoding.rb +2 -2
  25. data/lib/metal_archives/middleware/headers.rb +5 -5
  26. data/lib/metal_archives/middleware/rewrite_endpoint.rb +2 -2
  27. data/lib/metal_archives/models/artist.rb +40 -24
  28. data/lib/metal_archives/models/band.rb +47 -29
  29. data/lib/metal_archives/models/base_model.rb +64 -61
  30. data/lib/metal_archives/models/label.rb +11 -11
  31. data/lib/metal_archives/models/release.rb +17 -15
  32. data/lib/metal_archives/{utils/nil_date.rb → nil_date.rb} +10 -18
  33. data/lib/metal_archives/parsers/artist.rb +62 -31
  34. data/lib/metal_archives/parsers/band.rb +97 -74
  35. data/lib/metal_archives/parsers/label.rb +21 -21
  36. data/lib/metal_archives/parsers/parser.rb +23 -8
  37. data/lib/metal_archives/parsers/release.rb +77 -72
  38. data/lib/metal_archives/{utils/range.rb → range.rb} +5 -2
  39. data/lib/metal_archives/version.rb +12 -1
  40. data/metal_archives.env.example +7 -0
  41. data/metal_archives.gemspec +40 -28
  42. data/nginx/default.conf +60 -0
  43. metadata +126 -65
  44. data/.travis.yml +0 -12
  45. data/spec/configuration_spec.rb +0 -96
  46. data/spec/factories/artist_factory.rb +0 -37
  47. data/spec/factories/band_factory.rb +0 -60
  48. data/spec/factories/nil_date_factory.rb +0 -9
  49. data/spec/factories/range_factory.rb +0 -8
  50. data/spec/models/artist_spec.rb +0 -138
  51. data/spec/models/band_spec.rb +0 -164
  52. data/spec/models/base_model_spec.rb +0 -219
  53. data/spec/models/release_spec.rb +0 -133
  54. data/spec/parser_spec.rb +0 -19
  55. data/spec/spec_helper.rb +0 -111
  56. data/spec/support/factory_girl.rb +0 -5
  57. data/spec/support/metal_archives.rb +0 -33
  58. data/spec/utils/collection_spec.rb +0 -72
  59. data/spec/utils/lru_cache_spec.rb +0 -53
  60. data/spec/utils/nil_date_spec.rb +0 -156
  61. data/spec/utils/range_spec.rb +0 -62
@@ -1,62 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe MetalArchives::Range do
4
- let(:range) { build :range }
5
- let(:begin_range) { build :range, :end => nil }
6
- let(:end_range) { build :range, :begin => nil }
7
-
8
- it 'has the correct properties' do
9
- expect(range).to respond_to :begin
10
- expect(range).to respond_to :begin=
11
- expect(range).to respond_to :begin?
12
-
13
- expect(range).to respond_to :end
14
- expect(range).to respond_to :end=
15
- expect(range).to respond_to :end?
16
- end
17
-
18
- it 'returns the correct values' do
19
- expect(range.begin).not_to be_nil
20
- expect(range.begin).to be_a Date
21
- expect(range.begin?).to be true
22
-
23
- expect(range.end).not_to be_nil
24
- expect(range.end).to be_a Date
25
- expect(range.end?).to be true
26
- end
27
-
28
- it 'does not require an end date' do
29
- expect(begin_range.end).to be_nil
30
- expect(begin_range.end?).to be false
31
- end
32
-
33
- it 'does not require a begin date' do
34
- expect(end_range.begin).to be_nil
35
- expect(end_range.begin?).to be false
36
- end
37
-
38
- it 'implements comparable' do
39
- range1 = described_class.new 1, 3
40
- range1a = described_class.new 1, 3
41
- range2 = described_class.new nil, 3
42
- range2a = described_class.new nil, 3
43
- range3 = described_class.new 1, nil
44
- range3a = described_class.new 1, nil
45
-
46
- range4 = described_class.new 1, 4
47
- range5 = described_class.new 0, 3
48
-
49
- expect(range1 <=> range1a).to eq 0
50
- expect(range2 <=> range2a).to eq 0
51
- expect(range3 <=> range3a).to eq 0
52
-
53
- expect(range1 <=> range2).to be_nil
54
- expect(range2 <=> range3).to be_nil
55
- expect(range3 <=> range1).to be_nil
56
-
57
- expect(range1 <=> range4).to eq -1
58
- expect(range1 <=> range5).to eq -1
59
- expect(range4 <=> range1).to eq 1
60
- expect(range5 <=> range1).to eq 1
61
- end
62
- end