lyrics_finder 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1fd7f1561cd6aab7ec434dce2d19a19793e9d6b5
4
- data.tar.gz: b9c349442db37814b8e827089eb1a8e842852ec3
3
+ metadata.gz: c6d52b8b51b05a06518d6c99e7dcd8dafcdcae02
4
+ data.tar.gz: bbb99da5b68ea10299ffe998918fa8a29e57ab5f
5
5
  SHA512:
6
- metadata.gz: 01636770bfde8f4d80a00520dde2bd392f0936f4a12c86ff40c670031199b4904a5b5b74be3a7e8df581f0e9c35fb3a354a21965d88618ad8ea577d0b30bf895
7
- data.tar.gz: e07ebd64b84a8c6fa0692b350960d3ebd8d1dff124c64af08c58c3028c6c9ef13750be5cbd95fcbb6a9dd895fe95a6f4f136703a31fc131d9722f25f661aaf16
6
+ metadata.gz: 7a40784e26f911e006940c8ef9b41a77fb6afcc58e2c3863983f42e239d89b279c992ed437c0f6c73c0acddc2e1f1a4087e50c49f18879f299b971179d7c9fa0
7
+ data.tar.gz: 4f1e1d6dc038dbe68a9a5d11d51daecc0610588e6b56daa399dcb6b2d522afdd3f33704eae99a38cd30612f45d02b5e727e4811b7c7d6c1c6682ed80622a61cf
data/lib/lyrics_finder.rb CHANGED
@@ -5,17 +5,13 @@ module LyricsFinder
5
5
 
6
6
  Contract String, String => Or[Array, nil]
7
7
  def self.search(author, title)
8
- song = Song.new(author, title)
9
- song_lyric = catch(:song_lyric) {
10
- Providers.list.each do |provider|
11
- klass = Providers.build_klass(provider)
12
- url = klass.format_url(song)
13
- data = perform_request(url)
14
- result = klass.extract_lyric(data) if data
15
- throw :song_lyric, result unless result.nil?
16
- end
17
- throw :song_lyric, nil # because song cannot be found.
18
- }
8
+ Providers.list.each do |provider|
9
+ url = Providers.provider_url_for_song(provider, Song.new(author, title))
10
+ data = perform_request(url)
11
+ result = Providers.extract_lyric_from_data(data) if data
12
+ return result unless result.nil?
13
+ end
14
+ return nil # because song cannot be found.
19
15
  end
20
16
 
21
17
  def self.perform_request(url)
@@ -2,19 +2,18 @@ module LyricsFinder::Providers
2
2
  include Contracts
3
3
 
4
4
  def self.list
5
- [:lyrics_wikia, :lyrics_mania, :song_lyrics, :azlyrics]
5
+ [LyricsWikia, LyricsMania, SongLyrics, Azlyrics]
6
6
  end
7
7
 
8
- Contract Symbol => Module
9
- def self.build_klass(provider)
10
- klass = "LyricsFinder::Providers::" + provider.to_s.camelize
11
- klass.constantize
8
+ def self.provider_url_for_song(provider, song)
9
+ @current_provider = provider.new(song)
10
+ @current_provider.format_url
12
11
  end
13
12
 
14
- Contract String, Tempfile => Or[Array, nil]
15
- def self.extract_lyrics_at_css_from_data(css_element, data)
13
+ Contract Tempfile => Or[Array, nil]
14
+ def self.extract_lyric_from_data(data)
16
15
  html = Nokogiri::HTML(data)
17
- lyrics_container = html.css(css_element).first
16
+ lyrics_container = html.css(@current_provider.css_element).first
18
17
  unless lyrics_container.nil?
19
18
  elements = lyrics_container.children.to_a
20
19
  phrases = elements.select { |el| el.text? && el.text != "\n" && !el.blank? }
@@ -22,50 +21,38 @@ module LyricsFinder::Providers
22
21
  end
23
22
  end
24
23
 
25
- # Providers Modules
24
+ # Providers Structs
26
25
 
27
- module LyricsWikia
28
- def self.format_url(song)
26
+ LyricsWikia = Struct.new(:song) do
27
+ def format_url
29
28
  song.format_attributes_with_separator!("_")
