bigbluebutton-api-ruby 1.4.0 → 1.6.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -0
- data/CHANGELOG.md +157 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -4
- data/LICENSE +1 -1
- data/README.md +96 -0
- data/Rakefile +2 -2
- data/bigbluebutton-api-ruby.gemspec +9 -9
- data/examples/get_version_example.rb +1 -3
- data/examples/prepare.rb +1 -1
- data/features/config.yml.example +4 -6
- data/features/step_definitions/common_steps.rb +2 -3
- data/lib/bigbluebutton_api.rb +35 -11
- data/lib/bigbluebutton_config_xml.rb +5 -4
- data/spec/bigbluebutton_api_0.81_spec.rb +2 -2
- data/spec/bigbluebutton_api_0.9_spec.rb +2 -2
- data/spec/bigbluebutton_api_spec.rb +33 -12
- data/spec/bigbluebutton_config_xml_spec.rb +30 -4
- metadata +15 -14
- data/CHANGELOG.rdoc +0 -97
- data/README.rdoc +0 -65
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 473e9baacfe50dd02c2de2799d1f9ef36d7fa086
|
4
|
+
data.tar.gz: f8a35a9a314631bb3386382322fa2d5bee8c3a17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af669d4c0ea78a687001e1b0d1449da3a820f76c846ca3535942f2c56c86c1854cc3cd2d4d2614408b3cd1a3c233f2ef42683bd9bc9c7345cbeefd80dc4fbc99
|
7
|
+
data.tar.gz: 283b0c7fd0d864f7b674372c3f85887fd6b4d67eab6e7ba686abb1b4c017740b94289b2f84e1e20fe35d82efe2396f9b9c19704a751dab7c7130b9e7ed662f1b
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
# Change Log
|
2
|
+
|
3
|
+
|
4
|
+
------------------------------------
|
5
|
+
|
6
|
+
All tickets below use references to IDs in our old issue tracking system.
|
7
|
+
To find them, search for their description or ID in the new issue tracker.
|
8
|
+
|
9
|
+
------------------------------------
|
10
|
+
|
11
|
+
|
12
|
+
## [1.5.0] - 2016-04-07
|
13
|
+
|
14
|
+
* Add 1.0 as a supported version of BigBlueButton.
|
15
|
+
* [#1686] Automatically set the version number of a server by fetching it from
|
16
|
+
its API.
|
17
|
+
* [#1686] Fix comparison of config.xml strings that would sometimes thing XMLs
|
18
|
+
were different in cases when they were not.
|
19
|
+
* [#1695] Add support for servers that use HTTPS.
|
20
|
+
|
21
|
+
## [1.4.0] - 2015-07-20
|
22
|
+
|
23
|
+
* Updated default ruby version to 2.2.0.
|
24
|
+
* Add support for BigBlueButton 0.9 (includes all 0.9.x). Consists only in
|
25
|
+
accepting the version "0.9", since this new API version doesn't break
|
26
|
+
compatibility with the previous version and also doesn't add new API
|
27
|
+
calls.
|
28
|
+
|
29
|
+
## [1.3.0] - 2014-05-11
|
30
|
+
|
31
|
+
* Drop support to BigBlueButton 0.7 and add BigBlueButton to 0.81. Includes
|
32
|
+
support to the new API calls `getDefaultConfigXML` and `setConfigXML`.
|
33
|
+
* Reviewed all methods responses (some changed a bit) and documentation.
|
34
|
+
* Allow non standard options to be passed to **all** API calls.
|
35
|
+
* Removed method `join_meeting` that was usually not used. Should always use
|
36
|
+
`join_meeting_url`.
|
37
|
+
* Moved the hash extension method `from_xml` to its own class to prevent
|
38
|
+
conflicts with Rails. See
|
39
|
+
https://github.com/mconf/bigbluebutton-api-ruby/pull/6.
|
40
|
+
|
41
|
+
## [1.2.0] - 2013-03-13
|
42
|
+
|
43
|
+
* Allow non standard options to be passed to some API calls. These API calls are: create_meeting, join_meeting_url, join_meeting, get_recordings.
|
44
|
+
Useful for development of for custom versions of BigBlueButton.
|
45
|
+
* Accept :record as boolean in create_meeting
|
46
|
+
* Better formatting of data returned by get_recordings
|
47
|
+
|
48
|
+
## [1.1.1] - 2013-01-30
|
49
|
+
|
50
|
+
* BigBlueButtonApi can now receive http headers to be sent in all get/post
|
51
|
+
requests
|
52
|
+
|
53
|
+
## [1.1.0] - 2012-05-04
|
54
|
+
|
55
|
+
* Updated ruby to 1.9.3-194.
|
56
|
+
* Support to BigBlueButton 0.4 rc1.
|
57
|
+
|
58
|
+
## [1.0.0] - 2012-05-04
|
59
|
+
|
60
|
+
* Version 0.1.0 renamed to 1.0.0.
|
61
|
+
|
62
|
+
## [0.1.0] - 2011-11-25
|
63
|
+
|
64
|
+
* Support to BigBlueButton 0.8:
|
65
|
+
* New methods for recordings: get_recordings, publish_recordings,
|
66
|
+
delete_recordings
|
67
|
+
* Pre-upload of slides in create_meeting
|
68
|
+
* New parameters added in the already existent methods
|
69
|
+
* For more information see BigBlueButton docs at
|
70
|
+
http://code.google.com/p/bigbluebutton/wiki/API#Version_0.8
|
71
|
+
* Method signature changes: create_meeting, join_meeting_url and
|
72
|
+
join_meeting. Optional parameters are now passed using a hash.
|
73
|
+
* Integration tests for the entire library using cucumber.
|
74
|
+
* Changed the XML parser to xml-simple (especially to solve issues with
|
75
|
+
CDATA values).
|
76
|
+
|
77
|
+
## [0.0.11] - 2011-09-01
|
78
|
+
|
79
|
+
* The file "bigbluebutton-api" was renamed to "bigbluebutton_api". All
|
80
|
+
"require" calls must be updated.
|
81
|
+
* Splitted the library in more files (more modular) and created rspec tests
|
82
|
+
for it.
|
83
|
+
* Added a BigBlueButtonApi.timeout attribute to timeout get requests and
|
84
|
+
avoid blocks when the server is down. Defaults to 2 secs.
|
85
|
+
* New method last_http_response to access the last HTTP response object.
|
86
|
+
* Automatically detects the BBB server version if not informed by the user.
|
87
|
+
|
88
|
+
## [0.0.10] - 2011-04-28
|
89
|
+
|
90
|
+
* Returning hash now will **always** have these 3 values: :returncode
|
91
|
+
(boolean), :messageKey (string) and :message (string).
|
92
|
+
* Some values in the hash are now converted to a fixed variable type to
|
93
|
+
avoid inconsistencies:
|
94
|
+
* :meetingID (string)
|
95
|
+
* :attendeePW (string)
|
96
|
+
* :moderatorPW (string)
|
97
|
+
* :running (boolean)
|
98
|
+
* :hasBeenForciblyEnded (boolean)
|
99
|
+
* :endTime and :startTime (DateTime or nil)
|
100
|
+
|
101
|
+
## [0.0.9] - 2011-04-08
|
102
|
+
|
103
|
+
* Simplied "attendees" part of the hash returned in get_meeting_info. Same
|
104
|
+
thing done for get_meetings.
|
105
|
+
|
106
|
+
## [0.0.8] - 2011-04-06
|
107
|
+
|
108
|
+
* New method get_api_version that returns the version of the server API (>= 0.7).
|
109
|
+
* New simplified hash syntax for get_meetings. See docs for details.
|
110
|
+
|
111
|
+
## [0.0.7] - 2011-04-06
|
112
|
+
|
113
|
+
## [0.0.6] - 2011-04-05
|
114
|
+
|
115
|
+
* New method test_connection.
|
116
|
+
* Added comparison method for APIs.
|
117
|
+
* Methods attendee_url and moderator_url deprecated. Use join_meeting_url.
|
118
|
+
* Better exception throwing when the user is unreachable or the response is incorrect.
|
119
|
+
* BigBlueButtonException has now a "key" attribute to store the
|
120
|
+
"messageKey" returned by BBB in failures.
|
121
|
+
|
122
|
+
## 0.0.4
|
123
|
+
|
124
|
+
* Added support for BigBlueButton 0.7.
|
125
|
+
* Gem renamed from 'bigbluebutton' to 'bigbluebutton-api-ruby'.
|
126
|
+
* API functions now return a hash and instead of the XML returned by BBB.
|
127
|
+
The XML is converted to a hash that uses symbols as keys and groups keys
|
128
|
+
with the same name.
|
129
|
+
|
130
|
+
## 0.0.3
|
131
|
+
|
132
|
+
* Fixes module issue preventing proper throwing of exceptions.
|
133
|
+
|
134
|
+
## 0.0.1
|
135
|
+
|
136
|
+
* This is the first version of this gem. It provides an implementation of
|
137
|
+
the 0.64 bbb API, with the following exceptions:
|
138
|
+
* Does not implement meeting token, and instead relies on meeting id as
|
139
|
+
the unique identifier for a meeting.
|
140
|
+
* Documentation suggests there is way to call join_meeting as API call
|
141
|
+
(instead of browser URL). This call currently does not work as
|
142
|
+
documented.
|
143
|
+
|
144
|
+
[1.5.0]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v1.4.0...v1.5.0
|
145
|
+
[1.4.0]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v1.3.0...v1.4.0
|
146
|
+
[1.3.0]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v1.2.0...v1.3.0
|
147
|
+
[1.2.0]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v1.1.1...v1.2.0
|
148
|
+
[1.1.1]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v1.1.0...v1.1.1
|
149
|
+
[1.1.0]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v1.0.0...v1.1.0
|
150
|
+
[1.0.0]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v0.1.0...v1.0.0
|
151
|
+
[0.1.0]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v0.0.11...v0.1.0
|
152
|
+
[0.0.11]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v0.0.10...v0.0.11
|
153
|
+
[0.0.10]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v0.0.9...v0.0.10
|
154
|
+
[0.0.9]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v0.0.8...v0.0.9
|
155
|
+
[0.0.8]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v0.0.7...v0.0.8
|
156
|
+
[0.0.7]: https://github.com/mconf/bigbluebutton-api-ruby/compare/v0.0.6...v0.0.7
|
157
|
+
[0.0.6]: https://github.com/mconf/bigbluebutton-api-ruby/compare/b586c4726d32e9c30139357bcbe2067f868ff36c...v0.0.6
|
data/Gemfile
CHANGED
@@ -11,6 +11,6 @@ group :development, :test do
|
|
11
11
|
gem 'rspec', '~> 2.10'
|
12
12
|
gem 'cucumber-rails'
|
13
13
|
gem 'forgery'
|
14
|
-
gem 'bbbot-ruby', :git => '
|
14
|
+
gem 'bbbot-ruby', :git => 'https://github.com/mconf/bbbot-ruby.git'
|
15
15
|
# gem 'rails_best_practices'
|
16
16
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
GIT
|
2
|
-
remote:
|
2
|
+
remote: https://github.com/mconf/bbbot-ruby.git
|
3
3
|
revision: fcfd8c4c71371653335a46d7462ee14a9301f546
|
4
4
|
specs:
|
5
5
|
bbbot-ruby (0.0.1)
|
@@ -7,8 +7,8 @@ GIT
|
|
7
7
|
PATH
|
8
8
|
remote: .
|
9
9
|
specs:
|
10
|
-
bigbluebutton-api-ruby (1.
|
11
|
-
xml-simple (
|
10
|
+
bigbluebutton-api-ruby (1.6.0)
|
11
|
+
xml-simple (~> 1.1)
|
12
12
|
|
13
13
|
GEM
|
14
14
|
remote: http://rubygems.org/
|
@@ -69,7 +69,7 @@ GEM
|
|
69
69
|
multi_json (~> 1.0)
|
70
70
|
rubyzip
|
71
71
|
term-ansicolor (1.0.7)
|
72
|
-
xml-simple (1.1.
|
72
|
+
xml-simple (1.1.5)
|
73
73
|
xpath (0.1.4)
|
74
74
|
nokogiri (~> 1.3)
|
75
75
|
|
data/LICENSE
CHANGED
data/README.md
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
# bigbluebutton-api-ruby [<img src="http://travis-ci.org/mconf/bigbluebutton-api-ruby.png"/>](http://travis-ci.org/mconf/bigbluebutton-api-ruby)
|
2
|
+
|
3
|
+
This is a ruby gem that provides access to the API of
|
4
|
+
[BigBlueButton](http://bigbluebutton.org). See the documentation of the API
|
5
|
+
[here](http://code.google.com/p/bigbluebutton/wiki/API).
|
6
|
+
|
7
|
+
It enables a ruby application to interact with BigBlueButton by calling ruby
|
8
|
+
methods instead of HTTP requests, making it a lot easier to interact with
|
9
|
+
BigBlueButton. It also formats the responses to a ruby-friendly format and
|
10
|
+
includes helper classes to deal with more complicated API calls, such as the
|
11
|
+
pre-upload of slides.
|
12
|
+
|
13
|
+
A few features it has:
|
14
|
+
|
15
|
+
* Provides methods to perform all API calls and get the responses;
|
16
|
+
* Converts the XML responses to ruby hashes, that are easier to work with;
|
17
|
+
* Converts the string values returned to native ruby types. For instance:
|
18
|
+
* Dates are converted DateTime objects (e.g. "Thu Sep 01 17:51:42 UTC 2011");
|
19
|
+
* Response codes are converted to boolean (e.g. "SUCCESS" becomes `true`);
|
20
|
+
* Deals with errors (e.g. timeouts) throwing `BigBlueButtonException` exceptions;
|
21
|
+
* Support to multiple BigBlueButton API versions (see below).
|
22
|
+
|
23
|
+
## Supported versions
|
24
|
+
|
25
|
+
This gem is mainly used with [Mconf-Web](https://github.com/mconf/mconf-web) through
|
26
|
+
[BigbluebuttonRails](https://github.com/mconf/bigbluebutton_rails).
|
27
|
+
You can always use it as a reference for verions of dependencies and examples of how
|
28
|
+
to use the gem.
|
29
|
+
|
30
|
+
### BigBlueButton
|
31
|
+
|
32
|
+
The current version of this gem supports *all* the following versions of
|
33
|
+
BigBlueButton:
|
34
|
+
|
35
|
+
* 1.0
|
36
|
+
* 0.9 (includes all 0.9.x)
|
37
|
+
* 0.81
|
38
|
+
* 0.8
|
39
|
+
|
40
|
+
Older versions:
|
41
|
+
|
42
|
+
* 0.7 (including 0.7, 0.71 and 0.71a): The last version with support to 0.7*
|
43
|
+
is [version
|
44
|
+
1.2.0](https://github.com/mconf/bigbluebutton-api-ruby/tree/v1.2.0). It
|
45
|
+
supports versions 0.7 and 0.8.
|
46
|
+
* 0.64: see the branch `api-0.64`. The last version with support to 0.64 is
|
47
|
+
[version
|
48
|
+
0.0.10](https://github.com/mconf/bigbluebutton-api-ruby/tree/v0.0.10). It
|
49
|
+
supports versions 0.64 and 0.7.
|
50
|
+
|
51
|
+
### Ruby
|
52
|
+
|
53
|
+
Tested in rubies:
|
54
|
+
|
55
|
+
* ruby-2.2 **recommended**
|
56
|
+
* ruby-2.1
|
57
|
+
* ruby-2.0 (p353)
|
58
|
+
* ruby-1.9.3 (p484)
|
59
|
+
* ruby-1.9.2 (p290)
|
60
|
+
|
61
|
+
Use these versions to be sure it will work. Other patches and patch versions of these
|
62
|
+
rubies (e.g. ruby 1.9.3-p194 or 2.1.2) should work as well.
|
63
|
+
|
64
|
+
## Releases
|
65
|
+
|
66
|
+
For a list of releases and release notes see
|
67
|
+
[CHANGELOG.md](https://github.com/mconf/bigbluebutton-api-ruby/blob/master/CHANGELOG.md).
|
68
|
+
|
69
|
+
## Development
|
70
|
+
|
71
|
+
Information for developers of `bigbluebutton-api-ruby` can be found in [our
|
72
|
+
wiki](https://github.com/mconf/bigbluebutton-api-ruby/wiki).
|
73
|
+
|
74
|
+
The development of this gem is guided by the requirements of the project
|
75
|
+
Mconf. To know more about it visit the [project's
|
76
|
+
wiki](https://github.com/mconf/wiki/wiki).
|
77
|
+
|
78
|
+
## License
|
79
|
+
|
80
|
+
Distributed under The MIT License (MIT). See
|
81
|
+
[LICENSE](https://github.com/mconf/bigbluebutton-api-ruby/blob/master/LICENSE)
|
82
|
+
for the latest license, valid for all versions after 0.0.4 (including it), and
|
83
|
+
[LICENSE_003](https://github.com/mconf/bigbluebutton-api-ruby/blob/master/LICENSE_003)
|
84
|
+
for version 0.0.3 and all the previous versions.
|
85
|
+
|
86
|
+
## Contact
|
87
|
+
|
88
|
+
This project is developed as part of Mconf (http://mconf.org).
|
89
|
+
|
90
|
+
Mailing list:
|
91
|
+
* mconf-dev@googlegroups.com
|
92
|
+
|
93
|
+
Contact:
|
94
|
+
* Mconf: A scalable opensource multiconference system for web and mobile devices
|
95
|
+
* PRAV Labs - UFRGS - Porto Alegre - Brazil
|
96
|
+
* http://www.inf.ufrgs.br/prav/gtmconf
|
data/Rakefile
CHANGED
@@ -30,8 +30,8 @@ Cucumber::Rake::Task.new do |t|
|
|
30
30
|
end
|
31
31
|
|
32
32
|
RDoc::Task.new do |rdoc|
|
33
|
-
rdoc.rdoc_files.include('README.
|
34
|
-
rdoc.main = "README.
|
33
|
+
rdoc.rdoc_files.include('README.md', 'LICENSE', 'LICENSE_003', 'CHANGELOG.md', 'lib/**/*.rb')
|
34
|
+
rdoc.main = "README.md"
|
35
35
|
rdoc.title = "bigbluebutton-api-ruby Docs"
|
36
36
|
rdoc.rdoc_dir = 'rdoc'
|
37
37
|
end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
$:.push File.expand_path("../lib", __FILE__)
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
|
-
s.name =
|
5
|
-
s.version =
|
6
|
-
s.licenses = [
|
7
|
-
s.extra_rdoc_files = [
|
8
|
-
s.summary =
|
9
|
-
s.description =
|
10
|
-
s.authors = [
|
11
|
-
s.email = [
|
4
|
+
s.name = "bigbluebutton-api-ruby"
|
5
|
+
s.version = "1.6.0"
|
6
|
+
s.licenses = ["MIT"]
|
7
|
+
s.extra_rdoc_files = ["README.md", "LICENSE", "LICENSE_003", "CHANGELOG.md"]
|
8
|
+
s.summary = "BigBlueButton integration for ruby"
|
9
|
+
s.description = "Provides methods to access BigBlueButton in a ruby application through its API"
|
10
|
+
s.authors = ["Mconf", "Leonardo Crauss Daronco"]
|
11
|
+
s.email = ["contact@mconf.org", "leonardodaronco@gmail.com"]
|
12
12
|
s.homepage = "https://github.com/mconf/bigbluebutton-api-ruby/"
|
13
13
|
s.bindir = "bin"
|
14
14
|
s.files = `git ls-files`.split("\n")
|
15
15
|
s.require_paths = ["lib"]
|
16
16
|
|
17
|
-
s.add_runtime_dependency(
|
17
|
+
s.add_runtime_dependency("xml-simple", "~> 1.1")
|
18
18
|
end
|
@@ -7,11 +7,9 @@ require 'prepare'
|
|
7
7
|
begin
|
8
8
|
prepare
|
9
9
|
|
10
|
-
@api = BigBlueButton::BigBlueButtonApi.new(@config['bbb_url'], @config['bbb_salt'], nil, true)
|
11
|
-
|
12
10
|
puts
|
13
11
|
puts "---------------------------------------------------"
|
14
|
-
puts "The version of your BBB server is: #{@api.
|
12
|
+
puts "The version of your BBB server is: #{@api.get_api_version}"
|
15
13
|
rescue Exception => ex
|
16
14
|
puts "Failed with error #{ex.message}"
|
17
15
|
puts ex.backtrace
|
data/examples/prepare.rb
CHANGED
@@ -34,5 +34,5 @@ def prepare
|
|
34
34
|
puts server.inspect
|
35
35
|
puts
|
36
36
|
|
37
|
-
@api = BigBlueButton::BigBlueButtonApi.new(server['url'], server['
|
37
|
+
@api = BigBlueButton::BigBlueButtonApi.new(server['url'], server['secret'], server['version'].to_s, true)
|
38
38
|
end
|
data/features/config.yml.example
CHANGED
@@ -10,11 +10,9 @@ timeout_ending: 30
|
|
10
10
|
timeout_bot_start: 60
|
11
11
|
|
12
12
|
servers:
|
13
|
-
test-install
|
14
|
-
salt: '8cd8ef52e8e101574e400365b55e11a6'
|
13
|
+
test-install:
|
15
14
|
url: 'http://test-install.blindsidenetworks.com/bigbluebutton/api'
|
16
|
-
|
17
|
-
bbb-
|
18
|
-
salt: 'lka98f52e8akdlsoie400365b55e98s7'
|
15
|
+
secret: '8cd8ef52e8e101574e400365b55e11a6'
|
16
|
+
bbb-other:
|
19
17
|
url: 'http://yourserver.com/bigbluebutton/api'
|
20
|
-
|
18
|
+
secret: 'lka98f52e8akdlsoie400365b55e98s7'
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
When /^the default BigBlueButton server$/ do
|
4
4
|
@api = BigBlueButton::BigBlueButtonApi.new(@config_server['url'],
|
5
|
-
@config_server['
|
5
|
+
@config_server['secret'],
|
6
6
|
@config_server['version'].to_s,
|
7
7
|
@config['debug'])
|
8
8
|
@api.timeout = @config['timeout_req']
|
@@ -48,8 +48,7 @@ When /^the meeting is running$/ do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
When /^the meeting is running with (\d+) attendees$/ do |count|
|
51
|
-
|
52
|
-
BigBlueButtonBot.new(@api, @req.id, mobile_salt, count.to_i, @config['timeout_bot_start'])
|
51
|
+
BigBlueButtonBot.new(@api, @req.id, nil, count.to_i, @config['timeout_bot_start'])
|
53
52
|
end
|
54
53
|
|
55
54
|
When /^the response is an error with the key "(.*)"$/ do |key|
|
data/lib/bigbluebutton_api.rb
CHANGED
@@ -12,7 +12,7 @@ require 'bigbluebutton_config_layout'
|
|
12
12
|
|
13
13
|
module BigBlueButton
|
14
14
|
|
15
|
-
# This class provides access to the BigBlueButton API. For more details see README.
|
15
|
+
# This class provides access to the BigBlueButton API. For more details see README.
|
16
16
|
#
|
17
17
|
# Sample usage of the API is as follows:
|
18
18
|
# 1. Create a meeting with create_meeting;
|
@@ -44,8 +44,8 @@ module BigBlueButton
|
|
44
44
|
# URL to a BigBlueButton server (e.g. http://demo.bigbluebutton.org/bigbluebutton/api)
|
45
45
|
attr_accessor :url
|
46
46
|
|
47
|
-
#
|
48
|
-
attr_accessor :
|
47
|
+
# Shared secret for this server
|
48
|
+
attr_accessor :secret
|
49
49
|
|
50
50
|
# API version e.g. 0.81
|
51
51
|
attr_accessor :version
|
@@ -65,19 +65,20 @@ module BigBlueButton
|
|
65
65
|
|
66
66
|
# Initializes an instance
|
67
67
|
# url:: URL to a BigBlueButton server (e.g. http://demo.bigbluebutton.org/bigbluebutton/api)
|
68
|
-
#
|
68
|
+
# secret:: Shared secret for this server
|
69
69
|
# version:: API version e.g. 0.81
|
70
|
-
def initialize(url,
|
71
|
-
@supported_versions = ['0.8', '0.81', '0.9']
|
70
|
+
def initialize(url, secret, version=nil, debug=false)
|
71
|
+
@supported_versions = ['0.8', '0.81', '0.9', '1.0']
|
72
72
|
@url = url
|
73
|
-
@
|
73
|
+
@secret = secret
|
74
74
|
@debug = debug
|
75
75
|
@timeout = 10 # default timeout for api requests
|
76
76
|
@request_headers = {} # http headers sent in all requests
|
77
77
|
|
78
|
-
|
78
|
+
version = nil if version && version.strip.empty?
|
79
|
+
@version = nearest_version(version || get_api_version)
|
79
80
|
unless @supported_versions.include?(@version)
|
80
|
-
|
81
|
+
puts "BigBlueButtonAPI: detected unsupported version, using the closest one that is supported (#{@version})"
|
81
82
|
end
|
82
83
|
|
83
84
|
puts "BigBlueButtonAPI: Using version #{@version}" if @debug
|
@@ -601,7 +602,7 @@ module BigBlueButton
|
|
601
602
|
# API's are equal if all the following attributes are equal.
|
602
603
|
def ==(other)
|
603
604
|
r = true
|
604
|
-
[:url, :supported_versions, :
|
605
|
+
[:url, :supported_versions, :secret, :version, :debug].each do |param|
|
605
606
|
r = r && self.send(param) == other.send(param)
|
606
607
|
end
|
607
608
|
r
|
@@ -637,7 +638,7 @@ module BigBlueButton
|
|
637
638
|
params_string = params.map{ |k,v| "#{k}=" + CGI::escape(v.to_s) unless k.nil? || v.nil? }.join("&")
|
638
639
|
|
639
640
|
# checksum calc
|
640
|
-
checksum_param = params_string + @
|
641
|
+
checksum_param = params_string + @secret
|
641
642
|
checksum_param = method.to_s + checksum_param
|
642
643
|
checksum = Digest::SHA1.hexdigest(checksum_param)
|
643
644
|
|
@@ -704,6 +705,8 @@ module BigBlueButton
|
|
704
705
|
http = Net::HTTP.new(url_parsed.host, url_parsed.port)
|
705
706
|
http.open_timeout = @timeout
|
706
707
|
http.read_timeout = @timeout
|
708
|
+
http.use_ssl = true if url_parsed.scheme.downcase == 'https'
|
709
|
+
|
707
710
|
if data.nil?
|
708
711
|
response = http.get(url_parsed.request_uri, @request_headers)
|
709
712
|
else
|
@@ -723,5 +726,26 @@ module BigBlueButton
|
|
723
726
|
response
|
724
727
|
end
|
725
728
|
|
729
|
+
def nearest_version(target)
|
730
|
+
version = target
|
731
|
+
|
732
|
+
# 0.81 in BBB is actually < than 0.9, but not when comparing here
|
733
|
+
# so normalize x.xx versions to x.x.x
|
734
|
+
match = version.match(/(\d)\.(\d)(\d)/)
|
735
|
+
version = "#{match[1]}.#{match[2]}.#{match[3]}" if match
|
736
|
+
|
737
|
+
# we don't allow older versions than the one supported, use an old version of the gem for that
|
738
|
+
if Gem::Version.new(version) < Gem::Version.new(@supported_versions[0])
|
739
|
+
raise BigBlueButtonException.new("BigBlueButton error: Invalid API version #{version}. Supported versions: #{@supported_versions.join(', ')}")
|
740
|
+
|
741
|
+
# allow newer versions by using the newest one we support
|
742
|
+
elsif Gem::Version.new(version) > Gem::Version.new(@supported_versions.last)
|
743
|
+
@supported_versions.last
|
744
|
+
|
745
|
+
else
|
746
|
+
target
|
747
|
+
end
|
748
|
+
end
|
749
|
+
|
726
750
|
end
|
727
751
|
end
|
@@ -25,13 +25,13 @@ module BigBlueButton
|
|
25
25
|
attr_accessor :xml
|
26
26
|
|
27
27
|
def initialize(xml)
|
28
|
-
@
|
28
|
+
@original_string = nil
|
29
29
|
@xml = nil
|
30
30
|
unless xml.nil?
|
31
31
|
opts = { 'ForceArray' => false, 'KeepRoot' => true }
|
32
32
|
begin
|
33
33
|
@xml = XmlSimple.xml_in(xml, opts)
|
34
|
-
@
|
34
|
+
@original_string = self.as_string.clone
|
35
35
|
rescue Exception => e
|
36
36
|
raise BigBlueButton::BigBlueButtonException.new("Error parsing the config XML. Error: #{e.message}")
|
37
37
|
end
|
@@ -60,7 +60,8 @@ module BigBlueButton
|
|
60
60
|
if tag
|
61
61
|
attr = find_attribute(tag, attr_name)
|
62
62
|
if attr
|
63
|
-
|
63
|
+
# saves always as string
|
64
|
+
tag[attr_name] = value.is_a?(String) ? value : value.to_s
|
64
65
|
else
|
65
66
|
nil
|
66
67
|
end
|
@@ -75,7 +76,7 @@ module BigBlueButton
|
|
75
76
|
|
76
77
|
def is_modified?
|
77
78
|
@xml and
|
78
|
-
|
79
|
+
self.as_string != @original_string
|
79
80
|
end
|
80
81
|
|
81
82
|
protected
|
@@ -5,10 +5,10 @@ describe BigBlueButton::BigBlueButtonApi do
|
|
5
5
|
|
6
6
|
# default variables and API object for all tests
|
7
7
|
let(:url) { "http://server.com" }
|
8
|
-
let(:
|
8
|
+
let(:secret) { "1234567890abcdefghijkl" }
|
9
9
|
let(:version) { "0.81" }
|
10
10
|
let(:debug) { false }
|
11
|
-
let(:api) { BigBlueButton::BigBlueButtonApi.new(url,
|
11
|
+
let(:api) { BigBlueButton::BigBlueButtonApi.new(url, secret, version, debug) }
|
12
12
|
|
13
13
|
describe "#get_default_config_xml" do
|
14
14
|
let(:response) { "<response><returncode>1</returncode></response>" }
|
@@ -5,10 +5,10 @@ describe BigBlueButton::BigBlueButtonApi do
|
|
5
5
|
|
6
6
|
# default variables and API object for all tests
|
7
7
|
let(:url) { "http://server.com" }
|
8
|
-
let(:
|
8
|
+
let(:secret) { "1234567890abcdefghijkl" }
|
9
9
|
let(:version) { "0.9" }
|
10
10
|
let(:debug) { false }
|
11
|
-
let(:api) { BigBlueButton::BigBlueButtonApi.new(url,
|
11
|
+
let(:api) { BigBlueButton::BigBlueButtonApi.new(url, secret, version, debug) }
|
12
12
|
|
13
13
|
describe "#create_meeting" do
|
14
14
|
context "accepts the new parameters" do
|
@@ -8,15 +8,15 @@ describe BigBlueButton::BigBlueButtonApi do
|
|
8
8
|
|
9
9
|
# default variables and API object for all tests
|
10
10
|
let(:url) { "http://server.com" }
|
11
|
-
let(:
|
11
|
+
let(:secret) { "1234567890abcdefghijkl" }
|
12
12
|
let(:debug) { false }
|
13
|
-
let(:api) { BigBlueButton::BigBlueButtonApi.new(url,
|
13
|
+
let(:api) { BigBlueButton::BigBlueButtonApi.new(url, secret, version, debug) }
|
14
14
|
|
15
15
|
describe "#initialize" do
|
16
16
|
context "standard initialization" do
|
17
|
-
subject { BigBlueButton::BigBlueButtonApi.new(url,
|
17
|
+
subject { BigBlueButton::BigBlueButtonApi.new(url, secret, version, debug) }
|
18
18
|
it { subject.url.should == url }
|
19
|
-
it { subject.
|
19
|
+
it { subject.secret.should == secret }
|
20
20
|
it { subject.version.should == version }
|
21
21
|
it { subject.debug.should == debug }
|
22
22
|
it { subject.timeout.should == 10 }
|
@@ -28,19 +28,40 @@ describe BigBlueButton::BigBlueButtonApi do
|
|
28
28
|
|
29
29
|
context "when the version is not informed, get it from the BBB server" do
|
30
30
|
before { BigBlueButton::BigBlueButtonApi.any_instance.should_receive(:get_api_version).and_return("0.8") }
|
31
|
-
subject { BigBlueButton::BigBlueButtonApi.new(url,
|
31
|
+
subject { BigBlueButton::BigBlueButtonApi.new(url, secret, nil) }
|
32
32
|
it { subject.version.should == "0.8" }
|
33
33
|
end
|
34
34
|
|
35
|
-
|
35
|
+
context "when the version informed is empty, get it from the BBB server" do
|
36
|
+
before { BigBlueButton::BigBlueButtonApi.any_instance.should_receive(:get_api_version).and_return("0.8") }
|
37
|
+
subject { BigBlueButton::BigBlueButtonApi.new(url, secret, " ") }
|
38
|
+
it { subject.version.should == "0.8" }
|
39
|
+
end
|
40
|
+
|
41
|
+
it "when the version is lower than the lowest supported, raise exception" do
|
42
|
+
expect {
|
43
|
+
BigBlueButton::BigBlueButtonApi.new(url, secret, "0.1", nil)
|
44
|
+
}.to raise_error(BigBlueButton::BigBlueButtonException)
|
45
|
+
end
|
46
|
+
|
47
|
+
it "when the version is higher than thew highest supported, use the highest supported" do
|
48
|
+
BigBlueButton::BigBlueButtonApi.new(url, secret, "5.0", nil).version.should eql('1.0')
|
49
|
+
end
|
50
|
+
|
51
|
+
it "compares versions in the format 'x.xx' properly" do
|
36
52
|
expect {
|
37
|
-
|
53
|
+
# if not comparing properly, 0.61 would be bigger than 0.9, for example
|
54
|
+
# comparing the way BBB does, it is lower, so will raise an exception
|
55
|
+
BigBlueButton::BigBlueButtonApi.new(url, secret, "0.61", nil)
|
38
56
|
}.to raise_error(BigBlueButton::BigBlueButtonException)
|
39
57
|
end
|
40
58
|
|
41
59
|
context "current supported versions" do
|
42
|
-
|
43
|
-
|
60
|
+
before {
|
61
|
+
BigBlueButton::BigBlueButtonApi.any_instance.should_receive(:get_api_version).and_return("0.9")
|
62
|
+
}
|
63
|
+
subject { BigBlueButton::BigBlueButtonApi.new(url, secret) }
|
64
|
+
it { subject.supported_versions.should == ["0.8", "0.81", "0.9", "1.0"] }
|
44
65
|
end
|
45
66
|
end
|
46
67
|
|
@@ -320,7 +341,7 @@ describe BigBlueButton::BigBlueButtonApi do
|
|
320
341
|
end
|
321
342
|
|
322
343
|
describe "#==" do
|
323
|
-
let(:api2) { BigBlueButton::BigBlueButtonApi.new(url,
|
344
|
+
let(:api2) { BigBlueButton::BigBlueButtonApi.new(url, secret, version, debug) }
|
324
345
|
|
325
346
|
context "compares attributes" do
|
326
347
|
it { api.should == api2 }
|
@@ -331,8 +352,8 @@ describe BigBlueButton::BigBlueButtonApi do
|
|
331
352
|
it { api.should_not == api2 }
|
332
353
|
end
|
333
354
|
|
334
|
-
context "differs #
|
335
|
-
before { api2.
|
355
|
+
context "differs #secret" do
|
356
|
+
before { api2.secret = api.secret + "x" }
|
336
357
|
it { api.should_not == api2 }
|
337
358
|
end
|
338
359
|
|
@@ -168,10 +168,28 @@ describe BigBlueButton::BigBlueButtonConfigXml do
|
|
168
168
|
end
|
169
169
|
|
170
170
|
context "if the module and attribute are found" do
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
171
|
+
context "setting an attribute as string" do
|
172
|
+
before(:each) {
|
173
|
+
target.set_attribute("LayoutModule", "layoutConfig", "value").should eql("value")
|
174
|
+
}
|
175
|
+
it { target.get_attribute("LayoutModule", "layoutConfig").should eql("value") }
|
176
|
+
end
|
177
|
+
|
178
|
+
context "sets values always as string" do
|
179
|
+
context "boolean" do
|
180
|
+
before(:each) {
|
181
|
+
target.set_attribute("LayoutModule", "layoutConfig", true).should eql("true")
|
182
|
+
}
|
183
|
+
it { target.get_attribute("LayoutModule", "layoutConfig").should eql("true") }
|
184
|
+
end
|
185
|
+
|
186
|
+
context "Hash" do
|
187
|
+
before(:each) {
|
188
|
+
target.set_attribute("LayoutModule", "layoutConfig", {}).should eql("{}")
|
189
|
+
}
|
190
|
+
it { target.get_attribute("LayoutModule", "layoutConfig").should eql("{}") }
|
191
|
+
end
|
192
|
+
end
|
175
193
|
end
|
176
194
|
|
177
195
|
context "if the module is not found" do
|
@@ -271,6 +289,14 @@ describe BigBlueButton::BigBlueButtonConfigXml do
|
|
271
289
|
}
|
272
290
|
it { target.is_modified?.should be_false }
|
273
291
|
end
|
292
|
+
|
293
|
+
context "if an attribute is set to the same value it already had, but with a different type" do
|
294
|
+
before(:each) {
|
295
|
+
# it's already false in the original XML, but as a string, not boolean
|
296
|
+
target.set_attribute("LayoutModule", "enableEdit", false)
|
297
|
+
}
|
298
|
+
it { target.is_modified?.should be_false }
|
299
|
+
end
|
274
300
|
end
|
275
301
|
|
276
302
|
end
|
metadata
CHANGED
@@ -1,52 +1,53 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bigbluebutton-api-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- Mconf
|
7
8
|
- Leonardo Crauss Daronco
|
8
|
-
- Joe Kinsella
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-06-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: xml-simple
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 1.1
|
20
|
+
version: '1.1'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 1.1
|
28
|
-
description: Provides
|
27
|
+
version: '1.1'
|
28
|
+
description: Provides methods to access BigBlueButton in a ruby application through
|
29
|
+
its API
|
29
30
|
email:
|
31
|
+
- contact@mconf.org
|
30
32
|
- leonardodaronco@gmail.com
|
31
|
-
- joe.kinsella@gmail.com
|
32
33
|
executables: []
|
33
34
|
extensions: []
|
34
35
|
extra_rdoc_files:
|
35
|
-
- README.
|
36
|
+
- README.md
|
36
37
|
- LICENSE
|
37
38
|
- LICENSE_003
|
38
|
-
- CHANGELOG.
|
39
|
+
- CHANGELOG.md
|
39
40
|
files:
|
40
41
|
- ".gitignore"
|
41
42
|
- ".rspec"
|
42
43
|
- ".ruby-version"
|
43
44
|
- ".travis.yml"
|
44
|
-
- CHANGELOG.
|
45
|
+
- CHANGELOG.md
|
45
46
|
- Gemfile
|
46
47
|
- Gemfile.lock
|
47
48
|
- LICENSE
|
48
49
|
- LICENSE_003
|
49
|
-
- README.
|
50
|
+
- README.md
|
50
51
|
- Rakefile
|
51
52
|
- bigbluebutton-api-ruby.gemspec
|
52
53
|
- examples/config_xml.rb
|
@@ -116,5 +117,5 @@ rubyforge_project:
|
|
116
117
|
rubygems_version: 2.4.5
|
117
118
|
signing_key:
|
118
119
|
specification_version: 4
|
119
|
-
summary:
|
120
|
+
summary: BigBlueButton integration for ruby
|
120
121
|
test_files: []
|
data/CHANGELOG.rdoc
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
=== 1.4.0
|
2
|
-
|
3
|
-
* Updated default ruby version to 2.2.0.
|
4
|
-
* Add support for BigBlueButton 0.9 (includes all 0.9.x). Consists only in accepting the version
|
5
|
-
"0.9", since this new API version doesn't break compatibility with the previous version and
|
6
|
-
also doesn't add new API calls.
|
7
|
-
|
8
|
-
=== 1.3.0
|
9
|
-
|
10
|
-
* Drop support to BigBlueButton 0.7 and add BigBlueButton to 0.81. Includes support to the new API calls <tt>getDefaultConfigXML</tt> and <tt>setConfigXML</tt>.
|
11
|
-
* Reviewed all methods responses (some changed a bit) and documentation.
|
12
|
-
* Allow non standard options to be passed to *all* API calls.
|
13
|
-
* Removed method <tt>join_meeting</tt> that was usually not used. Should always use <tt>join_meeting_url</tt>.
|
14
|
-
* Moved the hash extension method <tt>from_xml</tt> to its own class to prevent conflicts with Rails. See https://github.com/mconf/bigbluebutton-api-ruby/pull/6.
|
15
|
-
|
16
|
-
=== 1.2.0
|
17
|
-
|
18
|
-
* Allow non standard options to be passed to some API calls. These API calls are: create_meeting, join_meeting_url,
|
19
|
-
join_meeting, get_recordings. Useful for development of for custom versions of BigBlueButton.
|
20
|
-
* Accept :record as boolean in create_meeting
|
21
|
-
* Better formatting of data returned by get_recordings
|
22
|
-
|
23
|
-
=== 1.1.1
|
24
|
-
|
25
|
-
* BigBlueButtonApi can now receive http headers to be sent in all get/post requests
|
26
|
-
|
27
|
-
=== 1.1.0
|
28
|
-
|
29
|
-
* Updated ruby to 1.9.3-194.
|
30
|
-
* Support to BigBlueButton 0.4 rc1.
|
31
|
-
|
32
|
-
=== 1.0.0
|
33
|
-
|
34
|
-
* Version 0.1.0 renamed to 1.0.0.
|
35
|
-
|
36
|
-
=== 0.1.0
|
37
|
-
|
38
|
-
* Support to BigBlueButton 0.8:
|
39
|
-
* New methods for recordings: get_recordings, publish_recordings, delete_recordings
|
40
|
-
* Pre-upload of slides in create_meeting
|
41
|
-
* New parameters added in the already existent methods
|
42
|
-
* For more information see BigBlueButton docs at http://code.google.com/p/bigbluebutton/wiki/API#Version_0.8
|
43
|
-
* Method signature changes: create_meeting, join_meeting_url and join_meeting. Optional parameters are now passed using a hash.
|
44
|
-
* Integration tests for the entire library using cucumber.
|
45
|
-
* Changed the XML parser to xml-simple (especially to solve issues with CDATA values).
|
46
|
-
|
47
|
-
=== 0.0.11
|
48
|
-
|
49
|
-
* The file "bigbluebutton-api" was renamed to "bigbluebutton_api". All "require" calls must be updated.
|
50
|
-
* Splitted the library in more files (more modular) and created rspec tests for it.
|
51
|
-
* Added a BigBlueButtonApi.timeout attribute to timeout get requests and avoid blocks when the server is down. Defaults to 2 secs.
|
52
|
-
* New method last_http_response to access the last HTTP response object.
|
53
|
-
* Automatically detects the BBB server version if not informed by the user.
|
54
|
-
|
55
|
-
=== 0.0.10
|
56
|
-
|
57
|
-
* Returning hash now will *always* have these 3 values: :returncode (boolean), :messageKey (string) and :message (string).
|
58
|
-
* Some values in the hash are now converted to a fixed variable type to avoid inconsistencies:
|
59
|
-
* :meetingID (string)
|
60
|
-
* :attendeePW (string)
|
61
|
-
* :moderatorPW (string)
|
62
|
-
* :running (boolean)
|
63
|
-
* :hasBeenForciblyEnded (boolean)
|
64
|
-
* :endTime and :startTime (DateTime or nil)
|
65
|
-
|
66
|
-
=== 0.0.9
|
67
|
-
|
68
|
-
* Simplied "attendees" part of the hash returned in get_meeting_info. Same thing done for get_meetings.
|
69
|
-
|
70
|
-
=== 0.0.8
|
71
|
-
|
72
|
-
* New method get_api_version that returns the version of the server API (>= 0.7).
|
73
|
-
* New simplified hash syntax for get_meetings. See docs for details.
|
74
|
-
|
75
|
-
=== 0.0.6
|
76
|
-
|
77
|
-
* New method test_connection.
|
78
|
-
* Added comparison method for APIs.
|
79
|
-
* Methods attendee_url and moderator_url deprecated. Use join_meeting_url.
|
80
|
-
* Better exception throwing when the user is unreachable or the response is incorrect.
|
81
|
-
* BigBlueButtonException has now a "key" attribute to store the "messageKey" returned by BBB in failures.
|
82
|
-
|
83
|
-
=== 0.0.4
|
84
|
-
|
85
|
-
* Added support for BigBlueButton 0.7.
|
86
|
-
* Gem renamed from 'bigbluebutton' to 'bigbluebutton-api-ruby'.
|
87
|
-
* API functions now return a hash and instead of the XML returned by BBB. The XML is converted to a hash that uses symbols as keys and groups keys with the same name.
|
88
|
-
|
89
|
-
=== 0.0.3
|
90
|
-
|
91
|
-
* Fixes module issue preventing proper throwing of exceptions.
|
92
|
-
|
93
|
-
=== 0.0.1
|
94
|
-
|
95
|
-
* This is the first version of this gem. It provides an implementation of the 0.64 bbb API, with the following exceptions:
|
96
|
-
* Does not implement meeting token, and instead relies on meeting id as the unique identifier for a meeting.
|
97
|
-
* Documentation suggests there is way to call join_meeting as API call (instead of browser URL). This call currently does not work as documented.
|
data/README.rdoc
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
= bigbluebutton-api-ruby {<img src="http://travis-ci.org/mconf/bigbluebutton-api-ruby.png"/>}[http://travis-ci.org/mconf/bigbluebutton-api-ruby]
|
2
|
-
|
3
|
-
This is a ruby gem that provides access to the API of {BigBlueButton}[http://bigbluebutton.org].
|
4
|
-
See the documentation of the API {here}[http://code.google.com/p/bigbluebutton/wiki/API].
|
5
|
-
|
6
|
-
It enables a ruby application to interact with BigBlueButton by calling ruby methods instead of
|
7
|
-
HTTP requests, making it a lot easier to interact with BigBlueButton. It also formats the responses
|
8
|
-
to a ruby-friendly format and includes helper classes to deal with more complicated API calls, such
|
9
|
-
as the pre-upload of slides.
|
10
|
-
|
11
|
-
A few features it has:
|
12
|
-
|
13
|
-
* Provides methods to perform all API calls and get the responses;
|
14
|
-
* Converts the XML responses to ruby hashes, that are easier to work with;
|
15
|
-
* Converts the string values returned to native ruby types. For instance:
|
16
|
-
* Dates are converted DateTime objects (e.g. "Thu Sep 01 17:51:42 UTC 2011");
|
17
|
-
* Response codes are converted to boolean (e.g. "SUCCESS" becomes <tt>true</tt>);
|
18
|
-
* Deals with errors (e.g. timeouts) throwing <tt>BigBlueButtonException</tt> exceptions;
|
19
|
-
* Support to multiple BigBlueButton API versions (see below).
|
20
|
-
|
21
|
-
== Supported BigBlueButton versions
|
22
|
-
|
23
|
-
The current version of this gem supports <em>all</em> the following versions of BigBlueButton:
|
24
|
-
|
25
|
-
* 0.9 (includes all 0.9.x)
|
26
|
-
* 0.81
|
27
|
-
* 0.8
|
28
|
-
|
29
|
-
Older versions:
|
30
|
-
|
31
|
-
* 0.7 (including 0.7, 0.71 and 0.71a): The last version with support to 0.7* is {version 1.2.0}[https://github.com/mconf/bigbluebutton-api-ruby/tree/v1.2.0]. It supports versions 0.7 and 0.8.
|
32
|
-
* 0.64: see the branch <tt>api-0.64</tt>. The last version with support to 0.64 is {version 0.0.10}[https://github.com/mconf/bigbluebutton-api-ruby/tree/v0.0.10]. It supports versions 0.64 and 0.7.
|
33
|
-
|
34
|
-
== Supported ruby versions
|
35
|
-
|
36
|
-
Tested in rubies:
|
37
|
-
|
38
|
-
* ruby-2.2.0 *recommended*
|
39
|
-
* ruby-2.1.2
|
40
|
-
* ruby-2.0.0 (p353)
|
41
|
-
* ruby-1.9.3 (p484)
|
42
|
-
* ruby-1.9.2 (p290)
|
43
|
-
|
44
|
-
Use these versions to be sure it will work. Other patches of these rubies (e.g. ruby 1.9.3-p194) should work as well.
|
45
|
-
|
46
|
-
== Releases
|
47
|
-
|
48
|
-
For a list of releases and release notes see {CHANGELOG.rdoc}[https://github.com/mconf/bigbluebutton-api-ruby/blob/master/CHANGELOG.rdoc].
|
49
|
-
|
50
|
-
== Development
|
51
|
-
|
52
|
-
Information for developers of <tt>bigbluebutton-api-ruby</tt> can be found in {our wiki}[https://github.com/mconf/bigbluebutton-api-ruby/wiki].
|
53
|
-
|
54
|
-
The development of this gem is guided by the requirements of the project Mconf. To know more about it visit the {project's wiki}[https://github.com/mconf/wiki/wiki].
|
55
|
-
|
56
|
-
== License
|
57
|
-
|
58
|
-
Distributed under The MIT License (MIT).
|
59
|
-
See {LICENSE}[https://github.com/mconf/bigbluebutton-api-ruby/blob/master/LICENSE] for the latest license, valid for all versions after 0.0.4 (including it), and {LICENSE_003}[https://github.com/mconf/bigbluebutton-api-ruby/blob/master/LICENSE_003] for version 0.0.3 and all the previous versions.
|
60
|
-
|
61
|
-
== Contact
|
62
|
-
|
63
|
-
<b>Version 0.0.4+</b>: This project is developed as part of Mconf (http://mconf.org). Contact: Leonardo Crauss Daronco (leonardodaronco@gmail.com), Mconf: A scalable opensource multiconference system for web and mobile devices @ PRAV Labs - UFRGS. Home page: http://www.inf.ufrgs.br/prav/gtmconf
|
64
|
-
|
65
|
-
<b>Version 0.0.3 and below</b>: Joe Kinsella (joe.kinsella@gmail.com), Home page: http://www.brownbaglunch.com/bigbluebutton
|