bigbluebutton_rails 0.0.2 → 0.0.3

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 (43) hide show
  1. data/CHANGELOG.rdoc +9 -1
  2. data/Gemfile.lock +3 -3
  3. data/README.rdoc +56 -21
  4. data/Rakefile +1 -0
  5. data/app/controllers/bigbluebutton/rooms_controller.rb +92 -35
  6. data/app/models/bigbluebutton_room.rb +136 -27
  7. data/app/models/bigbluebutton_server.rb +22 -6
  8. data/app/views/bigbluebutton/rooms/_form.html.erb +31 -6
  9. data/app/views/bigbluebutton/rooms/edit.html.erb +1 -1
  10. data/app/views/bigbluebutton/rooms/index.html.erb +20 -8
  11. data/app/views/bigbluebutton/rooms/invite.html.erb +56 -0
  12. data/app/views/bigbluebutton/rooms/{join_wait.html.erb → join.html.erb} +16 -12
  13. data/app/views/bigbluebutton/rooms/new.html.erb +1 -1
  14. data/app/views/bigbluebutton/rooms/show.html.erb +33 -9
  15. data/app/views/bigbluebutton/servers/edit.html.erb +1 -1
  16. data/app/views/bigbluebutton/servers/index.html.erb +6 -4
  17. data/app/views/bigbluebutton/servers/new.html.erb +1 -1
  18. data/app/views/bigbluebutton/servers/show.html.erb +5 -5
  19. data/bigbluebutton_rails.gemspec +1 -1
  20. data/config/locales/en.yml +31 -0
  21. data/lib/bigbluebutton_rails/controller_methods.rb +7 -1
  22. data/lib/bigbluebutton_rails/rails/routes.rb +10 -1
  23. data/lib/bigbluebutton_rails/version.rb +1 -1
  24. data/lib/bigbluebutton_rails.rb +0 -1
  25. data/lib/classes/bigbluebutton_attendee.rb +2 -0
  26. data/lib/generators/bigbluebutton_rails/install_generator.rb +2 -1
  27. data/lib/generators/bigbluebutton_rails/public_generator.rb +0 -1
  28. data/lib/generators/bigbluebutton_rails/templates/migration.rb +8 -2
  29. data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +339 -88
  30. data/spec/factories/bigbluebutton_room.rb +5 -3
  31. data/spec/factories/user.rb +3 -0
  32. data/spec/generators/public_generator_spec.rb +0 -1
  33. data/spec/generators/views_generator_spec.rb +1 -1
  34. data/spec/models/bigbluebutton_room_spec.rb +276 -177
  35. data/spec/models/bigbluebutton_server_spec.rb +117 -96
  36. data/spec/routing/bigbluebutton/rooms_routing_spec.rb +24 -0
  37. data/spec/support/matchers/shoulda/be_boolean.rb +38 -0
  38. data/spec/support/mocked_server.rb +14 -0
  39. metadata +26 -26
  40. data/config/routes.rb +0 -2
  41. data/lib/classes/bigbluebutton_meeting.rb +0 -18
  42. data/lib/generators/bigbluebutton_rails/templates/public/javascripts/heartbeat.js +0 -54
  43. data/spec/classes/bigbluebutton_meeting_spec.rb +0 -62
@@ -5,122 +5,143 @@ describe BigbluebuttonServer do
5
5
  BigbluebuttonServer.new.should be_a_kind_of(ActiveRecord::Base)
6
6
  end
7
7
 
8
- it { should have_many(:rooms) }
8
+ # to ensure that the migration is correct
9
+ context "db" do
10
+ it { should have_db_column(:name).of_type(:string) }
11
+ it { should have_db_column(:url).of_type(:string) }
12
+ it { should have_db_column(:salt).of_type(:string) }
13
+ it { should have_db_column(:version).of_type(:string) }
14
+ end
9
15
 
10
- it { should validate_presence_of(:name) }
11
- it { should validate_presence_of(:url) }
12
- it { should validate_presence_of(:salt) }
13
- it { should validate_presence_of(:version) }
16
+ context do
14
17
 