30
29
  "http://lyrics.wikia.com/#{song.author}:#{song.title}"
31
30
  end
32
-
33
- def self.extract_lyric(data)
34
- LyricsFinder::Providers.extract_lyrics_at_css_from_data('.lyricbox', data)
35
- end
31
+ def css_element; ".lyricbox"; end
36
32
  end
37
33
 
38
- module LyricsMania
39
- def self.format_url(song)
34
+ LyricsMania = Struct.new(:song) do
35
+ def format_url
40
36
  song.format_attributes_with_separator!("_")
41
37
  "http://www.lyricsmania.com/#{song.title}_lyrics_#{song.author}.html"
42
38
  end
43
-
44
- def self.extract_lyric(data)
45
- LyricsFinder::Providers.extract_lyrics_at_css_from_data('.lyrics-body', data)
46
- end
39
+ def css_element; ".lyrics-body"; end
47
40
  end
48
41
 
49
- module SongLyrics
50
- def self.format_url(song)
42
+ SongLyrics = Struct.new(:song) do
43
+ def format_url
51
44
  song.format_attributes_with_separator!("-")
52
45
  "http://www.songlyrics.com/#{song.author}/#{song.title}-lyrics/"
53
46
  end
54
-
55
- def self.extract_lyric(data)
56
- LyricsFinder::Providers.extract_lyrics_at_css_from_data('#songLyricsDiv', data)
57
- end
47
+ def css_element; "#songLyricsDiv"; end
58
48
  end
59
49
 
60
- module Azlyrics
61
- def self.format_url(song)
50
+ Azlyrics = Struct.new(:song) do
51
+ def format_url
62
52
  song.format_attributes_with_separator!("")
63
53
  "http://www.azlyrics.com/lyrics/#{song.author}/#{song.title}.html"
64
54
  end
65
-
66
- def self.extract_lyric(data)
67
- LyricsFinder::Providers.extract_lyrics_at_css_from_data('div:nth-child(7)', data)
68
- end
55
+ def css_element; "div:nth-child(7)"; end
69
56
  end
70
57
 
71
58
  end
@@ -1,3 +1,3 @@
1
1
  module LyricsFinder
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency 'coveralls', '~> 0.7.0'
28
28
  spec.add_development_dependency 'pry', '~> 0.9'
29
29
  spec.add_development_dependency 'pry-byebug', '1.3.2'
30
- spec.add_development_dependency 'awesome_print', '~> 1.2.0'
30
+ spec.add_development_dependency 'awesome_print', '1.2.0'
31
31
 
32
32
  spec.add_dependency 'nokogiri', '~> 1.6.1'
33
33
  spec.add_dependency 'activesupport', '~> 4.1.0'
@@ -2,8 +2,10 @@ describe LyricsFinder do
2
2
 
3
3
  describe '#search' do
4
4
 
5
- context 'with a song that can be found' do
5
+ context 'With LyricsWikia as the provider' do
6
6
  before :each do
7
+ # LyricsFinder::Providers.stub(:list).and_return([LyricsFinder::Providers::LyricsWikia])
8
+ LyricsFinder::Providers.stub(list: [LyricsFinder::Providers::LyricsWikia])
7
9
  VCR.use_cassette 'LyricsWikia 200 search' do
8
10
  @song = LyricsFinder.search("american authors", "best day of my life")
9
11
  end
@@ -14,12 +16,69 @@ describe LyricsFinder do
14
16
  end
15
17
 
16
18
  it 'returns the desired song' do
