bigbluebutton_rails 0.0.6 → 0.1.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.
Files changed (69) hide show
  1. data/.gitignore +1 -1
  2. data/CHANGELOG.rdoc +8 -0
  3. data/Gemfile +13 -7
  4. data/Gemfile.lock +112 -86
  5. data/README.rdoc +26 -80
  6. data/Rakefile +2 -1
  7. data/TODO_08 +13 -0
  8. data/app/controllers/bigbluebutton/rooms_controller.rb +9 -9
  9. data/app/controllers/bigbluebutton/servers_controller.rb +1 -1
  10. data/app/models/bigbluebutton_room.rb +16 -14
  11. data/app/models/bigbluebutton_server.rb +1 -1
  12. data/app/views/bigbluebutton/rooms/_form.html.erb +1 -1
  13. data/app/views/bigbluebutton/rooms/external.html.erb +3 -3
  14. data/app/views/bigbluebutton/rooms/invite.html.erb +3 -3
  15. data/app/views/bigbluebutton/servers/_form.html.erb +1 -1
  16. data/bigbluebutton_rails.gemspec +2 -2
  17. data/lib/bigbluebutton_rails/version.rb +1 -1
  18. data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +42 -37
  19. data/spec/factories/bigbluebutton_room.rb +3 -1
  20. data/spec/models/bigbluebutton_room_db_spec.rb +34 -0
  21. data/spec/models/bigbluebutton_room_spec.rb +452 -457
  22. data/spec/models/bigbluebutton_server_db_spec.rb +14 -0
  23. data/spec/models/bigbluebutton_server_spec.rb +162 -176
  24. data/spec/rails_app/.gitignore +2 -1
  25. data/spec/rails_app/db/seeds.rb +16 -4
  26. data/spec/rails_app/features/activity_monitor_servers.feature +53 -0
  27. data/spec/rails_app/features/config.yml.example +13 -0
  28. data/spec/rails_app/features/create_rooms.feature +17 -0
  29. data/spec/rails_app/features/create_servers.feature +17 -0
  30. data/spec/rails_app/features/destroy_rooms.feature +12 -0
  31. data/spec/rails_app/features/destroy_servers.feature +11 -0
  32. data/spec/rails_app/features/edit_rooms.feature +26 -0
  33. data/spec/rails_app/features/edit_servers.feature +24 -0
  34. data/spec/rails_app/features/join_external_rooms.feature +61 -0
  35. data/spec/rails_app/features/join_mobile.feature +10 -0
  36. data/spec/rails_app/features/join_rooms.feature +117 -0
  37. data/spec/rails_app/features/list_and_show_rooms.feature +18 -0
  38. data/spec/rails_app/features/list_and_show_servers.feature +16 -0
  39. data/spec/rails_app/features/step_definitions/activity_monitor_servers_step.rb +102 -0
  40. data/spec/rails_app/features/step_definitions/common_steps.rb +99 -3
  41. data/spec/rails_app/features/step_definitions/create_rooms_steps.rb +38 -0
  42. data/spec/rails_app/features/step_definitions/{bigbluebutton_server_steps.rb → create_servers_steps.rb} +11 -6
  43. data/spec/rails_app/features/step_definitions/destroy_rooms_steps.rb +17 -0
  44. data/spec/rails_app/features/step_definitions/destroy_servers_steps.rb +15 -0
  45. data/spec/rails_app/features/step_definitions/edit_rooms_steps.rb +15 -0
  46. data/spec/rails_app/features/step_definitions/edit_servers_steps.rb +15 -0
  47. data/spec/rails_app/features/step_definitions/join_mobile_steps.rb +5 -0
  48. data/spec/rails_app/features/step_definitions/join_rooms_steps.rb +49 -0
  49. data/spec/rails_app/features/step_definitions/list_and_show_rooms_steps.rb +11 -0
  50. data/spec/rails_app/features/step_definitions/list_and_show_servers_steps.rb +11 -0
  51. data/spec/rails_app/features/support/configurations.rb +34 -0
  52. data/spec/rails_app/features/support/content.rb +27 -7
  53. data/spec/rails_app/features/support/env_custom.rb +21 -0
  54. data/spec/rails_app/features/support/factories/bigbluebutton_server_integration.rb +5 -0
  55. data/spec/rails_app/features/support/hooks.rb +14 -0
  56. data/spec/rails_app/features/support/locales.rb +18 -0
  57. data/spec/rails_app/features/support/paths.rb +25 -10
  58. data/spec/rails_app/features/support/selectors.rb +26 -0
  59. data/spec/rails_app/features/support/templates.rb +241 -0
  60. metadata +43 -20
  61. data/spec/factories/integration/bigbluebutton_server_integration.rb +0 -8
  62. data/spec/integration_conf.yml.example +0 -5
  63. data/spec/rails_app/features/join_external_bigbluebutton_rooms.feature +0 -19
  64. data/spec/rails_app/features/manage_bigbluebutton_rooms.feature +0 -9
  65. data/spec/rails_app/features/manage_bigbluebutton_servers.feature +0 -9
  66. data/spec/rails_app/features/step_definitions/bigbluebutton_room_steps.rb +0 -64
  67. data/spec/rails_app/features/support/env_gem.rb +0 -10
  68. data/spec/rails_app/features/support/forms.rb +0 -12
  69. data/spec/support/integration/integration_conf.rb +0 -16