15
- it { should allow_mass_assignment_of(:name) }
16
- it { should allow_mass_assignment_of(:url) }
17
- it { should allow_mass_assignment_of(:salt) }
18
+ it { should have_many(:rooms) }
18
19
 
19
- it {
20
- Factory.create(:bigbluebutton_server)
21
- should validate_uniqueness_of(:url)
22
- }
20
+ it { should validate_presence_of(:name) }
21
+ it { should validate_presence_of(:url) }
22
+ it { should validate_presence_of(:salt) }
23
+ it { should validate_presence_of(:version) }
23
24
 
24
- it "has associated rooms" do
25
- server = Factory.create(:bigbluebutton_server)
26
- server.rooms.should be_empty
25
+ it { should allow_mass_assignment_of(:name) }
26
+ it { should allow_mass_assignment_of(:url) }
27
+ it { should allow_mass_assignment_of(:salt) }
27
28
 
28
- Factory.create(:bigbluebutton_room, :server => server)
29
- server = BigbluebuttonServer.find(server.id)
30
- server.rooms.should_not be_empty
31
- end
29
+ it {
30
+ Factory.create(:bigbluebutton_server)
31
+ should validate_uniqueness_of(:url)
32
+ }
33
+
34
+ it "has associated rooms" do
35
+ server = Factory.create(:bigbluebutton_server)
36
+ server.rooms.should be_empty
37
+
38
+ Factory.create(:bigbluebutton_room, :server => server)
39
+ server = BigbluebuttonServer.find(server.id)
40
+ server.rooms.should_not be_empty
41
+ end
32
42
 
33
- it "destroys associated rooms" do
34
- server = Factory.create(:bigbluebutton_server)
35
- Factory.create(:bigbluebutton_room, :server => server)
36
- Factory.create(:bigbluebutton_room, :server => server)
37
- expect {
43
+ it "destroys associated rooms" do
44
+ server = Factory.create(:bigbluebutton_server)
45
+ Factory.create(:bigbluebutton_room, :server => server)
46
+ Factory.create(:bigbluebutton_room, :server => server)
38
47
  expect {
39
- server.destroy
40
- }.to change{ BigbluebuttonServer.count }.by(-1)
41
- }.to change{ BigbluebuttonRoom.count }.by(-2)
42
- end
48
+ expect {
49
+ server.destroy
50
+ }.to change{ BigbluebuttonServer.count }.by(-1)
51
+ }.to change{ BigbluebuttonRoom.count }.by(-2)
52
+ end
43
53
 