17
- expect(@song).to eq LyricsWikiaSampleSongs::BEST_DAY_OF_MY_LIFE
19
+ expect(@song).to eq SampleSongs::LYRICS_WIKIA_EXAMPLE
20
+ end
21
+ end
22
+
23
+ context 'With LyricsMania as the provider' do
24
+ before :each do
25
+ LyricsFinder::Providers.stub(list: [LyricsFinder::Providers::LyricsMania])
26
+ VCR.use_cassette 'LyricsMania 200 search' do
27
+ @song = LyricsFinder.search("american authors", "best day of my life")
28
+ end
29
+ end
30
+
31
+ it 'returns an instance of Array' do
32
+ expect(@song.class).to eq Array
33
+ end
34
+
35
+ it 'returns the desired song' do
36
+ expect(@song).to eq SampleSongs::LYRICS_MANIA_EXAMPLE
37
+ end
38
+ end
39
+
40
+ context 'With SongLyrics as the provider' do
41
+ before :each do
42
+ LyricsFinder::Providers.stub(list: [LyricsFinder::Providers::SongLyrics])
43
+ VCR.use_cassette 'SongLyrics 200 search' do
44
+ @song = LyricsFinder.search("american authors", "best day of my life")
45
+ end
46
+ end
47
+
48
+ it 'returns an instance of Array' do
49
+ expect(@song.class).to eq Array
50
+ end
51
+
52
+ it 'returns the desired song' do
53
+ expect(@song).to eq SampleSongs::SONG_LYRICS_EXAMPLE
54
+ end
55
+ end
56
+
57
+ context 'With Azlyrics as the provider' do
58
+ before :each do
59
+ LyricsFinder::Providers.stub(list: [LyricsFinder::Providers::Azlyrics])
60
+ VCR.use_cassette 'Azlyrics 200 search' do
61
+ @song = LyricsFinder.search("american authors", "best day of my life")
62
+ end
63
+ end
64
+
65
+ it 'returns an instance of Array' do
66
+ expect(@song.class).to eq Array
67
+ end
68
+
69
+ it 'returns the desired song' do
70
+ expect(@song).to eq SampleSongs::AZ_LYRICS_EXAMPLE
71
+ end
72
+ end
73
+
74
+ context 'with a sound that does not exist yet in any provider' do
75
+ it 'returns nil' do
76
+ expect(LyricsFinder.search("","")).to eq nil
18
77
  end
19
78
  end
20
79
 
21
80
  context 'with invalid parameters' do
22
- it 'fails with ContractError' do
81
+ it 'returns nil' do
23
82
  expect(LyricsFinder.search("","")).to eq nil
24
83
  end
25
84
  end
@@ -3,25 +3,12 @@ describe LyricsFinder::Providers::Azlyrics do
3
3
 
4
4
  describe '.format_url' do
5
5
  context 'with valid author and title' do
6
- let(:klass) { LyricsFinder::Providers::Azlyrics }
7
6
  let(:song) { Song.new("amêricàn authors", "best day of my life") }
7
+ let(:az_lyrics) { LyricsFinder::Providers::Azlyrics.new(song) }
8
8
  let(:valid_url) { "http://www.azlyrics.com/lyrics/americanauthors/bestdayofmylife.html" }
9
9
 
10
10
  it 'returns a properly formatted url' do
11
- expect(klass.format_url(song)).to eq valid_url
12
- end
13
- end
14
- end
15
-
16
- describe '.extract_lyric' do
17
- # with valid data it's already tested in lyrics_finder_spec.rb
18
- context 'with invalid data' do
19
- let(:klass) { LyricsFinder::Providers::Azlyrics }
20
-
21
- it 'raises a ContractError Exception' do
22
- expect{
23
- klass.extract_lyric(3.14)
24
- }.to raise_error ContractError
11
+ expect(az_lyrics.format_url).to eq valid_url
25
12
  end
26
13
  end
27
14
  end
@@ -3,25 +3,12 @@ describe LyricsFinder::Providers::LyricsMania do
3
3
 
4
4
  describe '.format_url' do
5
5
  context 'with valid author and title' do
6
- let(:klass) { LyricsFinder::Providers::LyricsMania }
7
6
  let(:song) { Song.new("amêricàn authors", "best day of my life") }
7
+ let(:lyrics_mania) { LyricsFinder::Providers::LyricsMania.new(song) }
8
8
  let(:valid_url) { "http://www.lyricsmania.com/best_day_of_my_life_lyrics_american_authors.html" }
9
9
 
10
10
  it 'returns a properly formatted url' do
11
- expect(klass.format_url(song)).to eq valid_url
12
- end
13
- end
14
- end
15
-
16
- describe '.extract_lyric' do
17
- # with valid data it's already tested in lyrics_finder_spec.rb
18
- context 'with invalid data' do
19
- let(:klass) { LyricsFinder::Providers::LyricsMania }
20
-
21
- it 'raises a ContractError Exception' do
22
- expect{
23
- klass.extract_lyric({})
24
- }.to raise_error ContractError
11
+ expect(lyrics_mania.format_url).to eq valid_url
25
12
  end
