spof 0.0.5 → 0.0.7

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: d45c7f6f97bfa4030b84355b1e8aba9ba9dffa6b
4
- data.tar.gz: bdb7e3dc76cf2343855c0cfe4a203ff6f19abb32
3
+ metadata.gz: 5bbe79932270b033c3f97f8746a01851fb3df73d
4
+ data.tar.gz: 738704ac1289fb279c443c39236ad7569ff58969
5
5
  SHA512:
6
- metadata.gz: ae1627c65e6b37bac9efe25fce5551451c34bf176cef6957dbb83d2d9fd29deb8b2e35d0639bc2104755a97295129f72a630c96cd7f1d7131d6d9866a168fa30
7
- data.tar.gz: 8348ea7d148b0109c21ce4b7b558d5e1c025a33591164f546322ca850840de0675d456417709b6d518f3e59bdb4752bf67890a048c2ac898aa8868156a2b1d15
6
+ metadata.gz: c9c6325b48909bc842ca41f1734cb2d4185425a5cd39253cb879f48de4efce46fcf6de888b11703e8a40ab484bcb2141665c921ea7aeb89e085b87a7f3a19a14
7
+ data.tar.gz: fdfc6e8845acc1649140cc0b731e6f86c3c76d14c60b5314eb73dfeb0f9476f03e8e4289ffde6778f4967e46f85b0e6692e1b194d63a3611aca1574c18b6dfc8
data/lib/lookup.rb CHANGED
@@ -3,18 +3,12 @@ module Spof
3
3
  module Lookup
4
4
 
5
5
  def self.album(spotify_uri, *extras)
6
- legal_extras = [:track, :trackdetail]
7
- extras.each do |e|
8
- raise SpofError, "Illegal extra" if not legal_extras.include?(e)
9
- end
6
+ check_extras(extras, [:track, :trackdetail])
10
7
  return get(spotify_uri, *extras)
11
8
  end
12
9
 
13
10
  def self.artist(spotify_uri, *extras)
14
- legal_extras = [:album, :albumdetail]
15
- extras.each do |e|
16
- raise SpofError, "Illegal extra" if not legal_extras.include?(e)
17
- end
11
+ check_extras(extras, [:album, :albumdetail])
18
12
  return get(spotify_uri, *extras)
19
13
  end
20
14
 
@@ -33,6 +27,13 @@ module Spof
33
27
  return JSON.parse(response, :symbolize_names => true)
34
28
  end
35
29
 
30
+ private
31
+ def self.check_extras(extras, legal_extras)
32
+ extras.each do |e|
33
+ raise Spof::SpofError, "Illegal extra" if not legal_extras.include?(e)
34
+ end
35
+ end
36
+
36
37
  end
37
38
 
38
39
  end
data/lib/spof/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Spof
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.7"
3
3
  end
data/lib/wrapper.rb CHANGED
@@ -25,35 +25,33 @@ module Spof
25
25
  self
26
26
  end
27
27
 
28
- def all(num)
28
+ def all
29
29
  @all = true
30
+ self
30
31
  end
31
32
 
32
33
  def search(text)
33
34
  @type ||= :all
34
35
  @all ||= false
35
36
 
36
- continue = true
37
-
38
37
  result = []
39
- while continue
38
+ page = 0
39
+ loop do
40
40
  res = case @type
41
41
  when :album
42
- Spof::Search.album(text)[:albums]
42
+ Spof::Search.album(text, page)[:albums]
43
43
  when :artist
44
- Spof::Search.artist(text)[:artists]
44
+ Spof::Search.artist(text, page)[:artists]
45
45
  when :track
46
- Spof::Search.track(text)[:tracks]
46
+ Spof::Search.track(text, page)[:tracks]
47
47
  when :all?
48
48
  else
49
49
  raise Spof::SpofError, "Invalid search type #{@type}"
50
50
  end
51
51
  result |= res
52
- if res.empty?
53
- continue = false
54
- else
55
- continue = @all
56
- end
52
+ page += 1
53
+ break unless @all
54
+ break if res.empty?
57
55
  end
58
56
 
59
57
  @type = nil # TODO: reset search type?
@@ -25,4 +25,17 @@ class TestBasicWrapper < Test::Unit::TestCase
25
25
  assert_equal expected, real
26
26
  end
27
27
 
28
+ def test_all_search_response
29
+ expected = []
30
+ page = 0
31
+ loop do
32
+ res = Spof::Search.album('nine inch nails', page)[:albums]
33
+ page += 1
34
+ expected |= res
35
+ break if res.empty?
36
+ end
37
+ real = @w.album.all.search('nine inch nails')
38
+ assert_equal expected, real
39
+ end
40
+
28
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spof
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ignacio Contreras
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-27 00:00:00.000000000 Z
11
+ date: 2013-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler