bigbluebutton_rails 2.2.0 → 2.3.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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -3
  3. data/CHANGELOG.md +34 -0
  4. data/Dockerfile +23 -0
  5. data/Gemfile +3 -0
  6. data/Gemfile.lock +14 -5
  7. data/README.md +42 -59
  8. data/Rakefile +6 -3
  9. data/app/controllers/bigbluebutton/api/rooms_controller.rb +117 -0
  10. data/app/controllers/bigbluebutton/playback_types_controller.rb +0 -3
  11. data/app/controllers/bigbluebutton/recordings_controller.rb +37 -23
  12. data/app/controllers/bigbluebutton/rooms_controller.rb +6 -31
  13. data/app/controllers/bigbluebutton/servers_controller.rb +0 -14
  14. data/app/helpers/bigbluebutton_rails_helper.rb +4 -0
  15. data/app/models/bigbluebutton_attendee.rb +21 -0
  16. data/app/models/bigbluebutton_meeting.rb +5 -0
  17. data/app/models/bigbluebutton_playback_format.rb +3 -2
  18. data/app/models/bigbluebutton_recording.rb +164 -68
  19. data/app/models/bigbluebutton_room.rb +148 -59
  20. data/app/models/bigbluebutton_server.rb +1 -1
  21. data/app/views/bigbluebutton/api/error.rabl +10 -0
  22. data/app/views/bigbluebutton/api/rooms/index.rabl +45 -0
  23. data/app/views/bigbluebutton/api/rooms/join.rabl +6 -0
  24. data/app/views/bigbluebutton/api/rooms/running.rabl +10 -0
  25. data/app/views/bigbluebutton/recordings/play.html.erb +1 -0
  26. data/app/views/bigbluebutton/servers/_activity_list.html.erb +5 -5
  27. data/app/workers/{bigbluebutton_finish_meetings.rb → bigbluebutton_finish_meetings_worker.rb} +2 -2
  28. data/app/workers/{bigbluebutton_meeting_updater.rb → bigbluebutton_meeting_updater_worker.rb} +3 -3
  29. data/app/workers/bigbluebutton_recordings_for_room_worker.rb +27 -0
  30. data/app/workers/{bigbluebutton_update_recordings.rb → bigbluebutton_update_recordings_worker.rb} +2 -2
  31. data/app/workers/{bigbluebutton_update_server_configs.rb → bigbluebutton_update_server_configs_worker.rb} +3 -3
  32. data/bigbluebutton_rails.gemspec +1 -0
  33. data/config/locales/en.yml +21 -0
  34. data/config/locales/pt-br.yml +1 -0
  35. data/config/resque/resque.rake +7 -1
  36. data/config/resque/workers_schedule.yml +3 -3
  37. data/docker-compose.yml +68 -0
  38. data/dumb-init_1.2.0 +0 -0
  39. data/lib/bigbluebutton_rails.rb +1 -2
  40. data/lib/bigbluebutton_rails/api_controller_methods.rb +138 -0
  41. data/lib/bigbluebutton_rails/configuration.rb +33 -4
  42. data/lib/bigbluebutton_rails/controller_methods.rb +0 -31
  43. data/lib/bigbluebutton_rails/exceptions.rb +17 -0
  44. data/lib/bigbluebutton_rails/rails/routes.rb +14 -0
  45. data/lib/bigbluebutton_rails/version.rb +1 -1
  46. data/lib/generators/bigbluebutton_rails/templates/migration.rb +17 -3
  47. data/lib/generators/bigbluebutton_rails/templates/migration_2_2_0.rb +1 -1
  48. data/lib/generators/bigbluebutton_rails/templates/migration_2_2_0_b.rb +106 -0
  49. data/lib/generators/bigbluebutton_rails/templates/migration_2_3_0.rb +22 -0
  50. data/lib/tasks/bigbluebutton_rails/meetings.rake +1 -1
  51. data/spec/controllers/bigbluebutton/api/rooms_controller_spec.rb +498 -0
  52. data/spec/controllers/bigbluebutton/recordings_controller_spec.rb +84 -0
  53. data/spec/controllers/bigbluebutton/rooms_controller_exception_handling_spec.rb +2 -2
  54. data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +24 -22
  55. data/spec/controllers/bigbluebutton/servers_controller_spec.rb +9 -0
  56. data/spec/factories/bigbluebutton_attendee.rb +7 -0
  57. data/spec/factories/bigbluebutton_meeting.rb +0 -1
  58. data/spec/factories/bigbluebutton_playback_type.rb +1 -0
  59. data/spec/factories/bigbluebutton_recording.rb +2 -4
  60. data/spec/helpers/bigbluebutton_rails_helper_spec.rb +10 -2
  61. data/spec/lib/bigbluebutton_rails/background_tasks_spec.rb +1 -0
  62. data/spec/lib/tasks/meetings_rake_spec.rb +1 -1
  63. data/spec/models/bigbluebutton_attendee_spec.rb +44 -0
  64. data/spec/models/bigbluebutton_meeting_db_spec.rb +0 -1
  65. data/spec/models/bigbluebutton_meeting_spec.rb +1 -0
  66. data/spec/models/bigbluebutton_playback_format_spec.rb +2 -0
  67. data/spec/models/bigbluebutton_playback_type_db_spec.rb +1 -0
  68. data/spec/models/bigbluebutton_recording_db_spec.rb +2 -2
  69. data/spec/models/bigbluebutton_recording_spec.rb +404 -72
  70. data/spec/models/bigbluebutton_room_spec.rb +435 -148
  71. data/spec/rails_app/config/database.yml.example +10 -11
  72. data/spec/rails_app/config/initializers/resque.rb +33 -0
  73. data/spec/rails_app/config/routes.rb +2 -0
  74. data/spec/rails_app/lib/tasks/db/populate.rake +73 -55
  75. data/spec/support/mocked_server.rb +1 -1
  76. data/spec/workers/{bigbluebutton_finish_meetings_spec.rb → bigbluebutton_finish_meetings_worker_spec.rb} +3 -3
  77. data/spec/workers/{bigbluebutton_meeting_updater_spec.rb → bigbluebutton_meeting_updater_worker_spec.rb} +8 -7
  78. data/spec/workers/bigbluebutton_recordings_for_room_worker_spec.rb +49 -0
  79. data/spec/workers/{bigbluebutton_update_recordings_spec.rb → bigbluebutton_update_recordings_worker_spec.rb} +3 -3
  80. data/spec/workers/{bigbluebutton_update_server_configs_spec.rb → bigbluebutton_update_server_configs_worker_spec.rb} +4 -4
  81. metadata +42 -14
  82. data/lib/classes/bigbluebutton_attendee.rb +0 -21
  83. data/spec/classes/bigbluebutton_attendee_spec.rb +0 -76
  84. data/spec/controllers/bigbluebutton/recordings_controller_json_responses_spec.rb +0 -111
  85. data/spec/controllers/bigbluebutton/rooms_controller_json_responses_spec.rb +0 -203
  86. data/spec/controllers/bigbluebutton/servers_controller_json_responses_spec.rb +0 -162