26
13
  end
27
14
  end
@@ -3,25 +3,12 @@ describe LyricsFinder::Providers::LyricsWikia do
3
3
 
4
4
  describe '.format_url' do
5
5
  context 'with valid author and title' do
6
- let(:klass) { LyricsFinder::Providers::LyricsWikia }
7
6
  let(:song) { Song.new("amëricán authòrs", "best day of my life") }
7
+ let(:lyrics_wikia) { LyricsFinder::Providers::LyricsWikia.new(song) }
8
8
  let(:valid_url) { "http://lyrics.wikia.com/american_authors:best_day_of_my_life" }
9
9
 
10
10
  it 'returns a properly formatted url' do
11
- expect(klass.format_url(song)).to eq valid_url
12
- end
13
- end
14
- end
15
-
16
- describe '.extract_lyric' do
17
- # with valid data it's already tested in lyrics_finder_spec.rb
18
- context 'with invalid data' do
19
- let(:klass) { LyricsFinder::Providers::LyricsWikia }
20
-
21
- it 'raises a ContractError Exception' do
22
- expect{
23
- klass.extract_lyric("invalid data")
24
- }.to raise_error ContractError
11
+ expect(lyrics_wikia.format_url).to eq valid_url
25
12
  end
26
13
  end
27
14
  end
@@ -3,25 +3,12 @@ describe LyricsFinder::Providers::SongLyrics do
3
3
 
4
4
  describe '.format_url' do
5
5
  context 'with valid author and title' do
6
- let(:klass) { LyricsFinder::Providers::SongLyrics}
7
6
  let(:song) { Song.new("amêricàn authors", "best day of my life") }
7
+ let(:song_lyrics) { LyricsFinder::Providers::SongLyrics.new(song) }
8
8
  let(:valid_url) { "http://www.songlyrics.com/american-authors/best-day-of-my-life-lyrics/" }
9
9
 
10
10
  it 'returns a properly formatted url' do
11
- expect(klass.format_url(song)).to eq valid_url
12
- end
13
- end
14
- end
15
-
16
- describe '.extract_lyric' do
17
- # with valid data it's already tested in lyrics_finder_spec.rb
18
- context 'with invalid data' do
19
- let(:klass) { LyricsFinder::Providers::SongLyrics }
20
-
21
- it 'raises a ContractError Exception' do
22
- expect{
23
- klass.extract_lyric([])
24
- }.to raise_error ContractError
11
+ expect(song_lyrics.format_url).to eq valid_url
25
12
  end
26
13
  end
27
14
  end
data/spec/spec_helper.rb CHANGED
@@ -5,4 +5,4 @@ require 'lyrics_finder'
5
5
  require 'vcr'
6
6
 
7
7
  require_relative 'support/vcr_setup'
