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