44
- it { should ensure_length_of(:name).is_at_least(1).is_at_most(500) }
45
- it { should ensure_length_of(:url).is_at_most(500) }
46
- it { should ensure_length_of(:salt).is_at_least(1).is_at_most(500) }
47
-
48
- it { should allow_value('http://demo.bigbluebutton.org/bigbluebutton/api').for(:url) }
49
- it { should_not allow_value('').for(:url) }
50
- it { should_not allow_value('http://demo.bigbluebutton.org').for(:url) }
51
- it { should_not allow_value('demo.bigbluebutton.org/bigbluebutton/api').for(:url) }
52
-
53
- it { should allow_value('0.64').for(:version) }
54
- it { should allow_value('0.7').for(:version) }
55
- it { should_not allow_value('').for(:version) }
56
- it { should_not allow_value('0.8').for(:version) }
57
- it { should_not allow_value('0.6').for(:version) }
58
-
59
- context "has an api object" do
60
- let(:server) { server = Factory.build(:bigbluebutton_server) }
61
- it { should respond_to(:api) }
62
- it { server.api.should_not be_nil }
63
- it {
64
- server.save
65
- server.api.should_not be_nil
66
- }
67
- context "with the correct attributes" do
68
- let(:api) { api = BigBlueButton::BigBlueButtonApi.new(server.url, server.salt,
69
- server.version, false) }
70
- it { server.api.should == api }
71
-
72
- # updating any of these attributes should update the api
73
- { :url => 'http://anotherurl.com/bigbluebutton/api',
74
- :salt => '12345-abcde-67890-fghijk', :version => '0.64' }.each do |k,v|
75
- it {
76
- server.send("#{k}=", v)
77
- server.api.send(k).should == v
78
- }
54
+ it { should ensure_length_of(:name).is_at_least(1).is_at_most(500) }
55
+ it { should ensure_length_of(:url).is_at_most(500) }
56
+ it { should ensure_length_of(:salt).is_at_least(1).is_at_most(500) }
57
+
58
+ it { should allow_value('http://demo.bigbluebutton.org/bigbluebutton/api').for(:url) }
59
+ it { should_not allow_value('').for(:url) }
60
+ it { should_not allow_value('http://demo.bigbluebutton.org').for(:url) }
61
+ it { should_not allow_value('demo.bigbluebutton.org/bigbluebutton/api').for(:url) }
62
+
63
+ it { should allow_value('0.64').for(:version) }
64
+ it { should allow_value('0.7').for(:version) }
65
+ it { should_not allow_value('').for(:version) }
66
+ it { should_not allow_value('0.8').for(:version) }
67
+ it { should_not allow_value('0.6').for(:version) }
68
+
69
+ context "has an api object" do
70
+ let(:server) { server = Factory.build(:bigbluebutton_server) }
71
+ it { should respond_to(:api) }
72
+ it { server.api.should_not be_nil }
73
+ it {
74
+ server.save
75
+ server.api.should_not be_nil
76
+ }
77
+ context "with the correct attributes" do
78
+ let(:api) { api = BigBlueButton::BigBlueButtonApi.new(server.url, server.salt,
79
+ server.version, false) }
80
+ it { server.api.should == api }
81
+
82
+ # updating any of these attributes should update the api
83
+ { :url => 'http://anotherurl.com/bigbluebutton/api',
84
+ :salt => '12345-abcde-67890-fghijk', :version => '0.64' }.each do |k,v|
85
+ it {
86
+ server.send("#{k}=", v)
87
+ server.api.send(k).should == v
88
+ }
89
+ end
79
90
  end
80
91
  end
81
- end
82
92
 
83
- context "fetching info from bbb" do
84
- let(:server) { Factory.create(:bigbluebutton_server) }
85
- let(:room1) { Factory.create(:bigbluebutton_room, :server => server, :meeting_id => "room1") }
86
- let(:room2) { Factory.create(:bigbluebutton_room, :server => server, :meeting_id => "room2") }
87
- before {
88
- @api_mock = mock(BigBlueButton::BigBlueButtonApi)
89
- server.stub(:api).and_return(@api_mock)
90
- }
93
+ context "fetching info from bbb" do
94
+ let(:server) { Factory.create(:bigbluebutton_server) }
95
+ let(:room1) { Factory.create(:bigbluebutton_room, :server => server, :meetingid => "room1") }
96
+ let(:room2) { Factory.create(:bigbluebutton_room, :server => server, :meetingid => "room2") }
97
+ before {
98
+ @api_mock = mock(BigBlueButton::BigBlueButtonApi)
99
+ server.stub(:api).and_return(@api_mock)
100
+ }
91
101
 