8
- require_relative 'support/lyrics_wikia_sample_songs'
8
+ require_relative 'support/sample_songs'
@@ -0,0 +1,185 @@
1
+ module SampleSongs
2
+ LYRICS_WIKIA_EXAMPLE = ["I had a dream so big and loud",
3
+ "I jumped so high I touched the clouds",
4
+ "Wo-oah-oah-oah-oah-oh",
5
+ "(Wo-oah-oah-oah-oah-oh)",
6
+ "I stretched my hands out to the sky",
7
+ "We danced with monsters through the night",
8
+ "Wo-oah-oah-oah-oah-oh",
9
+ "(Wo-oah-oah-oah-oah-oh)",
10
+ "I'm never gonna look back, whoa",
11
+ "Never gonna give it up, no",
12
+ "Please don't wake me now",
13
+ "This is gonna be the best day of my life",
14
+ "My life-ah-ah-ah-ah-ah-ife",
15
+ "This is gonna be the best day of my life",
16
+ "My life-ah-ah-ah-ah-ah-ife",
17
+ "I howled at the moon with friends",
18
+ "And then the sun came crashing in",
19
+ "Wo-oah-oah-oah-oah-oh",
20
+ "(Wo-oah-oah-oah-oah-oh)",
21
+ "But all the possibilities",
22
+ "No limits just epiphanies",
23
+ "Wo-oah-oah-oah-oah-oh",
24
+ "(Wo-oah-oah-oah-oah-oh)",
25
+ "I'm never gonna look back, whoa",
26
+ "Never gonna give it up, no",
27
+ "Just don't wake me now",
28
+ "This is gonna be the best day of my life",
29
+ "My life-ah-ah-ah-ah-ah-ife",
30
+ "This is gonna be the best day of my life",
31
+ "My life-ah-ah-ah-ah-ah-ife",
32
+ "I hear it calling outside my window",
33
+ "I feel it in my soul (soul)",
34
+ "The stars were burning so bright",
35
+ "The sun was out 'til midnight",
36
+ "I say we lose control (control)",
37
+ "This is gonna be the best day of my life",
38
+ "My life-ah-ah-ah-ah-ah-ife",
39
+ "This is gonna be the best day of my life",
40
+ "My life-ah-ah-ah-ah-ah-ife",
41
+ "This is gonna be, this is gonna be, this is gotta be",
42
+ "The best day of my life",
43
+ "Everything is looking up, everybody up now",
44
+ "This is gonna be the best day of my life",
45
+ "My life-ah-ah-ah-ah-ah-ife"]
46
+
47
+ LYRICS_MANIA_EXAMPLE = ["Wo-o-o-o-o-oh Wooh",
48
+ "I had a dream so big and loud",
49
+ "I jumped so high I touched the clouds",
50
+ "Wo-o-o-o-o-oh",
51
+ "Wo-o-o-o-o-oh",
52
+ "I stretched my hands out to the sky",
53
+ "We danced with monsters through the night",
54
+ "Wo-o-o-o-o-oh",
55
+ "Wo-o-o-o-o-oh",
56
+ "I'm never gonna look back",
57
+ "Woah, I'm never gonna give it up",
58
+ "No, please don't wake me now",
59
+ "Oo-o-o-o-oo",
60
+ "This is gonna be the best day of my life",
61
+ "My li-i-i-i-i-ife",
62
+ "Oo-o-o-o-oo",
63
+ "This is gonna be the best day of my life",
64
+ "My li-i-i-i-i-ife",
65
+ "I howled at the moon with friends",
66
+ "And then the sun came crashing in",
67
+ "Wo-o-o-o-o-oh",
68
+ "Wo-o-o-o-o-oh",
69
+ "But all the possibilities",
70
+ "No limits just epiphanies",
71
+ "Wo-o-o-o-o-oh",
72
+ "Wo-o-o-o-o-oh",
73
+ "I'm never gonna look back",
74
+ "Woah, I'm never gonna give it up",
75
+ "No, just don't wake me now",
76
+ "Oo-o-o-o-oo",
77
+ "This is gonna be the best day of my life",
78
+ "My li-i-i-i-i-ife",
79
+ "Oo-o-o-o-oo",
80
+ "This is gonna be the best day of my life",
81
+ "My li-i-i-i-i-ife",
82
+ "I hear it calling outside my window",
83
+ "I feel it in my soul (soul)",
84
+ "The stars were burning so bright",
85
+ "The sun was out 'til midnight",
86
+ "I say we lose control (control)",
87
+ "This is gonna be the best day of my life",
88
+ "My li-i-i-i-i-ife",
89
+ "Oo-o-o-o-o",
90
+ "This is gonna be the best day of my life",
91
+ "My li-i-i-i-i-ife",
92
+ "This is gonna be, this is gonna be, this is gonna be",
93
+ "The best day of my life",
94
+ "Everything is looking up, everybody up now",
95
+ "This is gonna be the best day of my life",
96
+ "My li-i-i-i-i-ife"]
97
+
98
+ SONG_LYRICS_EXAMPLE = ["I had a dream so big and loud",
99
+ "I jumped so high I touched the clouds",
100
+ "Wo-o-o-o-o-oh, wo-o-o-o-o-oh",
101
+ "I stretched my hands out to the sky",
102
+ "We danced with Angels through the night",
103
+ "Wo-o-o-o-o-oh, wo-o-o-o-o-oh",
104
+ "I'm never gonna look back",
105
+ "Woah, never gonna give it up",
106
+ "No, please don't wake me now",
107
+ "This is gonna be the best day of my life",
108
+ "My li-i-i-i-i-ife",
109
+ "This is gonna be the best day of my life",
110
+ "My li-i-i-i-i-ife",
111
+ "I hailed at the moon with friends",
112
+ "And then the sun came shinning in",
113
+ "Wo-o-o-o-o-oh, wo-o-o-o-o-oh",
114
+ "But all the possibilities",
115
+ "No limits just epiphanies",
116
+ "Wo-o-o-o-o-oh, wo-o-o-o-o-oh",
117
+ "I'm never gonna look back",
118
+ "Woah, never gonna give it up",
119
+ "No, just don't wake me now",
120
+ "This is gonna be the best day of my life",
121
+ "My li-i-i-i-i-ife",
122
+ "This is gonna be the best day of my life",
123
+ "My li-i-i-i-i-ife",
124
+ "I hear it calling outside my window",
125
+ "I feel it in my soul (soul)",
126
+ "The stars were flashing so bright",
127
+ "The sun was out 'til midnight",
128
+ "I say we gained control (control)",
129
+ "This is gonna be the best day of my life",
130
+ "My li-i-i-i-i-ife",
131
+ "This is gonna be the best day of my life",
132
+ "My li-i-i-i-i-ife",
133
+ "This is gonna be, this is gonna be, this is gonna be",
134
+ "The best day of my life",
135
+ "Everything is looking up, everybody up now",
136
+ "This is gonna be the best day of my life",
137
+ "My li-i-i-i-i-ife"]
138
+
139
+ AZ_LYRICS_EXAMPLE = ["I had a dream so big and loud",
140
+ "I jumped so high I touched the clouds",
141
+ "Wo-o-o-o-o-oh",
142
+ "I stretched my hands out to the sky",
143
+ "We danced with monsters through the night",
144
+ "Wo-o-o-o-o-oh",
145
+ "I'm never gonna look back",
146
+ "Whoa, I'm never gonna give it up",
147
+ "No, please don't wake me now",
148
+ "Oo-o-o-o-oo",
149
+ "This is gonna be the best day of my life",
150
+ "My life",
151
+ "Oo-o-o-o-oo",
152
+ "This is gonna be the best day of my life",
153
+ "My life",
154
+ "I howled at the moon with friends",
155
+ "And then the sun came crashing in",
156
+ "Wo-o-o-o-o-oh",
157
+ "But all the possibilities",
158
+ "No limits just epiphanies",
159
+ "Wo-o-o-o-o-oh",
160
+ "I'm never gonna look back",
161
+ "Whoa, I'm never gonna give it up",
162
+ "No, just don't wake me now",
163
+ "Oo-o-o-o-oo",
164
+ "This is gonna be the best day of my life",
165
+ "My life",
166
+ "Oo-o-o-o-oo",
167
+ "This is gonna be the best day of my life",
168
+ "My life",
169
+ "I hear it calling outside my window",
170
+ "I feel it in my soul (soul)",
171
+ "The stars were burning so bright",
172
+ "The sun was out 'til midnight",
173
+ "I say we lose control (control)",
174
+ "This is gonna be the best day of my life",
175
+ "My life",
176
+ "Oo-o-o-o-o",
177
+ "This is gonna be the best day of my life",
178
+ "My life",
179
+ "This is gonna be, this is gonna be, this is gonna be",
180
+ "The best day of my life",
181
+ "Everything is looking up, everybody up now",
182
+ "This is gonna be the best day of my life",
183
+ "My life"]
184
+
185
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lyrics_finder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Romero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-28 00:00:00.000000000 Z
11
+ date: 2014-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -140,14 +140,14 @@ dependencies:
140
140
  name: awesome_print
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ~>
143
+ - - '='
144
144
  - !ruby/object:Gem::Version
