bigbluebutton_rails 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
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