92
- # the hashes should be exactly as returned by bigbluebutton-api-ruby to be sure we are testing it right
93
- let(:meetings) {
94
- [
95
- { :meetingID => room1.meeting_id, :attendeePW=>"ap", :moderatorPW=>"mp", :hasBeenForciblyEnded => "false", :running => "true"},
96
- { :meetingID => room2.meeting_id, :attendeePW=>"pass", :moderatorPW=>"pass", :hasBeenForciblyEnded => "true", :running => "false"}
97
- ]
98
- }
99
- let(:hash) {
100
- { :returncode => "SUCCESS",
101
- :meetings => meetings
102
+ # the hashes should be exactly as returned by bigbluebutton-api-ruby to be sure we are testing it right
103
+ let(:meetings) {
104
+ [
105
+ { :meetingID => room1.meetingid, :attendeePW=>"ap", :moderatorPW=>"mp", :hasBeenForciblyEnded => false, :running => true},
106
+ { :meetingID => room2.meetingid, :attendeePW=>"pass", :moderatorPW=>"pass", :hasBeenForciblyEnded => true, :running => false},
107
+ { :meetingID => "im not in the db", :attendeePW=>"pass", :moderatorPW=>"pass", :hasBeenForciblyEnded => true, :running => true}
108
+ ]
102
109
  }
103
- }
110
+ let(:hash) {
111
+ { :returncode => true,
112
+ :meetings => meetings
113
+ }
114
+ }
115
+
116
+ it { should respond_to(:fetch_meetings) }
117
+ it { should respond_to(:meetings) }
104
118
 
105
- it { should respond_to(:fetch_meetings) }
106
- it { should respond_to(:meetings) }
119
+ it "fetches meetings" do
120
+ @api_mock.should_receive(:get_meetings).and_return(hash)
121
+ server.fetch_meetings
107
122
 
108
- it "fetches meetings" do
109
- @api_mock.should_receive(:get_meetings).and_return(hash)
110
- server.fetch_meetings
123
+ server.meetings.count.should be(3)
111
124
 
112
- server.meetings.count.should be(2)
125
+ server.meetings[0].should == room1
126
+ server.meetings[0].attendee_password.should == "ap"
127
+ server.meetings[0].moderator_password.should == "mp"
128
+ server.meetings[0].running.should == true
113
129
 
114
- server.meetings[0].running.should == true
115
- server.meetings[0].has_been_forcibly_ended.should == false
116
- server.meetings[0].room.should == room1
130
+ server.meetings[1].should == room2
131
+ server.meetings[1].attendee_password.should == "pass"
132
+ server.meetings[1].moderator_password.should == "pass"
133
+ server.meetings[1].running.should == false
134
+
135
+ server.meetings[2].meetingid.should == "im not in the db"
136
+ server.meetings[2].server.should == server
137
+ server.meetings[2].new_record?.should be_true
138
+ server.meetings[2].attendee_password.should == "pass"
139
+ server.meetings[2].moderator_password.should == "pass"
140
+ server.meetings[2].running.should == true
141
+ end
117
142
 
118
- server.meetings[1].running.should == false
119
- server.meetings[1].has_been_forcibly_ended.should == true
120
- server.meetings[1].room.should == room2
121
143
  end
122
144
 
123
145
  end
124
146
 
125
-
126
147
  end
@@ -44,6 +44,14 @@ describe Bigbluebutton::RoomsController do
44
44
  {:get => "/#{prefix}/servers/1/rooms/1/end"}.
45
45
  should route_to(:controller => "bigbluebutton/rooms", :action => "end", :server_id => "1", :id => "1")
46
46
  }
47
+ it {
48
+ {:get => "/#{prefix}/servers/1/rooms/1/invite"}.
49
+ should route_to(:controller => "bigbluebutton/rooms", :action => "invite", :server_id => "1", :id => "1")
50
+ }
51
+ it {
52
+ {:post => "/#{prefix}/servers/1/rooms/1/join"}.
53
+ should route_to(:controller => "bigbluebutton/rooms", :action => "auth", :server_id => "1", :id => "1")
54
+ }
47
55
 
48
56
  end
49
57
 
@@ -64,6 +72,14 @@ describe Bigbluebutton::RoomsController do
64
72
  should route(:get, "/users/1/room/1/end").
65
73
  to(:action => :end, :user_id => "1", :id => "1")
66
74
  }
75
+ it {
76
+ should route(:get, "/users/1/room/1/invite").
77
+ to(:action => :invite, :user_id => "1", :id => "1")
78
+ }
79
+ it {
80
+ should route(:post, "/users/1/room/1/join").
81
+ to(:action => :auth, :user_id => "1", :id => "1")
82
+ }
67
83
 
68
84
  # room matchers inside users/spaces
69
85
  # FIXME shoulda-matcher is not working here, why?
@@ -83,6 +99,14 @@ describe Bigbluebutton::RoomsController do
83
99
  { :get => "/users/1/spaces/2/room/3/end" }.
84
100
  should route_to(:controller => "bigbluebutton/rooms", :action => "end", :user_id => "1", :space_id => "2", :id => "3")
85
101
  }