145
145
  version: 1.2.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ~>
150
+ - - '='
151
151
  - !ruby/object:Gem::Version
152
152
  version: 1.2.0
153
153
  - !ruby/object:Gem::Dependency
@@ -250,9 +250,8 @@ files:
250
250
  - spec/lyrics_finder/providers/lyrics_mania_spec.rb
251
251
  - spec/lyrics_finder/providers/lyrics_wikia_spec.rb
252
252
  - spec/lyrics_finder/providers/song_lyrics_spec.rb
253
- - spec/lyrics_finder/providers_spec.rb
254
253
  - spec/spec_helper.rb
255
- - spec/support/lyrics_wikia_sample_songs.rb
254
+ - spec/support/sample_songs.rb
256
255
  - spec/support/vcr_setup.rb
257
256
  homepage: https://github.com/dnlR/lyrics_finder
258
257
  licenses:
@@ -284,7 +283,6 @@ test_files:
284
283
  - spec/lyrics_finder/providers/lyrics_mania_spec.rb
285
284
  - spec/lyrics_finder/providers/lyrics_wikia_spec.rb
286
285
  - spec/lyrics_finder/providers/song_lyrics_spec.rb
287
- - spec/lyrics_finder/providers_spec.rb
288
286
  - spec/spec_helper.rb
