bigbluebutton-api-ruby 0.0.6 → 0.0.8

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/.gitignore CHANGED
@@ -2,4 +2,4 @@
2
2
  pkg
3
3
  *.*~
4
4
  test/config.yml
5
- doc/rdoc
5
+ doc/
@@ -1,4 +1,9 @@
1
- == 0.0.5
1
+ == 0.0.7
2
+
3
+ * New method get_api_version that returns the version of the server API (>= 0.7).
4
+ * New simplified hash syntax for get_meetings. See docs for details.
5
+
6
+ == 0.0.6
2
7
 
3
8
  * New method test_connection.
4
9
  * Added comparison method for APIs.
@@ -21,7 +21,7 @@ See CHANGELOG.rdoc
21
21
  Author:: Leonardo Crauss Daronco
22
22
  Email:: leonardodaronco@gmail.com
23
23
  Project:: GT-Mconf: Multiconference system for interoperable web and mobile @ PRAV Labs - UFRGS
24
- Home Page:: http://www.inf.ufrgs.br/prav/gtmconf/
24
+ Home Page:: http://www.inf.ufrgs.br/prav/gtmconf
25
25
  License:: Distributed under same terms as Ruby
26
26
 
27
27
  === Version 0.0.3 and below
@@ -2,8 +2,7 @@ $:.push File.expand_path("../lib", __FILE__)
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'bigbluebutton-api-ruby'
5
- s.version = '0.0.6'
6
- s.has_rdoc = true
5
+ s.version = '0.0.8'
7
6
  s.extra_rdoc_files = ['README.rdoc', 'LICENSE', 'CHANGELOG.rdoc']
8
7
  s.summary = 'Provides an interface to the BigBlueButton web meeting API (https://github.com/mconf/bigbluebutton-api-ruby)'
9
8
  s.description = s.summary
@@ -69,7 +69,7 @@ module BigBlueButton
69
69
  def moderator_url(meeting_id, user_name, password,
70
70
  user_id = nil, web_voice_conf = nil)
71
71
  warn "#{caller[0]}: moderator_url is deprecated and will soon be removed, please use join_meeting_url instead."
72
- join_meeting_url_url(meeting_id, user_name, password, user_id, web_voice_conf)
72
+ join_meeting_url(meeting_id, user_name, password, user_id, web_voice_conf)
73
73
  end
74
74
 
75
75
  # DEPRECATED
@@ -106,7 +106,27 @@ module BigBlueButton
106
106
  # welcome_message:: Welcome message to display in chat window
107
107
  # dialin_number:: Dial in number for conference using a regular phone
108
108
  # logout_url:: URL to return user to after exiting meeting
109
- # voice_bridge:: Voice conference number (>=0.7)
109
+ # voice_bridge:: Voice conference number (>= 0.7)
110
+ #
111
+ # === Return examples
112
+ #
113
+ # On successful creation:
114
+ #
115
+ # {
116
+ # :returncode=>"SUCCESS", :meetingID=>"bigbluebutton-api-ruby-test3",
117
+ # :attendeePW=>1234, :moderatorPW=>4321, :hasBeenForciblyEnded=>"false",
118
+ # :messageKey=>{}, :message=>{}
119
+ # }
120
+ #
121
+ # Meeting that was just forcibly ended:
122
+ #
123
+ # {
124
+ # :returncode=>"SUCCESS", :meetingID=>"bigbluebutton-api-ruby-test3",
125
+ # :attendeePW=>1234, :moderatorPW=>4321, :hasBeenForciblyEnded=>"true",
126
+ # :messageKey=>"duplicateWarning",
127
+ # :message=>"This conference was already in existence and may currently be in progress."
128
+ # }
129
+ #
110
130
  # TODO check if voice_bridge exists in 0.64