@@ -2,20 +2,19 @@
2
2
 
3
3
  development:
4
4
  adapter: mysql2
5
- database: bigbluebutton_rails_development
6
- username: root
7
- password: my-password
8
- socket: /var/run/mysqld/mysqld.sock
5
+ database: bigbluebutton_rails_dev
6
+ username: bbbrails
7
+ password: bbbrails
8
+ host: dev_db
9
+ # socket: /var/run/mysqld/mysqld.sock
9
10
 
10
- # Warning: The database defined as "test" will be erased and
11
- # re-generated from your development database when you run "rake".
12
- # Do not set this db to the same as development or production.
13
11
  test: &test
14
12
  adapter: mysql2
15
13
  database: bigbluebutton_rails_test
16
- username: root
17
- password: my-password
18
- socket: /var/run/mysqld/mysqld.sock
14
+ username: bbbrails
15
+ password: bbbrails
16
+ host: test_db
17
+ # socket: /var/run/mysqld/mysqld.sock
19
18
 
20
19
  # production:
21
20
  # adapter: mysql2
@@ -25,4 +24,4 @@ test: &test
25
24
  # socket: /var/run/mysqld/mysqld.sock
26
25
 
27
26
  cucumber:
28
- <<: *test
27
+ <<: *test
@@ -0,0 +1,33 @@
1
+ require 'resque'
2
+
3
+ unless Rails.env == 'test'
4
+ logger = Logger.new(STDOUT)
5
+ logger.formatter = proc do |severity, datetime, progname, msg|
6
+ formatted_datetime = datetime.strftime("%Y-%m-%d %H:%M:%S.") << datetime.usec.to_s[0..2].rjust(3)
7
+ "#{formatted_datetime} [#{severity}] #{msg} (pid:#{$$})\n"
8
+ end
9
+ Resque.logger = logger
10
+ Resque.logger.level = Logger::INFO
11
+ #Resque.logger.level = Logger::DEBUG
12
+
13
+ attrs = {
14
+ host: ENV['REDIS_HOST'] || 'localhost',
15
+ port: ENV['REDIS_PORT'] || 6379,
16
+ db: ENV['REDIS_DB'] || 0,
17
+ password: ENV['REDIS_PASSWORD'] || nil
18
+ }
19
+ attrs.delete(:password) if attrs[:password].blank?
20
+ Resque.redis = Redis.new(attrs)
21
+
22
+ # If you want to be able to dynamically change the schedule,
23
+ # uncomment this line. A dynamic schedule can be updated via the
24
+ # Resque::Scheduler.set_schedule (and remove_schedule) methods.
25
+ # When dynamic is set to true, the scheduler process looks for
26
+ # schedule changes and applies them on the fly.
27
+ # Note: This feature is only available in >=2.0.0.
28
+ # Resque::Scheduler.dynamic = true
29
+
30
+ # The schedule doesn't need to be stored in a YAML, it just needs to
31
+ # be a hash. YAML is usually the easiest.
32
+ # Resque.schedule = YAML.load_file('config/workers_schedule.yml')
33
+ end
@@ -2,6 +2,8 @@ RailsApp::Application.routes.draw do
2
2
 