data/.gitignore CHANGED
@@ -4,6 +4,6 @@ pkg
4
4
  *.sqlite3
5
5
  log
6
6
  *.gem
7
- spec/integration_conf.yml
7
+ spec/rails_app/features/config.yml
8
8
  coverage/
9
9
  rails_best_practices_output.html
@@ -1,3 +1,11 @@
1
+ == 0.1.0
2
+
3
+ * First version with support to BigBlueButton 0.8:
4
+ * The support is still very basic: you can use the gem with BBB 0.8 but not all features are supported yet, such as pre-upload of slides and anything related to recordings.
5
+ * Updated bigbluebutton-api-ruby to 0.1.0 to support BBB 0.8.
6
+ * Added several integration tests.
7
+ * Several small bug fixes
8
+
1
9
  == 0.0.6
2
10
 
3
11
  * After fetch_meetings, the rooms that are not found in the DB are *not* saved by default anymore.
data/Gemfile CHANGED
@@ -2,15 +2,9 @@ source 'http://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- group :development, :test do
6
- gem "rspec-rails"
7
- gem "factory_girl"
5
+ group :development do
8
6
  gem "sqlite3-ruby"
9
- gem "generator_spec"
10
- gem "shoulda-matchers"
11
7
  gem "forgery"
12
- gem "cucumber-rails"
13
- gem "database_cleaner"
14
8
  gem "rdoc"
15
9
  gem "rails_best_practices"
16
10
  end
@@ -19,4 +13,16 @@ group :test do
19
13
  if RUBY_VERSION >= "1.9"
20
14
  gem 'simplecov', '>= 0.4.0', :require => false
21
15
  end
16
+
17
+ gem "cucumber-rails"
18
+ gem "database_cleaner"
19
+ gem "shoulda-matchers"
20
+ gem "factory_girl"
21
+ gem "generator_spec"
22
+ gem "rspec-rails"
23
+ gem "bbbot-ruby", :git => "git://github.com/mconf/bbbot-ruby.git"
24
+
25
+ gem "capybara-mechanize", "0.3.0.rc3" # allows remote requests
26
+ gem "launchy"
27
+ gem "capybara-webkit" # best option found for js
22
28
  end
@@ -1,20 +1,26 @@
1
+ GIT
2
+ remote: git://github.com/mconf/bbbot-ruby.git
3
+ revision: 83f3ccf88aa355260a791eb450a8d73f94049053
4
+ specs:
5
+ bbbot-ruby (0.0.1)
6
+
1
7
  PATH
2
8
  remote: .
3
9
  specs:
4
- bigbluebutton_rails (0.0.6)
5
- bigbluebutton-api-ruby (~> 0.0.11)
6
- rails (>= 3.0.3)
10
+ bigbluebutton_rails (0.1.0)
11
+ bigbluebutton-api-ruby (~> 0.1.0)
12
+ rails (>= 3.0.0)
7
13
 