111
131
  def create_meeting(meeting_name, meeting_id, moderator_password, attendee_password,
112
132
  welcome_message = nil, dial_number = nil, logout_url = nil,
@@ -120,9 +140,20 @@ module BigBlueButton
120
140
  send_api_request(:create, params)
121
141
  end
122
142
 
123
- # Ends an existing meeting. Throws BigBlueButtonException on failure.
143
+ # Ends an existing meeting. Throws BigBlueButtonException on failure.
124
144
  # meeting_id:: Unique identifier for the meeting
125
145
  # moderator_password:: Moderator password
146
+ #
147
+ # === Return examples
148
+ #
149
+ # On success:
150
+ #
151
+ # {
152
+ # :returncode=>"SUCCESS", :messageKey=>"sentEndMeetingRequest",
153
+ # :message=>"A request to end the meeting was sent. Please wait a few seconds, and then use the getMeetingInfo
154
+ # or isMeetingRunning API calls to verify that it was ended."
155
+ # }
156
+ #
126
157
  def end_meeting(meeting_id, moderator_password)
127
158
  send_api_request(:end, { :meetingID => meeting_id, :password => moderator_password } )
128
159
  end
@@ -168,21 +199,66 @@ module BigBlueButton
168
199
  send_api_request(:getMeetingInfo, { :meetingID => meeting_id, :password => password } )
169
200
  end
170
201
 
171
- # Returns a hash object containing the meeting information.
172
- # See the API documentation for details on the return XML
173
- # (http://code.google.com/p/bigbluebutton/wiki/API).
202
+ # Returns a hash object containing information about the meetings currently existent in the BBB
203
+ # server, either they are running or not.
204
+ #
205
+ # === Return examples
206
+ #
207
+ # Server with one or more meetings:
208
+ #
209
+ # { :returncode => "SUCCESS",
210
+ # :meetings => [
211
+ # {:meetingID=>"Demo Meeting", :attendeePW=>"ap", :moderatorPW=>"mp", :hasBeenForciblyEnded=>"false", :running=>"true"},
212
+ # {:meetingID=>"I was ended Meeting", :attendeePW=>"pass", :moderatorPW=>"pass", :hasBeenForciblyEnded=>"true", :running=>"false"}
213
+ # ]
214
+ # }
215
+ #
216
+ # Server with no meetings:
217
+ #
218
+ # {:returncode=>"SUCCESS", :meetings=>[], :messageKey=>"noMeetings", :message=>"no meetings were found on this server"}
219
+ #
174
220
  def get_meetings
175
- send_api_request(:getMeetings, { :random => rand(9999999999) } )
221
+ response = send_api_request(:getMeetings, { :random => rand(9999999999) } )
222
+
223
+ # simplify the hash making a node :meetings with an array with all meetings
224
+ node = response[:meetings][:meeting]
225
+ if response[:meetings].empty?
226
+ meetings = []
227
+ else
228
+ if node.kind_of?(Array)
229
+ meetings = node
230
+ else
231
+ meetings = []
232
+ meetings << node
233
+ end
234
+ end
235
+ response[:meetings] = meetings
236
+
237
+ response
238
+ end
239
+
240
+ # Returns the API version (as string) of the associated server. This actually returns
241
+ # the version requested to the BBB server, and not the version set by the user in
242
+ # the initialization.
243
+ #
244
+ # Works for BBB >= 0.7 only. For earlier versions, returns an empty string.
245
+ def get_api_version
246
+ response = send_api_request(:index)
247
+ if response[:returncode] == "SUCCESS"
248
+ response[:version]
249
+ else
250
+ ""
251
+ end
176
252
  end
177
253
 
178
254
  # Make a simple request to the server to test the connection
179
- # TODO implement test for version 0.64
180
255
  def test_connection
181
256
  if @version == '0.7'
182
257
  response = send_api_request(:index)
183
258
  response[:returncode] == "SUCCESS"
184
259
  else
185
- true
260
+ response = get_meetings
261
+ response[:returncode] == "SUCCESS"
186
262
  end
187
263
  end
188
264
 
@@ -33,21 +33,17 @@ def general_test
33
33
  Kernel.exit!
34
34
  end
35
35
 
36
+ puts
37
+ puts "---------------------------------------------------"
38
+ version = @api.get_api_version
39
+ puts "The API version of your server is #{version}"
40
+
36
41
  puts
37
42
  puts "---------------------------------------------------"
38
43
  response = @api.get_meetings
39
44
  puts "Existent meetings in your server:"
40
- if response[:meetings].empty?
41
- puts "No meetings found"
42
- else
43
- node = response[:meetings][:meeting]
44
- if node.kind_of?(Array)
45
- node.each do |m|
46
- puts " " + m[:meetingID] + ": " + m.inspect
47
- end
48
- else
49
- puts " " + node[:meetingID] + ": " + node.inspect
50
- end
45
+ response[:meetings].each do |m|
46
+ puts " " + m[:meetingID] + ": " + m.inspect
51
47
  end
52
48
 
53
49
  puts
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bigbluebutton-api-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.8
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: 2011-04-05 00:00:00.000000000Z
13
+ date: 2011-04-06 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
17
- requirement: &83620660 !ruby/object:Gem::Requirement
17
+ requirement: &78256160 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: 1.4.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *83620660
25
+ version_requirements: *78256160
26
26
  description: Provides an interface to the BigBlueButton web meeting API (https://github.com/mconf/bigbluebutton-api-ruby)
27
27
  email:
28
28
  - leonardodaronco@gmail.com
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  version: '0'
65
65
  requirements: []
66
66
  rubyforge_project:
67
- rubygems_version: 1.7.1
67
+ rubygems_version: 1.7.2
68
68
  signing_key:
69
69
  specification_version: 3
70
70
  summary: Provides an interface to the BigBlueButton web meeting API (https://github.com/mconf/bigbluebutton-api-ruby)