3
3
  bigbluebutton_routes :default
4
4
 
5
+ bigbluebutton_api_routes
6
+
5
7
  bigbluebutton_routes :default, :scope => "webconference"
6
8
 
7
9
  resources :users do
@@ -38,7 +38,7 @@ namespace :db do
38
38
  2.times do |n2|
39
39
  params = {
40
40
  :meetingid => "meeting-#{n1}-#{n2}-" + SecureRandom.hex(4),
41
- :server => server,
41
+ # :server => server,
42
42
  :name => "Name-#{n1}-#{n2}",
43
43
  :attendee_key => Forgery(:basic).password(:at_least => 10, :at_most => 16),
44
44
  :moderator_key => Forgery(:basic).password(:at_least => 10, :at_most => 16),
@@ -64,67 +64,85 @@ namespace :db do
64
64
  metadata.save!
65
65
  end
66
66
 
67
- # Recordings
68
- 2.times do |n3|
67
+ 2.times do |n2|
69
68
  params = {
70
- :recordid => "rec-#{n1}-#{n2}-#{n3}-" + SecureRandom.hex(26),
69
+ # :server_id => 0,
70
+ :room_id => room.id,
71
71
  :meetingid => room.meetingid,
72
- :name => "Rec-#{n1}-#{n2}-#{n3}",
73
- :published => true,
74
- :available => true,
75
- :start_time => Time.now - rand(5).hours,
76
- :end_time => Time.now + rand(5).hours
72
+ :name => "Name-#{n1}-#{n2}",
73
+ :create_time => Time.now - rand(5).hours,
74
+ :running => false,
75
+ :recorded => true,
76
+ :creator_id => rand(12),
77
+ :creator_name => "Name-#{n1}-#{n2}",
78
+ :ended => true
77
79
  }
78
- time = params[:start_time].utc.to_formatted_s(:long)
79
- params[:description] = I18n.t('bigbluebutton_rails.recordings.default.description', :time => time)
80
- puts " - Creating recording #{params[:name]}"
81
- recording = BigbluebuttonRecording.create(params)
82
- recording.server = server
83
- recording.room = room
84
- recording.save!
80
+ time = params[:create_time]
81
+ puts " - Creating meeting #{params[:name]}"
82
+ meeting = BigbluebuttonMeeting.create(params)
85
83
 
86
- # Basic metadata the gem always adds and should always be there
87
- basic_metadata =
88
- [{
89
- :name => BigbluebuttonRails.configuration.metadata_user_id,
90
- :content => Forgery(:basic).number(:at_most => 1000)
91
- }, {
92
- :name => BigbluebuttonRails.configuration.metadata_user_name,
93
- :content => Forgery(:name).full_name
94
- }]
95
- basic_metadata.each do |meta_params|
96
- metadata = BigbluebuttonMetadata.create(meta_params)
97
- metadata.owner = recording
98
- metadata.save!
99
- puts " - Creating recording metadata #{meta_params[:name]}"
100
- end
101
-
102
- # Recording metadata
103
- 3.times do |n_metadata|
84
+ # Recordings
85
+ 2.times do |n3|
104
86
  params = {
105
- :name => "#{Forgery(:name).first_name.downcase}-#{n_metadata}",
106
- :content => Forgery(:name).full_name
87
+ :recordid => "rec-#{n1}-#{n2}-#{n3}-" + SecureRandom.hex(26),
88
+ :meetingid => room.meetingid,
89
+ :name => "Rec-#{n1}-#{n2}-#{n3}",
90
+ :published => true,
91
+ :available => true,
92
+ :start_time => meeting.create_time,
93
+ :end_time => meeting.create_time + rand(5).hours
107
94
  }
108
- puts " - Creating recording metadata #{params[:name]}"
109
- metadata = BigbluebuttonMetadata.create(params)
110
- metadata.owner = recording
111
- metadata.save!
112
- end
95
+ time = params[:start_time]
96
+ params[:description] = I18n.t('bigbluebutton_rails.recordings.default.description', :time => time)
97
+ puts " - Creating recording #{params[:name]}"
98
+ recording = BigbluebuttonRecording.create(params)
99
+ recording.server = server
100
+ recording.room = room
101
+ recording.save!
113
102
 
114
- # Recording playback formats
115
- playback_types = [1,2,3]
116
- 3.times do |n_format|
117
- params = {
118
- :url => "http://" + Forgery(:internet).domain_name + "/playback",
119
- :length => Forgery(:basic).number
120
- }
121
- puts " - Creating playback format #{params[:format_type]}"
122
- format = BigbluebuttonPlaybackFormat.create(params)
123
- format.recording = recording
124
- id = playback_types[rand(playback_types.length)]
125
- playback_types.delete(id)
126
- format.playback_type = BigbluebuttonPlaybackType.find(id)
127
- format.save!
103
+ # Basic metadata the gem always adds and should always be there
104
+ basic_metadata =
105
+ [{
106
+ :name => BigbluebuttonRails.configuration.metadata_user_id,
107
+ :content => Forgery(:basic).number(:at_most => 1000)
108
+ }, {
109
+ :name => BigbluebuttonRails.configuration.metadata_user_name,
110
+ :content => Forgery(:name).full_name
111
+ }]
112
+ basic_metadata.each do |meta_params|
113
+ metadata = BigbluebuttonMetadata.create(meta_params)
114
+ metadata.owner = recording
115
+ metadata.save!
116
+ puts " - Creating recording metadata #{meta_params[:name]}"
117
+ end
118
+
119
+ # Recording metadata
120
+ 3.times do |n_metadata|
121
+ params = {
122
+ :name => "#{Forgery(:name).first_name.downcase}-#{n_metadata}",
123
+ :content => Forgery(:name).full_name
124
+ }
125
+ puts " - Creating recording metadata #{params[:name]}"
126
+ metadata = BigbluebuttonMetadata.create(params)
127
+ metadata.owner = recording
128
+ metadata.save!
129
+ end
130
+
131
+ # Recording playback formats
132
+ playback_types = [1,2,3]
133
+ 3.times do |n_format|
134
+ params = {
135
+ :url => "http://" + Forgery(:internet).domain_name + "/playback",
136
+ :length => Forgery(:basic).number
137
+ }
138
+ puts " - Creating playback format #{params[:format_type]}"
139
+ format = BigbluebuttonPlaybackFormat.create(params)
140
+ format.recording = recording
141
+ id = playback_types[rand(playback_types.length)]
142
+ playback_types.delete(id)
143
+ format.playback_type = BigbluebuttonPlaybackType.find(id)
144
+ format.save!
145
+ end
128
146
  end
129
147
 
130
148
  end
@@ -11,7 +11,7 @@ def mock_server_and_api
11
11
  # when testing rooms
12
12
  if defined?(room) and not room.nil?
13
13
  room.stub(:select_server) { @server_mock }
14
- BigbluebuttonRoom.stub(:find_by_param) { room }
14
+ BigbluebuttonRoom.stub(:find_by) { room }
15
15
  BigbluebuttonRoom.stub(:find) { room }
16
16
  end
17
17
 
@@ -1,14 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe BigbluebuttonFinishMeetings do
3
+ describe BigbluebuttonFinishMeetingsWorker do
4
4
 
5
5
  it "runs BigbluebuttonRails::BackgroundTasks.finish_meetings" do
6
6
  expect(BigbluebuttonRails::BackgroundTasks).to receive(:finish_meetings).once
7
- BigbluebuttonFinishMeetings.perform
7
+ BigbluebuttonFinishMeetingsWorker.perform
8
8
  end
9
9
 
10
10
  it "uses the queue :bigbluebutton_rails" do
11
- BigbluebuttonFinishMeetings.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
11
+ BigbluebuttonFinishMeetingsWorker.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
12
12
  end
13
13
 
14
14
  end
@@ -1,13 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe BigbluebuttonMeetingUpdater do
3
+ describe BigbluebuttonMeetingUpdaterWorker do
4
4
 
5
5
  it "uses the queue :bigbluebutton_rails" do
6
- BigbluebuttonMeetingUpdater.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
6
+ BigbluebuttonMeetingUpdaterWorker.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
7
7
  end
8
8
 
9
9
  describe "#perform" do
10
10
  let!(:api) { double(BigBlueButton::BigBlueButtonApi) }
11
+ let!(:server) { FactoryGirl.create(:bigbluebutton_server) }
11
12
 
12
13
  it "waits the amount of time specified before starting"
13
14
 
@@ -18,7 +19,7 @@ describe BigbluebuttonMeetingUpdater do
18
19
  expect(BigbluebuttonRoom).to receive(:find).with(room.id).and_return(room)
19
20
  expect(room).to receive(:fetch_meeting_info).once
20
21
  }