8
14
  GEM
9
15
  remote: http://rubygems.org/
10
16
  specs:
11
17
  abstract (1.0.0)
12
- actionmailer (3.0.9)
13
- actionpack (= 3.0.9)
18
+ actionmailer (3.0.11)
19
+ actionpack (= 3.0.11)
14
20
  mail (~> 2.2.19)
15
- actionpack (3.0.9)
16
- activemodel (= 3.0.9)
17
- activesupport (= 3.0.9)
21
+ actionpack (3.0.11)
22
+ activemodel (= 3.0.11)
23
+ activesupport (= 3.0.11)
18
24
  builder (~> 2.1.2)
19
25
  erubis (~> 2.6.6)
20
26
  i18n (~> 0.5.0)
@@ -22,133 +28,149 @@ GEM
22
28
  rack-mount (~> 0.6.14)
23
29
  rack-test (~> 0.5.7)
24
30
  tzinfo (~> 0.3.23)
25
- activemodel (3.0.9)
26
- activesupport (= 3.0.9)
31
+ activemodel (3.0.11)
32
+ activesupport (= 3.0.11)
27
33
  builder (~> 2.1.2)
28
34
  i18n (~> 0.5.0)
29
- activerecord (3.0.9)
30
- activemodel (= 3.0.9)
31
- activesupport (= 3.0.9)
35
+ activerecord (3.0.11)
36
+ activemodel (= 3.0.11)
37
+ activesupport (= 3.0.11)
32
38
  arel (~> 2.0.10)
33
39
  tzinfo (~> 0.3.23)
34
- activeresource (3.0.9)
35
- activemodel (= 3.0.9)
36
- activesupport (= 3.0.9)
37
- activesupport (3.0.9)
40
+ activeresource (3.0.11)
41
+ activemodel (= 3.0.11)
42
+ activesupport (= 3.0.11)
43
+ activesupport (3.0.11)
44
+ addressable (2.2.6)
38
45
  arel (2.0.10)
39
- bigbluebutton-api-ruby (0.0.11)
40
- nokogiri (~> 1.4.0)
46
+ bigbluebutton-api-ruby (0.1.0)
47
+ xml-simple (>= 1.1.1)
41
48
  builder (2.1.2)
42
- capybara (1.0.0)
49
+ capybara (1.1.2)
43
50
  mime-types (>= 1.16)
44
51
  nokogiri (>= 1.3.3)
45
52
  rack (>= 1.0.0)
46
53
  rack-test (>= 0.5.4)
47
- selenium-webdriver (~> 0.2.0)
54
+ selenium-webdriver (~> 2.0)
48
55
  xpath (~> 0.1.4)
49
- childprocess (0.2.0)
56
+ capybara-mechanize (0.3.0.rc3)
57
+ capybara (~> 1.1.0)
58
+ mechanize (~> 2.0.0)
59
+ capybara-webkit (0.7.2)
60
+ capybara (< 1.2, >= 1.0.0)
61
+ childprocess (0.2.3)
50
62
  ffi (~> 1.0.6)
51
63
  colored (1.2)
52
- cucumber (1.0.2)
64
+ cucumber (1.1.4)
53
65
  builder (>= 2.1.2)
54
66
  diff-lcs (>= 1.1.2)
55
- gherkin (~> 2.4.5)
67
+ gherkin (~> 2.7.1)
56
68
  json (>= 1.4.6)
57
- term-ansicolor (>= 1.0.5)
58
- cucumber-rails (1.0.2)
59
- capybara (>= 1.0.0)
60
- cucumber (~> 1.0.0)
61
- nokogiri (>= 1.4.6)
62
- database_cleaner (0.6.7)
63
- diff-lcs (1.1.2)
69
+ term-ansicolor (>= 1.0.6)
70
+ cucumber-rails (1.2.1)
71
+ capybara (>= 1.1.2)
72
+ cucumber (>= 1.1.3)
73
+ nokogiri (>= 1.5.0)
74
+ database_cleaner (0.7.0)
75
+ diff-lcs (1.1.3)
64
76
  erubis (2.6.6)
