rivendell-api 0.0.5 → 0.6

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -17,3 +17,4 @@ test/version_tmp
17
17
  tmp
18
18
  *~
19
19
  log/*
20
+ .ruby-version
@@ -13,10 +13,6 @@ module Rivendell::API
13
13
  @number = (number ? number.to_i : nil)
14
14
  end
15
15
 
16
- def has_title?
17
- not [ nil, "", "[new cart]" ].include? title
18
- end
19
-
20
16
  alias_method :group, :group_name
21
17
  alias_method :group=, :group_name=
22
18
 
@@ -1,5 +1,5 @@
1
1
  module Rivendell
2
2
  module Api
3
- VERSION = "0.0.5"
3
+ VERSION = "0.6"
4
4
  end
5
5
  end
@@ -102,26 +102,30 @@ module Rivendell::API
102
102
  options[:group_name] ||= options.delete(:group)
103
103
 
104
104
  response = post COMMAND_LISTCARTS, options
105
- response["cartList"]["cart"].collect do |cart_xml|
105
+ elements(response["cartList"]["cart"]).collect do |cart_xml|
106
106
  Rivendell::API::Cart.new(cart_xml)
107
107
  end
108
108
  end
109
109
 
110
+ def elements(response)
111
+ case response
112
+ when Array
113
+ response
114
+ when nil
115
+ []
116
+ else
117
+ [ response ]
118
+ end
119
+ end
120
+
110
121
  def remove_cart(cart_number)
111
122
  post COMMAND_REMOVECART, :cart_number => cart_number
112
123
  end
113
124
 
114
125
  def list_cuts(cart_number)
115
126
  response = post COMMAND_LISTCUTS, :cart_number => cart_number
116
- case cuts_xml = response["cutList"]["cut"]
117
- when Array
118
- cuts_xml.collect do |cut_xml|
119
- Rivendell::API::Cut.new(cut_xml)
120
- end
121
- when nil
122
- []
123
- else
124
- [ Rivendell::API::Cut.new(cuts_xml) ]
127
+ elements(response["cutList"]["cut"]).collect do |cut_xml|
128
+ Rivendell::API::Cut.new cut_xml
125
129
  end
126
130
  end
127
131
 
@@ -0,0 +1,78 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <cartList>
3
+ <cart>
4
+ <number>10037</number>
5
+ <type>audio</type>
6
+ <groupName>MUSIC</groupName>
7
+ <title>Rivendell 1</title>
8
+ <artist>Trust</artist>
9
+ <album>AntiBest of</album>
10
+ <year></year>
11
+ <label></label>
12
+ <client></client>
13
+ <agency></agency>
14
+ <publisher></publisher>
15
+ <composer></composer>
16
+ <userDefined></userDefined>
17
+ <usageCode>0</usageCode>
18
+ <forcedLength>0:05:05.8</forcedLength>
19
+ <averageLength>0:05:05.8</averageLength>
20
+ <lengthDeviation>0:00:00.0</lengthDeviation>
21
+ <averageSegueLenth>0:05:05.8</averageSegueLenth>
22
+ <averageHookLength>0:00:00.0</averageHookLength>
23
+ <cutQuantity>1</cutQuantity>
24
+ <lastCutPlayed>0</lastCutPlayed>
25
+ <validity>2</validity>
26
+ <enforceLength>false</enforceLength>
27
+ <asyncronous>false</asyncronous>
28
+ <owner></owner>
29
+ <metadataDatetime>Mon, 29 Aug 2011 15:15:56 GMT</metadataDatetime>
30
+ <cutList>
31
+ <cut>
32
+ <cutName>010037_001</cutName>
33
+ <cartNumber>10037</cartNumber>
34
+ <cutNumber>1</cutNumber>
35
+ <evergreen>false</evergreen>
36
+ <description>Antisocial</description>
37
+ <outcue></outcue>
38
+ <isrc></isrc>
39
+ <isci></isci>
40
+ <length>305842</length>
41
+ <originDatetime>Sat, 14 May 2011 09:51:00 GMT</originDatetime>
42
+ <startDatetime></startDatetime>
43
+ <endDatetime></endDatetime>
44
+ <sun>true</sun>
45
+ <mon>true</mon>
46
+ <tue>true</tue>
47
+ <wed>true</wed>
48
+ <thu>true</thu>
49
+ <fri>true</fri>
50
+ <sat>true</sat>
51
+ <startDaypart></startDaypart>
52
+ <endDaypart></endDaypart>
53
+ <originName>hyppo</originName>
54
+ <weight>1</weight>
55
+ <lastPlayDatetime>Mon, 29 Aug 2011 19:45:08 GMT</lastPlayDatetime>
56
+ <playCounter>1</playCounter>
57
+ <localCounter>1</localCounter>
58
+ <validity>2</validity>
59
+ <codingFormat>0</codingFormat>
60
+ <sampleRate>44100</sampleRate>
61
+ <bitRate>0</bitRate>
62
+ <channels>2</channels>
63
+ <playGain>0</playGain>
64
+ <startPoint>117</startPoint>
65
+ <endPoint>305959</endPoint>
66
+ <fadeupPoint>-1</fadeupPoint>
67
+ <fadedownPoint>-1</fadedownPoint>
68
+ <segueStartPoint>-1</segueStartPoint>
69
+ <segueEndPoint>-1</segueEndPoint>
70
+ <segueGain>-3000</segueGain>
71
+ <hookStartPoint>-1</hookStartPoint>
72
+ <hookEndPoint>-1</hookEndPoint>
73
+ <talkStartPoint>-1</talkStartPoint>
74
+ <talkEndPoint>0</talkEndPoint>
75
+ </cut>
76
+ </cutList>
77
+ </cart>
78
+ </cartList>
@@ -2,28 +2,4 @@ require 'spec_helper'
2
2
 
3
3
  describe Rivendell::API::Cart do
4
4
 
5
- describe "has_title?" do
6
-
7
- it "should return false if title is nil" do
8
- subject.title = nil
9
- subject.should_not have_title
10
- end
11
-
12
- it "should return false if title is empty" do
13
- subject.title = ""
14
- subject.should_not have_title
15
- end
16
-
17
- it "should return false if title is '[new cart]'" do
18
- subject.title = "[new cart]"
19
- subject.should_not have_title
20
- end
21
-
22
- it "should return true if title is something else" do
23
- subject.title = "dummy"
24
- subject.should have_title
25
- end
26
-
27
- end
28
-
29
5
  end
@@ -222,6 +222,18 @@ describe Rivendell::API::Xport do
222
222
  FakeWeb.last_request["GROUP_NAME"] == "TEST"
223
223
  end
224
224
 
225
+ context "when a single cart is found" do
226
+
227
+ before(:each) do
228
+ FakeWeb.register_uri(:post, "http://localhost/rd-bin/rdxport.cgi", :body => fixture_content("rdxport_list_carts-single-cart.xml"))
229
+ end
230
+
231
+ it "should return Cast" do
232
+ subject.list_carts.map(&:title).should == ["Rivendell 1"]
233
+ end
234
+
235
+ end
236
+
225
237
  end
226
238
 
227
239
  describe "#list_cuts" do
metadata CHANGED
@@ -1,158 +1,168 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rivendell-api
3
- version: !ruby/object:Gem::Version
4
- hash: 21
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.6'
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 5
10
- version: 0.0.5
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Alban Peignier
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-08-02 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- prerelease: false
22
- type: :runtime
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
32
- requirement: *id001
12
+ date: 2014-05-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
33
15
  name: httmultiparty
34
- - !ruby/object:Gem::Dependency
35
- prerelease: false
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
36
22
  type: :runtime
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
46
- requirement: *id002
47
- name: activesupport
48
- - !ruby/object:Gem::Dependency
49
23
  prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: activesupport
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
50
38
  type: :runtime
51
- version_requirements: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
60
- requirement: *id003
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
61
47
  name: null_logger
62
- - !ruby/object:Gem::Dependency
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
63
55
  prerelease: false
64
- type: :development
65
- version_requirements: &id004 !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- hash: 3
71
- segments:
72
- - 0
73
- version: "0"
74
- requirement: *id004
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
75
63
  name: simplecov
76
- - !ruby/object:Gem::Dependency
77
- prerelease: false
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
78
70
  type: :development
79
- version_requirements: &id005 !ruby/object:Gem::Requirement
80
- none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- hash: 3
85
- segments:
86
- - 0
87
- version: "0"
88
- requirement: *id005
89
- name: rspec
90
- - !ruby/object:Gem::Dependency
91
71
  prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
92
86
  type: :development
93
- version_requirements: &id006 !ruby/object:Gem::Requirement
94
- none: false
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- hash: 3
99
- segments:
100
- - 0
101
- version: "0"
102
- requirement: *id006
103
- name: guard
104
- - !ruby/object:Gem::Dependency
105
87
  prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: guard
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
106
102
  type: :development
107
- version_requirements: &id007 !ruby/object:Gem::Requirement
108
- none: false
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- hash: 3
113
- segments:
114
- - 0
115
- version: "0"
116
- requirement: *id007
117
- name: guard-rspec
118
- - !ruby/object:Gem::Dependency
119
103
  prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: guard-rspec
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
120
118
  type: :development
121
- version_requirements: &id008 !ruby/object:Gem::Requirement
122
- none: false
123
- requirements:
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- hash: 3
127
- segments:
128
- - 0
129
- version: "0"
130
- requirement: *id008
131
- name: rake
132
- - !ruby/object:Gem::Dependency
133
119
  prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rake
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
134
  type: :development
135
- version_requirements: &id009 !ruby/object:Gem::Requirement
136
- none: false
137
- requirements:
138
- - - ">="
139
- - !ruby/object:Gem::Version
140
- hash: 3
141
- segments:
142
- - 0
143
- version: "0"
144
- requirement: *id009
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
145
143
  name: fakeweb
146
- description: Use the rdxport interface to retrieve Groups, create/edit/retrieve Carts and Cuts, import Cut sound.
147
- email:
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ description: Use the rdxport interface to retrieve Groups, create/edit/retrieve Carts
159
+ and Cuts, import Cut sound.
160
+ email:
148
161
  - alban@tryphon.eu
149
162
  executables: []
150
-
151
163
  extensions: []
152
-
153
164
  extra_rdoc_files: []
154
-
155
- files:
165
+ files:
156
166
  - .gitignore
157
167
  - COPYING
158
168
  - COPYRIGHT
@@ -161,7 +171,6 @@ files:
161
171
  - README.md
162
172
  - Rakefile
163
173
  - lib/rivendell-api.rb
164
- - lib/rivendell-api/version.rb
165
174
  - lib/rivendell/api.rb
166
175
  - lib/rivendell/api/cart.rb
167
176
  - lib/rivendell/api/cut.rb
@@ -173,6 +182,7 @@ files:
173
182
  - spec/fixtures/rdxport_add_cut.xml
174
183
  - spec/fixtures/rdxport_edit_cart.xml
175
184
  - spec/fixtures/rdxport_import.xml
185
+ - spec/fixtures/rdxport_list_carts-single-cart.xml
176
186
  - spec/fixtures/rdxport_list_carts.xml
177
187
  - spec/fixtures/rdxport_list_cuts.xml
178
188
  - spec/fixtures/rdxport_list_groups.xml
@@ -184,43 +194,41 @@ files:
184
194
  - tasks/rspec.rake
185
195
  homepage: http://projects.tryphon.eu/rivendell-api
186
196
  licenses: []
187
-
188
197
  post_install_message:
189
198
  rdoc_options: []
190
-
191
- require_paths:
199
+ require_paths:
192
200
  - lib
193
- required_ruby_version: !ruby/object:Gem::Requirement
201
+ required_ruby_version: !ruby/object:Gem::Requirement
194
202
  none: false
195
- requirements:
196
- - - ">="
197
- - !ruby/object:Gem::Version
198
- hash: 3
199
- segments:
203
+ requirements:
204
+ - - ! '>='
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ segments:
200
208
  - 0
201
- version: "0"
202
- required_rubygems_version: !ruby/object:Gem::Requirement
209
+ hash: 4594079732758632000
210
+ required_rubygems_version: !ruby/object:Gem::Requirement
203
211
  none: false
204
- requirements:
205
- - - ">="
206
- - !ruby/object:Gem::Version
207
- hash: 3
208
- segments:
212
+ requirements:
213
+ - - ! '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ segments:
209
217
  - 0
210
- version: "0"
218
+ hash: 4594079732758632000
211
219
  requirements: []
212
-
213
220
  rubyforge_project:
214
- rubygems_version: 1.8.24
221
+ rubygems_version: 1.8.23
215
222
  signing_key:
216
223
  specification_version: 3
217
224
  summary: Pilots Rivendell via http/xml API
218
- test_files:
225
+ test_files:
219
226
  - spec/fixtures/empty.wav
220
227
  - spec/fixtures/rdxport_add_cart.xml
221
228
  - spec/fixtures/rdxport_add_cut.xml
222
229
  - spec/fixtures/rdxport_edit_cart.xml
223
230
  - spec/fixtures/rdxport_import.xml
231
+ - spec/fixtures/rdxport_list_carts-single-cart.xml
224
232
  - spec/fixtures/rdxport_list_carts.xml
225
233
  - spec/fixtures/rdxport_list_cuts.xml
226
234
  - spec/fixtures/rdxport_list_groups.xml
@@ -1,5 +0,0 @@
1
- module Rivendell
2
- module Api
3
- VERSION = "0.0.1"
4
- end
5
- end