21
- it { BigbluebuttonMeetingUpdater.perform(room.id) }
22
+ it { BigbluebuttonMeetingUpdaterWorker.perform(room.id) }
22
23
  end
23
24
 
24
25
  context "calls finish_meetings if an exception 'notFound' is raised" do
@@ -35,7 +36,7 @@ describe BigbluebuttonMeetingUpdater do
35
36
  expect(api).to receive(:get_meeting_info).once { raise exception }
36
37
  expect(room).to receive(:finish_meetings).once
37
38
  }
38
- it { expect { BigbluebuttonMeetingUpdater.perform(room.id) }.not_to raise_exception }
39
+ it { expect { BigbluebuttonMeetingUpdaterWorker.perform(room.id) }.not_to raise_exception }
39
40
  end
40
41
 
41
42
  context "calls finish_meetings if an exception other than 'notFound' is raised" do
@@ -52,7 +53,7 @@ describe BigbluebuttonMeetingUpdater do
52
53
  expect(api).to receive(:get_meeting_info).once { raise exception }
53
54
  expect(room).to receive(:finish_meetings)
54
55
  }
55
- it { expect { BigbluebuttonMeetingUpdater.perform(room.id) }.not_to raise_exception }
56
+ it { expect { BigbluebuttonMeetingUpdaterWorker.perform(room.id) }.not_to raise_exception }
56
57
  end
