innowhite 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.
data/Manifest ADDED
@@ -0,0 +1,4 @@
1
+ README.rdoc
2
+ Rakefile
3
+ lib/innowhite.rb
4
+ Manifest
data/README.rdoc ADDED
@@ -0,0 +1 @@
1
+ this is version beta of the gem
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'echoe'
4
+
5
+ Echoe.new('innowhite', '0.1.0') do |p|
6
+ p.description = "Innowhite Api"
7
+ p.url = "http://github.com/bainur/innowhite"
8
+ p.author = "bainur"
9
+ p.email = "inoe.bainur@gmail.com"
10
+ p.ignore_pattern = ["tmp/*", "script/*"]
11
+ p.development_dependencies = []
12
+ end
13
+
14
+ Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
data/innowhite.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{innowhite}
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = [%q{bainur}]
9
+ s.date = %q{2011-08-11}
10
+ s.description = %q{Innowhite Api}
11
+ s.email = %q{inoe.bainur@gmail.com}
12
+ s.extra_rdoc_files = [%q{README.rdoc}, %q{lib/innowhite.rb}]
13
+ s.files = [%q{README.rdoc}, %q{Rakefile}, %q{lib/innowhite.rb}, %q{Manifest}, %q{innowhite.gemspec}]
14
+ s.homepage = %q{http://github.com/bainur/innowhite}
15
+ s.rdoc_options = [%q{--line-numbers}, %q{--inline-source}, %q{--title}, %q{Innowhite}, %q{--main}, %q{README.rdoc}]
16
+ s.require_paths = [%q{lib}]
17
+ s.rubyforge_project = %q{innowhite}
18
+ s.rubygems_version = %q{1.8.6}
19
+ s.summary = %q{Innowhite Api}
20
+
21
+ if s.respond_to? :specification_version then
22
+ s.specification_version = 3
23
+
24
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
25
+ else
26
+ end
27
+ else
28
+ end
29
+ end
data/lib/innowhite.rb ADDED
@@ -0,0 +1,71 @@
1
+ module InnowhiteLib
2
+
3
+ class Innowhite
4
+
5
+ attr_accessor :mod_name, :org_name, :sub, :server_address, :private_key
6
+
7
+ def initialize(mod_name, org_name = nil)
8
+ load_settings
9
+ @mod_name = mod_name.gsub(/ /,'')
10
+ @org_name = org_name unless org_name.blank?
11
+ end
12
+
13
+ def load_settings
14
+ settings = YAML.load_file('config/innowhite.yml')
15
+ @server_address = settings["innowhite"]["server_address"]
16
+ @private_key = settings["innowhite"]["private_key"]
17
+ @org_name = settings["innowhite"]["organization"]
18
+ end
19
+
20
+ def create_room
21
+ room_id = set_room_id
22
+ address = join_room_helper(@server_address,@org_name, room_id, @mod_name,true)
23
+ return {:address => address, :room_id => room_id}
24
+ end
25
+
26
+ def set_room_id
27
+ room_id = ""
28
+ doc = Nokogiri::XML(open("#{@server_address}CreateRoom?parentOrg=innowhite&orgName=#{@sub_name}&user=#{@mod_name}&checksum=#{generate_checksum("innowhite",@sub_name, @mod_name)}"))
29
+ status = doc.xpath('//returnStatus').text.gsub("\n","") rescue ""
30
+ if status.include?('SUCCESS')
31
+ room_id = doc.xpath('//roomId').text.gsub("\n","").to_i
32
+ elsif status.include?('AUTH_FAILED')
33
+ room_id = "AUTH_FAILED"
34
+ elsif status.include?('EXPIRED')
35
+ room_id = 'EXPIRED'
36
+ elsif status.include?('OUT_OF_SERVICE')
37
+ room_id = 'OUT_OF_SERVICE'
38
+ else
39
+ room_id = "Error With the Server #{@server_address}CreateRoom?parentOrg=innowhite&orgName=#{@sub_name}&user=#{@mod_name}&checksum=#{generate_checksum("innowhite",@sub_name, @mod_name)}"
40
+ end
41
+ return room_id
42
+ end
43
+
44
+ def join_meeting(room_id, user)
45
+ address = join_room_helper(@server_address,@org_name, room_id, user, false)
46
+ return address
47
+ end
48
+
49
+ private
50
+
51
+ def join_room_helper(server_addr, org_name, room_id,user, is_teacher)
52
+ action = "#{server_addr}JoinRoom?"
53
+ address = "parentOrg=innowhite&orgName=#{org_name}&roomId=#{room_id}&user=#{user}&roomLeader=#{is_teacher}"
54
+ checksum =address+@private_key
55
+ return "#{action}#{address}&checksum=#{generating_checksum(checksum)}"
56
+ end
57
+
58
+ def generating_checksum(params)
59
+ Digest::SHA1.hexdigest(params)
60
+ end
61
+
62
+ def generate_checksum(parent_org, org_name,user_name)
63
+ Digest::SHA1.hexdigest(generate_information_url(parent_org, org_name,user_name))
64
+ end
65
+
66
+ def generate_information_url(parent_org, org_name,user_name)
67
+ "parentOrg=#{parent_org}&orgName=#{org_name}&user=#{user_name}#{@private_key}"
68
+ end
69
+
70
+ end
71
+ end
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: innowhite
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - bainur
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-08-11 00:00:00 Z
19
+ dependencies: []
20
+
21
+ description: Innowhite Api
22
+ email: inoe.bainur@gmail.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files:
28
+ - README.rdoc
29
+ - lib/innowhite.rb
30
+ files:
31
+ - README.rdoc
32
+ - Rakefile
33
+ - lib/innowhite.rb
34
+ - Manifest
35
+ - innowhite.gemspec
36
+ homepage: http://github.com/bainur/innowhite
37
+ licenses: []
38
+
39
+ post_install_message:
40
+ rdoc_options:
41
+ - --line-numbers
42
+ - --inline-source
43
+ - --title
44
+ - Innowhite
45
+ - --main
46
+ - README.rdoc
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ hash: 3
55
+ segments:
56
+ - 0
57
+ version: "0"
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ hash: 11
64
+ segments:
65
+ - 1
66
+ - 2
67
+ version: "1.2"
68
+ requirements: []
69
+
70
+ rubyforge_project: innowhite
71
+ rubygems_version: 1.8.6
72
+ signing_key:
73
+ specification_version: 3
74
+ summary: Innowhite Api
75
+ test_files: []
76
+