spof 0.0.5 → 0.0.7

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: 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