289
- - spec/support/lyrics_wikia_sample_songs.rb
287
+ - spec/support/sample_songs.rb
290
288
  - spec/support/vcr_setup.rb
@@ -1,23 +0,0 @@
1
- describe LyricsFinder::Providers do
2
-
3
- describe '.build_klass' do
4
-
5
- context 'with valid arguments' do
6
- let(:klass) { LyricsFinder::Providers::LyricsWikia }
7
-
8
- it 'builds the correct class' do
9
- expect(LyricsFinder::Providers.build_klass(:lyrics_wikia)).to eq klass
10
- end
11
- end
12
-
13
- context 'with invalid arguments' do
14
- it 'raises a ContractError Exception' do
15
- expect{
16
- LyricsFinder::Providers.build_klass("klass")
17
- }.to raise_error ContractError
18
- end
19
- end
20
-
21
- end
22
-
23
- end
@@ -1,46 +0,0 @@
1
- module LyricsWikiaSampleSongs
2
- BEST_DAY_OF_MY_LIFE = ["I had a dream so big and loud",
3
- "I jumped so high I touched the clouds",
4
- "Wo-oah-oah-oah-oah-oh",
5
- "(Wo-oah-oah-oah-oah-oh)",
6
- "I stretched my hands out to the sky",
7
- "We danced with monsters through the night",
8
- "Wo-oah-oah-oah-oah-oh",
9
- "(Wo-oah-oah-oah-oah-oh)",
10
- "I'm never gonna look back, whoa",
11
- "Never gonna give it up, no",
12
- "Please don't wake me now",
13
- "This is gonna be the best day of my life",
14
- "My life-ah-ah-ah-ah-ah-ife",
15
- "This is gonna be the best day of my life",
16
- "My life-ah-ah-ah-ah-ah-ife",
17
- "I howled at the moon with friends",
18
- "And then the sun came crashing in",
19
- "Wo-oah-oah-oah-oah-oh",
20
- "(Wo-oah-oah-oah-oah-oh)",
21
- "But all the possibilities",
22
- "No limits just epiphanies",
23
- "Wo-oah-oah-oah-oah-oh",
24
- "(Wo-oah-oah-oah-oah-oh)",
25
- "I'm never gonna look back, whoa",
26
- "Never gonna give it up, no",
27
- "Just don't wake me now",
28
- "This is gonna be the best day of my life",
29
- "My life-ah-ah-ah-ah-ah-ife",
30
- "This is gonna be the best day of my life",
31
- "My life-ah-ah-ah-ah-ah-ife",
32
- "I hear it calling outside my window",
33
- "I feel it in my soul (soul)",
34
- "The stars were burning so bright",
35
- "The sun was out 'til midnight",
36
- "I say we lose control (control)",
37
- "This is gonna be the best day of my life",
38
- "My life-ah-ah-ah-ah-ah-ife",
39
- "This is gonna be the best day of my life",
40
- "My life-ah-ah-ah-ah-ah-ife",
41
- "This is gonna be, this is gonna be, this is gotta be",
42
- "The best day of my life",
43
- "Everything is looking up, everybody up now",
44
- "This is gonna be the best day of my life",
45
- "My life-ah-ah-ah-ah-ah-ife"]
46
- end