musicbrainz_wrapper 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTk3ODcyNzkwMmVmNjFmZTYzZTIwNDdkNjRkNmY4ZTE4NzRjMWU0MQ==
4
+ MGE2NzQxZmUzMDI5ZGI0MzY5MTY3Nzk4N2UxM2M5OTRlYTZjNWYzYw==
5
5
  data.tar.gz: !binary |-
6
- NmQxZmJjYTAzNDYwM2NlM2FlYTQ3NWY2MzQ0ZDg3OTdlMTEzYmU3MQ==
6
+ Y2MxODc4NzI5MzlhZjUwZDc2YzI0MDFmOGM4MDRhZmZjODY5ZTgzOA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YmNmZDMwMDg4NmNmOGYxZDg3ZGFlMjcxYThmNDE2NDVhMDFkZWM4MzMwOTA1
10
- MTRjY2Q4NDNkYWUxZDU4YTYyNDM2OGE4MGE1YjJlMzM1YzM3ZDNhN2M0N2Mw
11
- NTAxN2NjZjFiNmY3ODZjODNmOGNiNWQxMTI2NWI4OTVlZTZhZmI=
9
+ YTZkNzFkNTc0NjY4MDM4ZGNiNjg2ZTAzMWY4ZDAyNzA3ZjU4NGU2YzRhYmVh
10
+ NWZjNTNhODU5YzUyNTFlZGFjZWZjZjJkNzI2ZjE3MDdlMGJhODZlMDc2MzVh
11
+ NGI0MjdjNmU0NWZmZWFmYTYwZmNjZmJjZjQ1ZmUxNmMwZDRlMjA=
12
12
  data.tar.gz: !binary |-
13
- MWZmNzVjN2EzOTY3MjBlNTM1YjhjYzcwNDlkZjBmMDE5ZTIzMWViZjMxNTUx
14
- YTNmMjdkYmE4NTVmNTg0OWI3MjllZDkzYWQzMDg5MTQyYzYwMmQ2MzA0MTVh
15
- YjY1NGUwMzVkMmMwYTc3NTg4MGE0NjE2ZDQzNGNkY2JmM2ZlODI=
13
+ ZWIxYjUzM2U4ZjcxMjM3ZDU4OTA1MGVlNzU2OTFlMTFkNDZlMDc1ZTljYWRk
14
+ ZjkzNWQ1YTE1MWUwZjZlMWQwMjA1MDNmMjRmMDdkOWIzYTVhMzBjYmE4Njc3
15
+ ZjljZDZkNmNiMjkxOTFkOWY3OWU5NjExYjUzYWI1NzhlN2U1NWM=
@@ -1,3 +1,3 @@
1
1
  module MusicbrainzWrapper
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -127,7 +127,7 @@ class Musicbrainz::Wrapper
127
127
  def self.create_query_string(start, params)
128
128
  if params.is_a?(Hash) && params.count > 0
129
129
  ending = hash_to_query_string(params)
130
- "#{start}/#{ending}#{question_mark_or_ampersand(ending)}fmt=json"
130
+ "#{start}/#{ending}#{question_mark_or_ampersand(ending)}fmt=json&limit=#{value_or_default(params[:limit], 25)}&offset=#{value_or_default(params[:offset], 0)}"
131
131
  else
132
132
  "#{start}/"
133
133
  end
@@ -146,7 +146,9 @@ class Musicbrainz::Wrapper
146
146
  def self.query_array(hash)
147
147
  array = []
148
148
  hash.each do |k, v|
149
- array << "#{k}:#{URI.encode(v, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))}" unless k == :inc
149
+ if k != :inc && k != :limit && k != :offset
150
+ array << "#{k}:#{URI.encode(v, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))}"
151
+ end
150
152
  end
151
153
  array
152
154
  end
@@ -174,6 +176,14 @@ class Musicbrainz::Wrapper
174
176
  '?'
