beats-client 0.3.0 → 0.3.1
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.
- data/HISTORY.md +5 -0
- data/lib/beats/client.rb +10 -7
- data/lib/beats/version.rb +1 -1
- data/test/client_test.rb +22 -15
- metadata +16 -16
data/HISTORY.md
CHANGED
data/lib/beats/client.rb
CHANGED
@@ -48,6 +48,13 @@ module Beats
|
|
48
48
|
decode_json(get(resolve_uri(@base_url, uri)))
|
49
49
|
end
|
50
50
|
|
51
|
+
# Adds a resource to the catalogue.
|
52
|
+
# @param [Hash] resource Metadata describing the resource.
|
53
|
+
# @return [Hash] A hash describing the added resource.
|
54
|
+
def add_resource(resource)
|
55
|
+
decode_json(post(resolve_uri(@base_url, href(:catalogue)), resource))
|
56
|
+
end
|
57
|
+
|
51
58
|
# Performs a search in the music catalogue and returns the results.
|
52
59
|
# @param [String] query A search query, like "the beatles".
|
53
60
|
# @return [Hash] A hash with array fields for the different kinds of
|
@@ -70,12 +77,6 @@ module Beats
|
|
70
77
|
def sentence
|
71
78
|
decode_json(get(resolve_uri(@base_url, href(:sentence))))
|
72
79
|
end
|
73
|
-
|
74
|
-
def add_resource(resource)
|
75
|
-
decode_json(post(resolve_uri(@base_url, ""),
|
76
|
-
MultiJson.encode(resource),
|
77
|
-
'Content-Type' => 'application/json'))
|
78
|
-
end
|
79
80
|
|
80
81
|
private
|
81
82
|
|
@@ -95,7 +96,9 @@ module Beats
|
|
95
96
|
end
|
96
97
|
|
97
98
|
def post(url, payload, options = {})
|
98
|
-
RestClient.post(url,
|
99
|
+
RestClient.post(url, MultiJson.encode(payload),
|
100
|
+
default_headers.merge(options).merge(
|
101
|
+
'Content-Type' => 'application/json'))
|
99
102
|
end
|
100
103
|
|
101
104
|
def href(rel, options = {})
|
data/lib/beats/version.rb
CHANGED
data/test/client_test.rb
CHANGED
@@ -31,6 +31,28 @@ class ClientTest < Test::Unit::TestCase
|
|
31
31
|
assert_equal 'Account', resource['type']
|
32
32
|
end
|
33
33
|
|
34
|
+
def test_can_add_resource
|
35
|
+
resource = {
|
36
|
+
:type => 'Album',
|
37
|
+
:name => 'Dwight Live',
|
38
|
+
:artist => 'Dwight Yoakam',
|
39
|
+
:tracks =>
|
40
|
+
[{ :type => 'Track',
|
41
|
+
:artist => 'Dwight Yoakam',
|
42
|
+
:name => 'Little Sister',
|
43
|
+
:album => 'Dwight Live'},
|
44
|
+
{ :type => 'Track',
|
45
|
+
:artist => 'Dwight Yoakam',
|
46
|
+
:name => 'It Only Hurts When I Cry',
|
47
|
+
:album => 'Dwight Live' }]
|
48
|
+
}
|
49
|
+
result = @client.add_resource(resource)
|
50
|
+
assert_equal 'Album', result['type']
|
51
|
+
assert_equal 'Dwight-Yoakam/Dwight-Live', result['uri']
|
52
|
+
assert_equal 'Dwight Live', result['name']
|
53
|
+
assert_equal 'Dwight Yoakam', result['artist']
|
54
|
+
end
|
55
|
+
|
34
56
|
def test_can_search
|
35
57
|
results = @client.search('The Beatles')
|
36
58
|
assert results['total']
|
@@ -58,20 +80,5 @@ class ClientTest < Test::Unit::TestCase
|
|
58
80
|
end
|
59
81
|
end
|
60
82
|
end
|
61
|
-
def test_can_add_resource
|
62
|
-
@client.add_resource(
|
63
|
-
{"type"=>"Album",
|
64
|
-
"name"=>"Dwight Live",
|
65
|
-
"artist"=>"Dwight Yoakam",
|
66
|
-
"tracks"=>
|
67
|
-
[{"type"=>"Track",
|
68
|
-
"artist"=>"Dwight Yoakam",
|
69
|
-
"name"=>"Little Sister",
|
70
|
-
"album"=>"Dwight Live"},
|
71
|
-
{"type"=>"Track",
|
72
|
-
"artist"=>"Dwight Yoakam",
|
73
|
-
"name"=>"It Only Hurts When I Cry",
|
74
|
-
"album"=>"Dwight Live"}]})
|
75
|
-
end
|
76
83
|
|
77
84
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beats-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-03-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rest-client
|
17
|
-
requirement: &
|
17
|
+
requirement: &70356488552220 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70356488552220
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: multi_json
|
28
|
-
requirement: &
|
28
|
+
requirement: &70356488551320 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70356488551320
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: json_pure
|
39
|
-
requirement: &
|
39
|
+
requirement: &70356488550440 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70356488550440
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rake
|
50
|
-
requirement: &
|
50
|
+
requirement: &70356488549780 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70356488549780
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: yard
|
61
|
-
requirement: &
|
61
|
+
requirement: &70356488549120 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70356488549120
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: redcarpet
|
72
|
-
requirement: &
|
72
|
+
requirement: &70356488548620 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70356488548620
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: github-markup
|
83
|
-
requirement: &
|
83
|
+
requirement: &70356488547420 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,7 +88,7 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *70356488547420
|
92
92
|
description: A CLI client and SDK for Beats API
|
93
93
|
email:
|
94
94
|
- niklas@sutajio.se
|