65
77
  abstract (>= 1.0.0)
66
- factory_girl (2.0.2)
67
- ffi (1.0.9)
68
- forgery (0.3.12)
69
- nokogiri (~> 1.4)
70
- generator_spec (0.8.3)
71
- rails (~> 3.0)
78
+ factory_girl (2.3.2)
79
+ activesupport
80
+ ffi (1.0.11)
81
+ forgery (0.5.0)
82
+ generator_spec (0.8.4)
83
+ rails (< 4.0, >= 3.0)
72
84
  rspec-rails
73
- gherkin (2.4.5)
85
+ gherkin (2.7.1)
74
86
  json (>= 1.4.6)
75
- haml (3.1.2)
76
87
  i18n (0.5.0)
77
- json (1.5.3)
78
- json_pure (1.5.3)
88
+ json (1.6.3)
89
+ launchy (2.0.5)
90
+ addressable (~> 2.2.6)
79
91
  mail (2.2.19)
80
92
  activesupport (>= 2.3.6)
81
93
  i18n (>= 0.4.0)
82
94
  mime-types (~> 1.16)
83
95
  treetop (~> 1.4.8)
84
- mime-types (1.16)
85
- nokogiri (1.4.7)
86
- polyglot (0.3.2)
87
- rack (1.2.3)
96
+ mechanize (2.0.1)
97
+ net-http-digest_auth (>= 1.1.1, ~> 1.1)
98
+ net-http-persistent (~> 1.8)
99
+ nokogiri (~> 1.4)
100
+ webrobots (>= 0.0.9, ~> 0.0)
101
+ mime-types (1.17.2)
102
+ multi_json (1.0.4)
103
+ net-http-digest_auth (1.2)
104
+ net-http-persistent (1.9)
105
+ nokogiri (1.5.0)
106
+ polyglot (0.3.3)
107
+ progressbar (0.9.2)
108
+ rack (1.2.4)
88
109
  rack-mount (0.6.14)
89
110
  rack (>= 1.0.0)
90
111
  rack-test (0.5.7)
91
112
  rack (>= 1.0)
92
- rails (3.0.9)
93
- actionmailer (= 3.0.9)
94
- actionpack (= 3.0.9)
95
- activerecord (= 3.0.9)
96
- activeresource (= 3.0.9)
97
- activesupport (= 3.0.9)
113
+ rails (3.0.11)
114
+ actionmailer (= 3.0.11)
115
+ actionpack (= 3.0.11)
116
+ activerecord (= 3.0.11)
117
+ activeresource (= 3.0.11)
118
+ activesupport (= 3.0.11)
98
119
  bundler (~> 1.0)
99
- railties (= 3.0.9)
100
- rails_best_practices (0.10.1)
120
+ railties (= 3.0.11)
121
+ rails_best_practices (1.7.1)
101
122
  activesupport
102
123
  colored
103
124
  erubis
104
- haml
105
125
  i18n
106
- ruby-progressbar
107
- ruby_parser
108
- railties (3.0.9)
109
- actionpack (= 3.0.9)
110
- activesupport (= 3.0.9)
126
+ progressbar
127
+ sexp_processor
128
+ railties (3.0.11)
129
+ actionpack (= 3.0.11)
130
+ activesupport (= 3.0.11)
111
131
  rake (>= 0.8.7)
112
132
  rdoc (~> 3.4)
113
133
  thor (~> 0.14.4)
114
- rake (0.9.2)
115
- rdoc (3.9.1)
116
- rspec (2.6.0)
117
- rspec-core (~> 2.6.0)
118
- rspec-expectations (~> 2.6.0)
119
- rspec-mocks (~> 2.6.0)
120
- rspec-core (2.6.4)
121
- rspec-expectations (2.6.0)
134
+ rake (0.9.2.2)
135
+ rdoc (3.12)
136
+ json (~> 1.4)
137
+ rspec (2.7.0)
138
+ rspec-core (~> 2.7.0)
139
+ rspec-expectations (~> 2.7.0)
140
+ rspec-mocks (~> 2.7.0)
141
+ rspec-core (2.7.1)
142
+ rspec-expectations (2.7.0)
122
143
  diff-lcs (~> 1.1.2)