102
+ it {
103
+ { :get => "/users/1/spaces/2/room/3/invite" }.
104
+ should route_to(:controller => "bigbluebutton/rooms", :action => "invite", :user_id => "1", :space_id => "2", :id => "3")
105
+ }
106
+ it {
107
+ { :post => "/users/1/spaces/2/room/3/join" }.
108
+ should route_to(:controller => "bigbluebutton/rooms", :action => "auth", :user_id => "1", :space_id => "2", :id => "3")
109
+ }
86
110
  end
87
111
 
88
112
  end
@@ -0,0 +1,38 @@
1
+ module Shoulda
2
+ module Matchers
3
+ module ActiveRecord # :nodoc
4
+
5
+ # Usage example: be_boolean(:private)
6
+ def be_boolean(attribute)
7
+ BeBooleanMatcher.new(attribute)
8
+ end
9
+
10
+ class BeBooleanMatcher < ValidationMatcher # :nodoc:
11
+ def initialize(attribute)
12
+ @attribute = attribute
13
+ end
14
+
15
+ def matches?(subject)
16
+ @subject = subject
17
+ disallows_value_of(nil) &&
18
+ disallows_value_of("") &&
19
+ allows_value_of(true) &&
20
+ allows_value_of(false)
21
+ end
22
+
23
+ def description
24
+ description = "#{@attribute} should be a boolean"
25
+ end
26
+
27
+ def failure_message
28
+ "Expected #{@attribute} to be a boolean"
29
+ end
30
+
31
+ def negative_failure_message
32
+ "Did not expect #{@attribute} to be a boolean"
33
+ end
34
+
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,14 @@
1
+ def mock_server_and_api
2
+ @api_mock = mock(BigBlueButton::BigBlueButtonApi)
3
+ @server_mock = mock_model(BigbluebuttonServer)
4
+ @server_mock.stub(:api).and_return(@api_mock)
5
+ BigbluebuttonServer.stub(:find).and_return(@server_mock)
6
+ end
7
+
8
+ def mocked_server
9
+ @server_mock
10
+ end
11
+
12
+ def mocked_api
13
+ @api_mock
14
+ end
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: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-04-08 00:00:00.000000000Z
12
+ date: 2011-04-28 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &81912800 !ruby/object:Gem::Requirement
16
+ requirement: &73818420 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,21 +21,21 @@ dependencies:
21
21
  version: 3.0.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *81912800
24
+ version_requirements: *73818420
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bigbluebutton-api-ruby
27
- requirement: &81912560 !ruby/object:Gem::Requirement
27
+ requirement: &73814520 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
31
31
  - !ruby/object:Gem::Version
32
- version: 0.0.9
32
+ version: 0.0.10
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *81912560
35
+ version_requirements: *73814520
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec-rails
38
- requirement: &81912310 !ruby/object:Gem::Requirement
38
+ requirement: &73814050 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.5.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *81912310
46
+ version_requirements: *73814050
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: factory_girl
49
- requirement: &81912070 !ruby/object:Gem::Requirement
49
+ requirement: &73813560 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.3.2
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *81912070
57
+ version_requirements: *73813560
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: sqlite3-ruby
60
- requirement: &81911830 !ruby/object:Gem::Requirement
60
+ requirement: &73813050 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.3.3
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *81911830
68
+ version_requirements: *73813050
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: generator_spec
71
- requirement: &81911560 !ruby/object:Gem::Requirement
71
+ requirement: &73812640 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.8.2
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *81911560
79
+ version_requirements: *73812640
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: shoulda-matchers
82
- requirement: &81911280 !ruby/object:Gem::Requirement
82
+ requirement: &73812110 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 1.0.0.beta
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *81911280
90
+ version_requirements: *73812110
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: forgery
93
- requirement: &81910980 !ruby/object:Gem::Requirement
93
+ requirement: &73811720 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,7 +98,7 @@ dependencies:
98
98
  version: 0.3.7
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *81910980
101
+ version_requirements: *73811720
102
102
  description: BigBlueButton integration for Ruby on Rails
103
103
  email: mconf@googlegroups.com
104
104
  executables: []
