guc_terminal 0.0.1

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/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in guc_terminal.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
data/bin/guc_terminal ADDED
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env ruby -w
2
+ require 'rubygems'
3
+ require 'colorize'
4
+ require "text-table"
5
+ require "nokogiri"
6
+ require 'httpclient'
7
+ require 'choice'
8
+
9
+ Choice.options do
10
+ header 'Exam Schedule options:'
11
+
12
+ separator 'Required:'
13
+
14
+ option :username, :required => true do
15
+ short '-u'
16
+ long '--username=username'
17
+ desc 'Your GUC username without @student.guc.edu.eg'
18
+ end
19
+
20
+
21
+ option :password do
22
+ short '-p'
23
+ long '--password=password'
24
+ desc 'Your GUC account password'
25
+ default 'Standard footer'
26
+ end
27
+
28
+ separator 'Optional:'
29
+
30
+ option :gmail do
31
+ short '-gu'
32
+ long '--gmail=password'
33
+ desc 'Your Gmail (In case you wanted to export the schedule to your Google Calendar)'
34
+ end
35
+ option :gmailPass do
36
+ short '-gp'
37
+ long '--gpass=password'
38
+ desc 'Your Gmail Pass (In case you wanted to export the schedule to your Google Calendar)'
39
+ end
40
+ separator 'Common:'
41
+
42
+ option :help do
43
+ short '-h'
44
+ long '--help'
45
+ desc 'Show this message.'
46
+ end
47
+
48
+ option :version do
49
+ short '-v'
50
+ long '--version'
51
+ desc 'Show version.'
52
+ action do
53
+ puts 'guc_terminal version 1.0'
54
+ exit
55
+ end
56
+ end
57
+ end
58
+
59
+ table = Array.new
60
+
61
+ client = HTTPClient.new
62
+ client.set_auth(nil, "\\"+Choice.choices.username, Choice.choices.password)
63
+ resp = client.get("http://student.guc.edu.eg/External/Student/ViewStudentSeat/ViewExamSeat.aspx")
64
+
65
+ doc = Nokogiri::HTML(resp.content)
66
+ doc.xpath('//html/body/form/table/tbody/tr[2]/td[2]/table/tr').each do |node|
67
+
68
+ course_name = node.xpath('td[1]').text
69
+ start_time = node.xpath('td[2]').text
70
+ hall = node.xpath('td[3]').text
71
+ seat_number = node.xpath('td[4]').text
72
+ exam_type = node.xpath('td[5]').text
73
+ table << [course_name,start_time,hall,seat_number,exam_type]
74
+
75
+ end
76
+
77
+ puts table.to_table(:first_row_is_head => true).to_s.yellow
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "guc_terminal/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "guc_terminal"
7
+ s.version = GucTerminal::VERSION
8
+ s.authors = ["Hossam Saraya"]
9
+ s.email = ["hossam[dot]saraya[at]gmail[dot]com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Guc terminal gives you access to do repetitive tasks from your terminal. eg: view exam schedule and export it to google calendar}
12
+ s.description = %q{More features coming soon!}
13
+
14
+ s.rubyforge_project = "guc_terminal"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = "guc_terminal"
19
+ s.require_paths = ["lib"]
20
+ s.add_dependency "colorize"
21
+ s.add_dependency "text-table"
22
+ s.add_dependency "nokogiri"
23
+ s.add_dependency "httpclient"
24
+ s.add_dependency "choice"
25
+ s.add_dependency "ntlm-http"
26
+ end
@@ -0,0 +1,5 @@
1
+ require "guc_terminal/version"
2
+
3
+ module GucTerminal
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,3 @@
1
+ module GucTerminal
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,155 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: guc_terminal
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Hossam Saraya
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-06-10 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: colorize
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: text-table
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
46
+ type: :runtime
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: nokogiri
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ version: "0"
60
+ type: :runtime
61
+ version_requirements: *id003
62
+ - !ruby/object:Gem::Dependency
63
+ name: httpclient
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ hash: 3
71
+ segments:
72
+ - 0
73
+ version: "0"
74
+ type: :runtime
75
+ version_requirements: *id004
76
+ - !ruby/object:Gem::Dependency
77
+ name: choice
78
+ prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ hash: 3
85
+ segments:
86
+ - 0
87
+ version: "0"
88
+ type: :runtime
89
+ version_requirements: *id005
90
+ - !ruby/object:Gem::Dependency
91
+ name: ntlm-http
92
+ prerelease: false
93
+ requirement: &id006 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ hash: 3
99
+ segments:
100
+ - 0
101
+ version: "0"
102
+ type: :runtime
103
+ version_requirements: *id006
104
+ description: More features coming soon!
105
+ email:
106
+ - hossam[dot]saraya[at]gmail[dot]com
107
+ executables:
108
+ - guc_terminal
109
+ extensions: []
110
+
111
+ extra_rdoc_files: []
112
+
113
+ files:
114
+ - .gitignore
115
+ - Gemfile
116
+ - Rakefile
117
+ - guc_terminal.gemspec
118
+ - lib/guc_terminal.rb
119
+ - lib/guc_terminal/version.rb
120
+ - bin/guc_terminal
121
+ homepage: ""
122
+ licenses: []
123
+
124
+ post_install_message:
125
+ rdoc_options: []
126
+
127
+ require_paths:
128
+ - lib
129
+ required_ruby_version: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ hash: 3
135
+ segments:
136
+ - 0
137
+ version: "0"
138
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ hash: 3
144
+ segments:
145
+ - 0
146
+ version: "0"
147
+ requirements: []
148
+
149
+ rubyforge_project: guc_terminal
150
+ rubygems_version: 1.8.5
151
+ signing_key:
152
+ specification_version: 3
153
+ summary: "Guc terminal gives you access to do repetitive tasks from your terminal. eg: view exam schedule and export it to google calendar"
154
+ test_files: []
155
+