57
58
 
58
59
  context "calls finish_meetings if an exception with a blank key is raised" do
@@ -69,7 +70,7 @@ describe BigbluebuttonMeetingUpdater do
69
70
  expect(api).to receive(:get_meeting_info).once { raise exception }
70
71
  expect(room).to receive(:finish_meetings)
71
72
  }
72
- it { expect { BigbluebuttonMeetingUpdater.perform(room.id) }.not_to raise_exception }
73
+ it { expect { BigbluebuttonMeetingUpdaterWorker.perform(room.id) }.not_to raise_exception }
73
74
  end
74
75
 
75
76
  context "doesn't break if the room is not found" do
@@ -84,7 +85,7 @@ describe BigbluebuttonMeetingUpdater do
84
85
  expect(room).not_to receive(:fetch_meeting_info)
85
86
  expect(room).not_to receive(:finish_meetings)
86
87
  }
87
- it { BigbluebuttonMeetingUpdater.perform(room.id) }
88
+ it { BigbluebuttonMeetingUpdaterWorker.perform(room.id) }
88
89
  end
89
90
  end
90
91
  end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ describe BigbluebuttonRecordingsForRoomWorker do
4
+
5
+ it "uses the queue :bigbluebutton_rails" do
6
+ BigbluebuttonRecordingsForRoomWorker.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
7
+ end
8
+
9
+ describe "#perform" do
10
+ let!(:room) { FactoryGirl.create(:bigbluebutton_room) }
11
+
12
+ context "calls #fetch_recordings on the room" do
13
+ before {
14
+ BigbluebuttonRoom.stub(:find).and_return(room)
15
+ expect(room).to receive(:fetch_recordings).once
16
+ }
17
+ it { BigbluebuttonRecordingsForRoomWorker.perform(room.id) }
18
+ end
19
+
20
+ context "if there are still tries left" do
21
+ before {
22
+ BigbluebuttonRoom.stub(:find).and_return(room)
23
+ room.stub(:fetch_recordings)
24
+ expect(Resque).to receive(:enqueue_in)
25
+ .with(5.minutes, ::BigbluebuttonRecordingsForRoomWorker, room.id, 0)
26
+ .once
27
+ }
28
+ it { BigbluebuttonRecordingsForRoomWorker.perform(room.id, 1) }
29
+ end
30
+
31
+ context "if there are no more tries left" do
32
+ before {
33
+ BigbluebuttonRoom.stub(:find).and_return(room)
34
+ room.stub(:fetch_recordings)
35
+ expect(Resque).not_to receive(:enqueue_in)
36
+ }
37
+ it { BigbluebuttonRecordingsForRoomWorker.perform(room.id, 0) }
38
+ end
39
+
40
+ context "if the room id is not found" do
41
+ before {
42
+ BigbluebuttonRoom.stub(:find).and_return(nil)
43
+ expect(room).not_to receive(:fetch_recordings)
44
+ expect(Resque).not_to receive(:enqueue_in)
45
+ }
46
+ it { BigbluebuttonRecordingsForRoomWorker.perform(room.id) }
47
+ end
48
+ end
49
+ end
@@ -1,14 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe BigbluebuttonUpdateRecordings do
3
+ describe BigbluebuttonUpdateRecordingsWorker do
4
4
 