@@ -119,7 +119,8 @@ files:
119
119
  - app/views/bigbluebutton/rooms/_form.html.erb
120
120
  - app/views/bigbluebutton/rooms/edit.html.erb
121
121
  - app/views/bigbluebutton/rooms/index.html.erb
122
- - app/views/bigbluebutton/rooms/join_wait.html.erb
122
+ - app/views/bigbluebutton/rooms/invite.html.erb
123
+ - app/views/bigbluebutton/rooms/join.html.erb
123
124
  - app/views/bigbluebutton/rooms/new.html.erb
124
125
  - app/views/bigbluebutton/rooms/show.html.erb
125
126
  - app/views/bigbluebutton/servers/_form.html.erb
@@ -129,28 +130,25 @@ files:
129
130
  - app/views/bigbluebutton/servers/show.html.erb
130
131
  - bigbluebutton_rails.gemspec
131
132
  - config/locales/en.yml
132
- - config/routes.rb
133
133
  - lib/bigbluebutton_rails.rb
134
134
  - lib/bigbluebutton_rails/controller_methods.rb
135
135
  - lib/bigbluebutton_rails/rails.rb
136
136
  - lib/bigbluebutton_rails/rails/routes.rb
137
137
  - lib/bigbluebutton_rails/version.rb
138
138
  - lib/classes/bigbluebutton_attendee.rb
139
- - lib/classes/bigbluebutton_meeting.rb
140
139
  - lib/generators/bigbluebutton_rails/install_generator.rb
141
140
  - lib/generators/bigbluebutton_rails/public_generator.rb
142
141
  - lib/generators/bigbluebutton_rails/templates/migration.rb
143
142
  - lib/generators/bigbluebutton_rails/templates/public/images/loading.gif
144
- - lib/generators/bigbluebutton_rails/templates/public/javascripts/heartbeat.js
145
143
  - lib/generators/bigbluebutton_rails/templates/public/javascripts/jquery.min.js
146
144
  - lib/generators/bigbluebutton_rails/views_generator.rb
147
145
  - spec/bigbluebutton_rails_spec.rb
148
146
  - spec/classes/bigbluebutton_attendee_spec.rb
149
- - spec/classes/bigbluebutton_meeting_spec.rb
150
147
  - spec/controllers/bigbluebutton/rooms_controller_spec.rb
151
148
  - spec/controllers/bigbluebutton/servers_controller_spec.rb
152
149
  - spec/factories/bigbluebutton_room.rb
153
150
  - spec/factories/bigbluebutton_server.rb
151
+ - spec/factories/user.rb
154
152
  - spec/generators/install_generator_spec.rb
155
153
  - spec/generators/public_generator_spec.rb
156
154
  - spec/generators/views_generator_spec.rb
@@ -205,6 +203,8 @@ files:
205
203
  - spec/routing/bigbluebutton/servers_routing_spec.rb
206
204
  - spec/spec_helper.rb
207
205
  - spec/support/matchers/have_same_attributes_as.rb
206
+ - spec/support/matchers/shoulda/be_boolean.rb
207
+ - spec/support/mocked_server.rb
208
208
  homepage: http://github.com/mconf/bigbluebutton_rails
209
209
  licenses: []
210
210
  post_install_message:
@@ -219,7 +219,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
219
219
  version: '0'
220
220
  segments:
221
221
  - 0
222
- hash: -956916625
222
+ hash: 1022773263
223
223
  required_rubygems_version: !ruby/object:Gem::Requirement
224
224
  none: false
225
225
  requirements:
@@ -228,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
228
  version: '0'
229
229
  segments:
230
230
  - 0
231
- hash: -956916625
231
+ hash: 1022773263
232
232
  requirements: []
233
233
  rubyforge_project:
234
234
  rubygems_version: 1.7.2
