beats-client 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY.md CHANGED
@@ -1,4 +1,9 @@
1
1
 
2
+ ### 0.3.1 (2012-03-01)
3
+
4
+ * Added documentation for the add_resource command
5
+ * Use resource discovery to get the URL for the add_resource command
6
+
2
7
  ### 0.3.0 (2012-02-29)
3
8
 
4
9
  * Added an "ingest" command
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, payload, default_headers.merge(options))
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
@@ -1,3 +1,3 @@
1
1
  module Beats
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
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.0
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-02-29 00:00:00.000000000 Z
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: &70232077106980 !ruby/object:Gem::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: *70232077106980
25
+ version_requirements: *70356488552220
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: multi_json
28
- requirement: &70232077106080 !ruby/object:Gem::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: *70232077106080
36
+ version_requirements: *70356488551320
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: json_pure
39
- requirement: &70232077105200 !ruby/object:Gem::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: *70232077105200
47
+ version_requirements: *70356488550440
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rake
50
- requirement: &70232077104540 !ruby/object:Gem::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: *70232077104540
58
+ version_requirements: *70356488549780
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: yard
61
- requirement: &70232077103880 !ruby/object:Gem::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: *70232077103880
69
+ version_requirements: *70356488549120
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: redcarpet
72
- requirement: &70232077103380 !ruby/object:Gem::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: *70232077103380
80
+ version_requirements: *70356488548620
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: github-markup
83
- requirement: &70232077102180 !ruby/object:Gem::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: *70232077102180
91
+ version_requirements: *70356488547420
92
92
  description: A CLI client and SDK for Beats API
93
93
  email:
94
94
  - niklas@sutajio.se