5
5
  it "runs BigbluebuttonRails::BackgroundTasks.finish_meetings" do
6
6
  expect(BigbluebuttonRails::BackgroundTasks).to receive(:update_recordings).once
7
- BigbluebuttonUpdateRecordings.perform
7
+ BigbluebuttonUpdateRecordingsWorker.perform
8
8
  end
9
9
 
10
10
  it "uses the queue :bigbluebutton_rails" do
11
- BigbluebuttonUpdateRecordings.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
11
+ BigbluebuttonUpdateRecordingsWorker.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
12
12
  end
13
13
 
14
14
  end
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe BigbluebuttonUpdateServerConfigs do
3
+ describe BigbluebuttonUpdateServerConfigsWorker do
4
4
 
5
5
  it "uses the queue :bigbluebutton_rails" do
6
- BigbluebuttonUpdateServerConfigs.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
6
+ BigbluebuttonUpdateServerConfigsWorker.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
7
7
  end
8
8
 
9
9
  describe "#perform" do
@@ -23,7 +23,7 @@ describe BigbluebuttonUpdateServerConfigs do
23
23
  expect(servers[1]).to receive(:update_config).once
24
24
  expect(servers[2]).to receive(:update_config).once
25
25
  }
26
- it { BigbluebuttonUpdateServerConfigs.perform }
26
+ it { BigbluebuttonUpdateServerConfigsWorker.perform }
27
27
  end
28
28
 
29
29
  context "updates the version of each server" do
@@ -36,7 +36,7 @@ describe BigbluebuttonUpdateServerConfigs do
36
36
  expect(servers[0]).to receive(:set_api_version_from_server).at_least(:once).and_return(new_version)
37
37
  expect(servers[1]).to receive(:set_api_version_from_server).at_least(:once).and_return(new_version)
38
38
  expect(servers[2]).to receive(:set_api_version_from_server).at_least(:once).and_return(new_version)
39
- BigbluebuttonUpdateServerConfigs.perform
39
+ BigbluebuttonUpdateServerConfigsWorker.perform
40
40
  }
41
41
  it { servers[0].version.should eql(new_version) }
42
42
  it { servers[1].version.should eql(new_version) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bigbluebutton_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mconf
@@ -81,6 +81,20 @@ dependencies:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
83
  version: 0.8.0
84
+ - !ruby/object:Gem::Dependency
85
+ name: activerecord-import
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '1.0'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '1.0'
84
98
  description: Allows access and use of BigBlueButton from a Ruby on Rails application
85
99
  email:
86
100
  - contact@mconf.org
@@ -95,6 +109,7 @@ files:
95
109
  - ".rvmrc"
96
110
  - ".travis.yml"
97
111
  - CHANGELOG.md
112
+ - Dockerfile
98
113
  - Gemfile
99
114
  - Gemfile.lock
100
115
  - LICENSE
@@ -106,11 +121,13 @@ files:
106
121
  - app/assets/images/badges/google_play_en.png
107
122
  - app/assets/images/badges/google_play_pt-br.png
108
123
  - app/assets/stylesheets/bigbluebutton_rails.css
124
+ - app/controllers/bigbluebutton/api/rooms_controller.rb
109
125
  - app/controllers/bigbluebutton/playback_types_controller.rb
110
126
  - app/controllers/bigbluebutton/recordings_controller.rb
111
127
  - app/controllers/bigbluebutton/rooms_controller.rb
112
128
  - app/controllers/bigbluebutton/servers_controller.rb
113
129
  - app/helpers/bigbluebutton_rails_helper.rb
130
+ - app/models/bigbluebutton_attendee.rb
114
131
  - app/models/bigbluebutton_meeting.rb
115
132
  - app/models/bigbluebutton_metadata.rb
116
133
  - app/models/bigbluebutton_playback_format.rb
@@ -120,10 +137,15 @@ files:
120
137
  - app/models/bigbluebutton_room_options.rb
121
138
  - app/models/bigbluebutton_server.rb
122
139
  - app/models/bigbluebutton_server_config.rb
140
+ - app/views/bigbluebutton/api/error.rabl
141
+ - app/views/bigbluebutton/api/rooms/index.rabl
142
+ - app/views/bigbluebutton/api/rooms/join.rabl
143
+ - app/views/bigbluebutton/api/rooms/running.rabl
123
144
  - app/views/bigbluebutton/recordings/_form.html.erb
124
145
  - app/views/bigbluebutton/recordings/_recordings.html.erb
125
146
  - app/views/bigbluebutton/recordings/edit.html.erb
126
147
  - app/views/bigbluebutton/recordings/index.html.erb
148
+ - app/views/bigbluebutton/recordings/play.html.erb
127
149
  - app/views/bigbluebutton/recordings/show.html.erb
128
150
  - app/views/bigbluebutton/rooms/_form.html.erb
129
151
  - app/views/bigbluebutton/rooms/_rooms.html.erb
@@ -144,16 +166,20 @@ files:
144
166
  - app/views/bigbluebutton/servers/recordings.html.erb
145
167
  - app/views/bigbluebutton/servers/rooms.html.erb
146
168
  - app/views/bigbluebutton/servers/show.html.erb
147
- - app/workers/bigbluebutton_finish_meetings.rb
148
- - app/workers/bigbluebutton_meeting_updater.rb
149
- - app/workers/bigbluebutton_update_recordings.rb
150
- - app/workers/bigbluebutton_update_server_configs.rb
169
+ - app/workers/bigbluebutton_finish_meetings_worker.rb
170
+ - app/workers/bigbluebutton_meeting_updater_worker.rb
171
+ - app/workers/bigbluebutton_recordings_for_room_worker.rb
172
+ - app/workers/bigbluebutton_update_recordings_worker.rb
173
+ - app/workers/bigbluebutton_update_server_configs_worker.rb
151
174
  - bigbluebutton_rails.gemspec
152
175
  - config/locales/en.yml
153
176
  - config/locales/pt-br.yml
154
177
  - config/resque/resque.rake
155
178
  - config/resque/workers_schedule.yml
179
+ - docker-compose.yml
180
+ - dumb-init_1.2.0
156
181
  - lib/bigbluebutton_rails.rb
182
+ - lib/bigbluebutton_rails/api_controller_methods.rb
157
183
  - lib/bigbluebutton_rails/background_tasks.rb
158
184
  - lib/bigbluebutton_rails/configuration.rb
159
185
  - lib/bigbluebutton_rails/controller_methods.rb
@@ -164,7 +190,6 @@ files:
164
190
  - lib/bigbluebutton_rails/rails/routes.rb
165
191
  - lib/bigbluebutton_rails/utils.rb
166
192
  - lib/bigbluebutton_rails/version.rb
167
- - lib/classes/bigbluebutton_attendee.rb
168
193
  - lib/generators/bigbluebutton_rails/install_generator.rb
169
194
  - lib/generators/bigbluebutton_rails/templates/migration.rb
170
195
  - lib/generators/bigbluebutton_rails/templates/migration_0_0_4.rb
@@ -175,20 +200,20 @@ files:
175
200
  - lib/generators/bigbluebutton_rails/templates/migration_2_0_0.rb
176
201
  - lib/generators/bigbluebutton_rails/templates/migration_2_1_0.rb
177
202
  - lib/generators/bigbluebutton_rails/templates/migration_2_2_0.rb
203
+ - lib/generators/bigbluebutton_rails/templates/migration_2_2_0_b.rb
204
+ - lib/generators/bigbluebutton_rails/templates/migration_2_3_0.rb
178
205
  - lib/generators/bigbluebutton_rails/views_generator.rb
179
206
  - lib/tasks/bigbluebutton_rails/meetings.rake
180
207
  - lib/tasks/bigbluebutton_rails/recordings.rake
181
208
  - lib/tasks/bigbluebutton_rails/server_configs.rake
182
209
  - spec/bigbluebutton_rails_spec.rb
183
- - spec/classes/bigbluebutton_attendee_spec.rb
210
+ - spec/controllers/bigbluebutton/api/rooms_controller_spec.rb
184
211
  - spec/controllers/bigbluebutton/playback_types_controller_spec.rb
185
- - spec/controllers/bigbluebutton/recordings_controller_json_responses_spec.rb
186
212
  - spec/controllers/bigbluebutton/recordings_controller_spec.rb
187
213
  - spec/controllers/bigbluebutton/rooms_controller_exception_handling_spec.rb
188
- - spec/controllers/bigbluebutton/rooms_controller_json_responses_spec.rb
189
214
  - spec/controllers/bigbluebutton/rooms_controller_spec.rb
190
- - spec/controllers/bigbluebutton/servers_controller_json_responses_spec.rb
191
215
  - spec/controllers/bigbluebutton/servers_controller_spec.rb
216
+ - spec/factories/bigbluebutton_attendee.rb
192
217
  - spec/factories/bigbluebutton_meeting.rb
193
218
  - spec/factories/bigbluebutton_metadata.rb
194
219
  - spec/factories/bigbluebutton_playback_format.rb
@@ -207,6 +232,7 @@ files:
207
232
  - spec/lib/bigbluebutton_rails/utils_spec.rb
208
233
  - spec/lib/tasks/meetings_rake_spec.rb
209
234
  - spec/lib/tasks/recordings_rake_spec.rb
235
+ - spec/models/bigbluebutton_attendee_spec.rb
210
236
  - spec/models/bigbluebutton_meeting_db_spec.rb
211
237
  - spec/models/bigbluebutton_meeting_spec.rb
212
238
  - spec/models/bigbluebutton_metadata_db_spec.rb
@@ -256,6 +282,7 @@ files:
256
282
  - spec/rails_app/config/initializers/inflections.rb
257
283
  - spec/rails_app/config/initializers/mime_types.rb
258
284
  - spec/rails_app/config/initializers/rack_hotfix.rb
285
+ - spec/rails_app/config/initializers/resque.rb
259
286
  - spec/rails_app/config/initializers/secret_token.rb
260
287
  - spec/rails_app/config/initializers/session_store.rb
261
288
  - spec/rails_app/config/locales/en.yml
@@ -333,10 +360,11 @@ files:
333
360
  - spec/support/mocked_server.rb
334
361
  - spec/support/models/user.rb
335
362
  - spec/support/shared_contexts/rake.rb
336
- - spec/workers/bigbluebutton_finish_meetings_spec.rb
337
- - spec/workers/bigbluebutton_meeting_updater_spec.rb
338
- - spec/workers/bigbluebutton_update_recordings_spec.rb
339
- - spec/workers/bigbluebutton_update_server_configs_spec.rb
363
+ - spec/workers/bigbluebutton_finish_meetings_worker_spec.rb
364
+ - spec/workers/bigbluebutton_meeting_updater_worker_spec.rb
365
+ - spec/workers/bigbluebutton_recordings_for_room_worker_spec.rb
366
+ - spec/workers/bigbluebutton_update_recordings_worker_spec.rb
367
+ - spec/workers/bigbluebutton_update_server_configs_worker_spec.rb
340
368
  homepage: http://github.com/mconf/bigbluebutton_rails
341
369
  licenses:
342
370
  - MIT