data/config/routes.rb DELETED
@@ -1,2 +0,0 @@
1
- Rails.application.routes.draw do
2
- end
@@ -1,18 +0,0 @@
1
- class BigbluebuttonMeeting
2
-
3
- attr_accessor :running, :has_been_forcibly_ended, :room
4
-
5
- def from_hash(hash)
6
- self.running = hash[:running].downcase == "true"
7
- self.has_been_forcibly_ended = hash[:hasBeenForciblyEnded].downcase == "true"
8
- end
9
-
10
- def ==(other)
11
- r = true
12
- [:running, :has_been_forcibly_ended, :room].each do |param|
13
- r = r && self.send(param) == other.send(param)
14
- end
15
- r
16
- end
17
-
18
- end
@@ -1,54 +0,0 @@
1
- /*
2
- * jHeartbeat 0.3.0
3
- * (C)Alex Richards - http://www.ajtrichards.co.uk/
4
- */
5
-
6
- $.jheartbeat = {
7
-
8
- options: {
9
- url: "heartbeat_default.asp",
10
- delay: 10000,
11
- div_id: "test_div"
12
- },
13
-
14
- beatfunction: function(){
15
-
16
- },
17
-
18
- timeoutobj: {
19
- id: -1
20
- },
21
-
22
- set: function(options, onbeatfunction) {
23
- if (this.timeoutobj.id > -1) {
24
- clearTimeout(this.timeoutobj);
25
- }
26
- if (options) {
27
- $.extend(this.options, options);
28
- }
29
- if (onbeatfunction) {
30
- this.beatfunction = onbeatfunction;
31
- }
32
-
33
- // Add the HeartBeatDIV to the page
34
- $("body").append("<div id=\"" + this.options.div_id + "\" style=\"display: none;\"></div>");
35
- this.timeoutobj.id = setTimeout("$.jheartbeat.beat();", this.options.delay);
36
- },
37
-
38
- beat: function() {
39
- $.ajax({
40
- url: this.options.url,
41
- dataType: "html",
42
- type: "GET",
43
- error: function(e) {
44
- $('#'+ $.jheartbeat.options.div_id).append("Error Requesting Data");
45
- },
46
- success: function(data){
47
- $('#'+ $.jheartbeat.options.div_id).html(data);
48
- }
49
- });
50
- this.timeoutobj.id = setTimeout("$.jheartbeat.beat();", this.options.delay);
51
- this.beatfunction();
52
- }
53
- };
54
-
@@ -1,62 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe BigbluebuttonMeeting do
4
-
5
- it "should be reconized" do
6
- lambda { BigbluebuttonMeeting.new }.should_not raise_error
7
- end
8
-
9
- [:running, :has_been_forcibly_ended, :room].each do |attr|
10
- it { should respond_to(attr) }
11
- it { should respond_to(:"#{attr}=") }
12
- end
13
-
14
- context "equality" do
15
- let(:meeting1) {
16
- m = BigbluebuttonMeeting.new
17
- m.running = true
18
- m.has_been_forcibly_ended = false
19
- m.room = nil
20
- m
21
- }
22
- let(:meeting2) {
23
- m = BigbluebuttonMeeting.new
24
- m.running = false
25
- m.has_been_forcibly_ended = true
26
- m.room = nil
27
- m
28
- }
29
- let(:meeting3) {
30
- m = BigbluebuttonMeeting.new
31
- m.running = meeting1.running
32
- m.has_been_forcibly_ended = meeting1.has_been_forcibly_ended
33
- m.room = meeting1.room
34
- m
35
- }
36
-
37
- it { meeting1.should == meeting3 }
38
- it { meeting1.should_not == meeting2 }
39
- it { meeting2.should_not == meeting3 }
40
- end
41
-
42
- context "gets params from hash" do
43
- let(:hash) { {:running=>"false", :hasBeenForciblyEnded=>"true"} }
44
- let(:meeting) { BigbluebuttonMeeting.new }
45
-
46
- it "standard case" do
47
- meeting.from_hash(hash)
48
- meeting.running.should == false
49
- meeting.has_been_forcibly_ended.should == true
50
- end
51
-
52
- it "case insensitive" do
53
- hash[:running] = "TRue"
54
- hash[:hasBeenForciblyEnded] = "FalSE"
55
- meeting.from_hash(hash)
56
- meeting.running.should == true
57
- meeting.has_been_forcibly_ended.should == false
58
- end
59
-
60
- end
61
-
62
- end