123
- rspec-mocks (2.6.0)
124
- rspec-rails (2.6.1)
144
+ rspec-mocks (2.7.0)
145
+ rspec-rails (2.7.0)
125
146
  actionpack (~> 3.0)
126
147
  activesupport (~> 3.0)
127
148
  railties (~> 3.0)
128
- rspec (~> 2.6.0)
129
- ruby-progressbar (0.0.10)
130
- ruby_parser (2.0.6)
131
- sexp_processor (~> 3.0)
132
- rubyzip (0.9.4)
133
- selenium-webdriver (0.2.2)
134
- childprocess (>= 0.1.9)
135
- ffi (>= 1.0.7)
136
- json_pure
149
+ rspec (~> 2.7.0)
150
+ rubyzip (0.9.5)
151
+ selenium-webdriver (2.15.0)
152
+ childprocess (>= 0.2.1)
153
+ ffi (~> 1.0.9)
154
+ multi_json (~> 1.0.4)
137
155
  rubyzip
138
- sexp_processor (3.0.5)
139
- shoulda-matchers (1.0.0.beta3)
140
- simplecov (0.4.2)
141
- simplecov-html (~> 0.4.4)
142
- simplecov-html (0.4.5)
143
- sqlite3 (1.3.4)
156
+ sexp_processor (3.0.9)
157
+ shoulda-matchers (1.0.0)
158
+ simplecov (0.5.4)
159
+ multi_json (~> 1.0.3)
160
+ simplecov-html (~> 0.5.3)
161
+ simplecov-html (0.5.3)
162
+ sqlite3 (1.3.5)
144
163
  sqlite3-ruby (1.3.3)
145
164
  sqlite3 (>= 1.3.3)
146
- term-ansicolor (1.0.6)
165
+ term-ansicolor (1.0.7)
147
166
  thor (0.14.6)
148
167
  treetop (1.4.10)
149
168
  polyglot
150
169
  polyglot (>= 0.3.1)
151
- tzinfo (0.3.29)
170
+ tzinfo (0.3.31)
171
+ webrobots (0.0.12)
172
+ nokogiri (>= 1.4.4)
173
+ xml-simple (1.1.1)
152
174
  xpath (0.1.4)
153
175
  nokogiri (~> 1.3)
154
176
 
@@ -156,12 +178,16 @@ PLATFORMS
156
178
  ruby
157
179
 
158
180
  DEPENDENCIES
181
+ bbbot-ruby!
159
182
  bigbluebutton_rails!
183
+ capybara-mechanize (= 0.3.0.rc3)
184
+ capybara-webkit
160
185
  cucumber-rails
161
186
  database_cleaner
162
187
  factory_girl
163
188
  forgery
164
189
  generator_spec
190
+ launchy
165
191
  rails_best_practices
166
192
  rdoc
167
193
  rspec-rails
@@ -14,14 +14,29 @@ Features:
14
14
  * Server activity monitor
15
15
 
16
16
  Planned features:
17
- * Friendly URLs (e.g. http://somewhere.com/my-server/my-room) (half way done)
17
+ * Friendly URLs (e.g. http://somewhere.com/my-server/my-room)
18
18
  * Limit the number of users per room and rooms per server
19
19
  * Server administration (modify config.xml, use bbb-conf, etc.)
20
- * Load balancing
21
20
  * Decouple servers-rooms to allow server selection on-the-fly
21
+ * Load balancing
22
22
 
23
23
  For more future features and issues check {our google code page}[http://code.google.com/p/mconf/issues/list?can=2&q=label%3AComponent%20label%3ABigBlueButtonRails].
24
24
 
25
+ == Supported BigBlueButton versions
26
+
27
+ The current version of this gem supports *all* the following versions of BigBlueButton:
28
+
29
+ * 0.8: Currently in the beta3 stage. It can be used with BBB 0.8 but not all features are supported yet, such as pre-upload of slides and anything related to recordings. See {TODO_08}[https://github.com/mconf/bigbluebutton_rails/blob/api-0.8/TODO_08].
30
+ * 0.7: Including 0.7, 0.71 and 0.71a.
31
+
32
+ == Supported ruby versions
33
+
34
+ Tested in rubies:
35
+
36
+ * ruby-1.8.7
37
+ * ruby-1.9.2
38
+ * ree-1.8.7
39
+
25
40
  == Installation
26
41
 
27
42
  You can install the latest version of BigbluebuttonRails using RubyGems:
@@ -48,18 +63,7 @@ The routes to BigbluebuttonRails can be generated with the helper <tt>bigbluebut
48
63
 
49
64
  bigbluebutton_routes :default
50
65
 
51
- resources :users do
52
- bigbluebutton_routes :room_matchers
53
- resources :spaces do
54
- bigbluebutton_routes :room_matchers
55
- end
56
- end
57
-
58
- The first line generates the default routes. You need to call it at least once to generate the following routes:
59
-
60
- bigbluebutton_routes :default
61
-
62
- It generates routes scoped with 'bigbluebutton'. These routes look like:
66
+ It will generate the default routes. You need to call it at least once and the routes will be scoped with 'bigbluebutton'. They will look like:
63
67
 
64
68
  /bigbluebutton/servers
65
69
  /bigbluebutton/servers/default-server/rooms/my-room
@@ -70,23 +74,23 @@ You can customize the scope name and also make the routes point to custom contro
70
74
  bigbluebutton_routes :default, :scope => 'webconference', :controllers => { :servers => 'custom_servers', :rooms => 'custom_rooms' }
71
75
  bigbluebutton_routes :default, :scope => '' # to remove the scope
72
76
 
73
- If you customize the controllers as in the first line in the example above, be warned that every route generated after this will
74
- be using these controllers!
75
-
76
77
  You may also want shorter routes to access conference rooms. For that, use the option <tt>room_matchers</tt>:
77
78
 
78
79
  bigbluebutton_routes :room_matchers
79
80
 
80
- It creates routes to the actions used to access the conference room: "show", "join", "auth", "running", "end", "invite", and "join_mobile".
81
- So you can allow access to webconference rooms using URLs such as:
81
+ resources :users do
82
+ bigbluebutton_routes :room_matchers
83
+ end
84
+
85
+ It creates routes to the actions used to access the conference room, so you can allow access to webconference rooms using URLs such as:
82
86
 
83
87
  http://myserver.com/server-name/room-name/join
84
88
  http://myserver.com/user-name/public-room/join
85
89
  http://myserver.com/ziltoid-room/join
86
90
 
87
- Obs: The URLs are not yet exactly like these, but soon they will be. But you can of course implement this in your application. Today they are like:
91
+ For more information see:
88
92
 
89
- http://myserver.com/bigblugbutton/server-name/rooms/room-name/join
93
+ * {How to: Routes}[https://github.com/mconf/bigbluebutton_rails/wiki/How-to:-Routes]
90
94
 
91
95
  === User authorization, permissions and assumptions
92
96
 
@@ -106,71 +110,13 @@ and you can reimplement them in your application controller to change their beha
106
110
  * {How to: Integrate with Devise}[https://github.com/mconf/bigbluebutton_rails/wiki/How-to:-Integrate-with-Devise]
107
111
  * {How to: Integrate with CanCan}[https://github.com/mconf/bigbluebutton_rails/wiki/How-to:-Integrate-with-CanCan]
108
112
 
109
- == How it works
110
-
111
- === Overview
112
-
113
- BigbluebuttonRails has two entities: servers and rooms. Servers can have multiple rooms, that belong to a server and can also belong to any other model.
114
- You can make a room belong to a user, for example.
115
-
116
- Every server has an associated API object (using the gem bigbluebutton-api-ruby) used to access the BigBlueButton server.
117
- The server controller has only the standard CRUD actions defined by Rails.
118
-
119
- The rooms controller also have the CRUD actions, plus some specific actions to join, end, and check if a meeting is currently running in the room.
120
- These extra actions will be explained bellow.
121
-
122
- A room model has methods to fetch and send information to the BBB server. They are simple API calls, but the "fetch" methods check the response and store
123
- data from it, while the "send" methods just make the API call. You can, for example, use <tt>fetch_meeting_info</tt> to get information about the meeting
124
- (will trigger the API call <tt>getMeetingInfo</tt>). The data parsed from the response wil be stored in the model and can be accessed using it's attributes.
125
-
126
- All methods in the models that trigger any API call are documented with "Triggers API call" and the API functions that are called. Be aware that they
127
- can throw a BigBlueButtonException.
128
-
129
- === RoomsController
130
-
131
- ==== <tt>running</tt> and <tt>end</tt>
132
-
133
- These are pretty simple actions. <tt>running</tt> returns a json indicating if the conference is running or not, while <tt>end</tt> ends the meeting.
134
-
135
- ==== <tt>join_mobile</tt>
136
-
137
- This is an action that simply renders a view with a {QR code}[http://code.google.com/apis/chart/image/docs/gallery/qr_codes.html] and a link to join the
138
- conference from a mobile device. The link and the QR code point to links using the protocol "bigbluebutton://", so it can be associated with a native mobile
139
- application that will open the conference (such as the {Android client for BigBlueButton}[https://github.com/mconf/mconf-mobile]).
140
-
141
- ==== <tt>join</tt>, <tt>invite</tt> and <tt>auth</tt>
142
-
143
- The actions used to redirect a user to join a room are <tt>join</tt> and <tt>invite</tt>, while <tt>auth</tt> is used by <tt>invite</tt> to authenticate
144
- the user. Basic differences:
145
-
146
- * <tt>invite</tt> renders a view to ask for a user name and a password. It is used to enable <b>anonymous users</b> to join a room or
147
- to define the user role using the <b>room password</b> instead of the <tt>bigbluebutton_role</tt> method.
148
- * It first checks <tt>bigbluebutton_role</tt> to see if the current user already has a role in the target room.
149
- * In case it has (see {controller_methods.rb}[https://github.com/mconf/bigbluebutton_rails/blob/master/lib/bigbluebutton_rails/controller_methods.rb] for more info), redirects to <tt>join</tt>.
150
- * Otherwise:
151
- * If there is a user logged, uses <tt>bigbluebutton_user().name</tt> as the user name. Otherwise, ask the user to type a name.
152
- * <tt>join</tt> requires a <b>logged user</b> and uses <tt>bigbluebutton_role</tt> to get the role for this user
153
- * It redirects the user straight to the meeting if the join is successful.
154
- * In case there's no role associated with the current user, falls back to <tt>invite</tt> to ask for a password.
155
-
156
- Internally, they use the same algorithm:
157
-
158
- * If the user is a moderator:
159
- * If the room is not created yet, creates it.
160
- * Redirects the user to the meeting as a moderator.
161
- * If the user is not a moderator (a normal attendee):
162
- * If the meeting is running, redirects the user to the meeting as an attendee.
163
- * Otherwise:
164
- * <tt>join</tt> renders the join view, to wait for a moderator before joining the conference. The page will continuously pool the server to check if the meeting is running. When it starts, it redirects the user to the conference.
165
- * <tt>invite</tt> renders the invite view again and shows a warning informing that the meeting is not running. The user must re-submit the form to try again.
166
-
167
113
  == Contributing/Development
168
114
 
169
115
  Fork this repository, clone your fork and start by installing the dependencies:
170
116
 
171
117
  bundle install
172
118
 
173
- Edit <tt>spec/integration_conf.yml.example</tt> and set values for an existent BigBlueButton server. Save it as <tt>spec/integration_conf.yml</tt>. You will need it to run the integration tests.
119
+ Edit <tt>spec/rails_app/features/integration_conf.yml.example</tt> and set values for an existent BigBlueButton server. Save it as <tt>spec/integration_conf.yml</tt>. You will need it to run the integration tests. For more information see the page [Testing](https://github.com/mconf/bigbluebutton_rails/wiki/Testing) in our wiki.
174
120
 
175
121
  Prepare the rails_app used for tests:
176
122