175
177
  end
176
178
  end
179
+
180
+ def self.value_or_default(value, default)
181
+ if value
182
+ value
183
+ else
184
+ default
185
+ end
186
+ end
177
187
 
178
188
  # Hit Musicbrainz API
179
189
  def query(ending, type)
@@ -28,6 +28,18 @@ describe Musicbrainz::Wrapper do
28
28
  it "should add &fmt=json to end of string" do
29
29
  should include('&fmt=json')
30
30
  end
31
+ it "should contain &limit=25 if limit not passed" do
32
+ should include('&limit=25')
33
+ end
34
+ it "should set limit if passed" do
35
+ Musicbrainz::Wrapper.create_query_string('release', {:limit => 100}).should include('&limit=100')
36
+ end
37
+ it "should contain &offset=0 if offset not passed" do
38
+ should include('&offset=0')
39
+ end
40
+ it "should set offset if passed" do
41
+ Musicbrainz::Wrapper.create_query_string('release', {:offset => 100}).should include('&offset=100')
42
+ end
31
43
  it "should return the start if passed blank hash" do
32
44
  Musicbrainz::Wrapper.create_query_string('release', {}).should == 'release/'
33
45
  end
@@ -98,21 +110,30 @@ describe Musicbrainz::Wrapper do
98
110
  end
99
111
  end
100
112
 
113
+ describe "value_or_default" do
114
+ it "should return value if it is not nil" do
115
+ Musicbrainz::Wrapper.value_or_default(1, 2).should == 1
116
+ end
117
+ it "should return default if value is nil" do
118
+ Musicbrainz::Wrapper.value_or_default(nil, 2).should == 2
119
+ end
120
+ end
121
+
101
122
  # Hit Musicbrainz API
102
123
  describe "query", :slow => true do
103
124
  context "is passed a plural object" do
104
125
  it "should return an array" do
105
- wrapper.query(albums_query).should be_an_instance_of Array
126
+ wrapper.query(albums_query, :multiple).should be_an_instance_of Array
106
127
  end
107
128
  end
108
129
  context "is passed a single object" do
109
130
  it "should return a hash" do
110
- wrapper.query(album_query).should be_an_instance_of Hash
131
+ wrapper.query(album_query, :single).should be_an_instance_of Hash
111
132
  end
112
133
  end
113
134
  context "is passed bad data" do
114
135
  it "should return nil" do
115
- wrapper.query("something_else").should be_nil
136
+ wrapper.query("something_else", :single).should be_nil
116
137
  end
117
138
  end
118
139
  end
@@ -143,20 +164,20 @@ describe Musicbrainz::Wrapper do
143
164
  context "for a single object" do
144
165
  it "should return a hash" do
145
166
  response = wrapper.send_query(api_point + album_query)
146
- Musicbrainz::Wrapper.parse_response(response).should be_an_instance_of Hash
167
+ Musicbrainz::Wrapper.parse_response(response, :single).should be_an_instance_of Hash
147
168
  end
148
169
  end
149
170
  context "for multiple objects" do
150
171
  it "should return an array" do
151
172
  response = wrapper.send_query(api_point + albums_query)
152
- Musicbrainz::Wrapper.parse_response(response).should be_an_instance_of Array
173
+ Musicbrainz::Wrapper.parse_response(response, :multiple).should be_an_instance_of Array
153
174
  end
154
175
  end
155
176
  end
156
177
  context "when passed a bad response" do
157
178
  it "should return nil" do
158
179
  response = wrapper.send_query(api_point + 'release/d8')
159
- Musicbrainz::Wrapper.parse_response(response).should be_nil
180
+ Musicbrainz::Wrapper.parse_response(response, :single).should be_nil
160
181
  end
161
182
  end
162
183
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: musicbrainz_wrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - tomallen400
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-23 00:00:00.000000000 Z
11
+ date: 2014-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler