thu_course 0.2.0 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 87d2814077de12d317c684727e8fd40ac69ea2dc
4
- data.tar.gz: 33cf66678ec17a07d38f2ba7b4dc37560bb1539c
3
+ metadata.gz: 544545f984455ba04e1205085ae35c250e79e740
4
+ data.tar.gz: b52295ae35d5ace8e2a1db94b4275b5bc6171ff4
5
5
  SHA512:
6
- metadata.gz: 41336d99647977276811061112e6f4a7778455f5429d6ead7b8ef887d1cec6bdcbeb29a92b94253b1f466345ca8775604f5a80c550f468290b23eb086441e765
7
- data.tar.gz: f956a913b05de92211a30d1912622f65f13534305e3a3c739e036e15fcc1bbafd5cf958c13dcfa27780302aefb31a3a79861723d0785af77ea0594734231dd05
6
+ metadata.gz: 0911451676a4f32cdf99c3dc7b58d25c49e0a286a9f6524568747e3f29fa6e48f4f31630c5e5fbfdf59251c7a0890c4f5e71a1ad68bf4cf5e1d07982f7308d69
7
+ data.tar.gz: 3f09481c4981845cea976ac274b5bef1672e4aa270c1493bfe8981fc241e529e6d2ce1f6813479e2e2f7ceb4b048c14f3f055cb4ff545a00b09d8767d859aab5
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- thu_course (0.1.8)
4
+ thu_course (0.2.0)
5
5
  nokogiri (~> 1.6.0)
6
6
 
7
7
  GEM
@@ -1,3 +1,3 @@
1
1
  module ThuCourse
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/thu_course.rb CHANGED
@@ -1,74 +1,86 @@
1
- require "thu_course/version"
1
+ require 'thu_course/version'
2
2
 
3
3
  require 'open-uri'
4
4
  require 'nokogiri'
5
5
  module ThuCourse
6
- def self.all(year,semester)
7
- uri = URI("http://course.service.thu.edu.tw/view-dept/#{year}/#{semester}/everything").normalize
8
- doc = Nokogiri::HTML(open(uri))
9
- hash = []
10
- a_tags = doc.css('.b a') # => array of node
11
- a_tags.each do |a_tag|
12
- name = a_tag.text.gsub(/\s+/,' ').strip
13
- dp_uri= uri.merge(a_tag['href'].gsub('view-dept','view-ge'))
14
- dp_doc = Nokogiri::HTML(open(dp_uri))
15
- tr_tag = dp_doc.css('#no-more-tables tr')
6
+ def self.all(year, semester)
7
+ uri = URI("http://course.service.thu.edu.tw/view-dept/#{year}/#{semester}/everything").normalize
8
+ doc = Nokogiri::HTML(open(uri))
9
+ hash = []
10
+ a_tags = doc.css('.b a') # => array of node
11
+ a_tags.each do |a_tag|
12
+ name = a_tag.text.gsub(/\s+/, ' ').strip
13
+ dp_uri = uri.merge(a_tag['href'].gsub('view-dept', 'view-ge'))
14
+ dp_doc = Nokogiri::HTML(open(dp_uri))
15
+ tr_tag = dp_doc.css('#no-more-tables tr')
16
16
 
17
- tr_tag.each do |tr|
18
- td_tag = tr.css('td')
19
- if(td_tag[0])
20
- course_id = td_tag[0].css('a').text.strip
21
- name = td_tag[1].text.strip
22
- credit = td_tag[2].text.strip
23
- date = td_tag[3].text.strip
24
- teacher = td_tag[4].text.strip
25
- num = td_tag[5].text.strip.gsub(/\s+/,'')
26
- note = td_tag[6].text.strip
27
- dp = note.split('/')[0].gsub(/\s+/,' ')
17
+ tr_tag.each do |tr|
18
+ td_tag = tr.css('td')
19
+ next unless td_tag[0]
20
+ course_id = td_tag[0].css('a').text.strip
21
+ name = td_tag[1].text.strip
22
+ credit = td_tag[2].text.strip
23
+ date = td_tag[3].text.strip
24
+ teacher = td_tag[4].text.strip
25
+ num = td_tag[5].text.strip.gsub(/\s+/, '')
26
+ note = td_tag[6].text.strip
28
27
 
29
- hash << { id: course_id, name: name, credit: credit, date: date, teacher: teacher, num: num, note: note}
28
+ hash << { id: course_id,
29
+ name: name,
30
+ credit: credit,
31
+ date: date,
32
+ teacher: teacher,
33
+ num: num,
34
+ note: note }
35
+ end
36
+ end
37
+ hash
38
+ end
30
39
 
31
- end
32
- end
33
- end
34
- return hash
35
- end
36
-
37
- def self.department_id(year,semester)
38
- uri = URI("http://course.service.thu.edu.tw/view-dept/#{year}/#{semester}/everything").normalize
39
- doc = Nokogiri::HTML(open(uri))
40
- a_tags = doc.css('.b a') # => array of node
41
- count = a_tags.count
42
- i = 0
43
- hash = []
44
- a_tags.each do |a_tag|
45
- name = a_tag.text.strip
46
- id = a_tag['href'].split('/').last
47
- hash << {id: id, name: name}
48
- end
49
- return hash
50
- end
51
- def self.department(year,semester,id)
52
- uri = "http://course.thu.edu.tw/view-ge/#{year}/#{semester}/#{id}"
53
- dp_doc = Nokogiri::HTML(open(uri))
54
- tr_tag = dp_doc.css('#no-more-tables tr')
55
- hash = []
56
- tr_tag.each do |tr|
57
- td_tag = tr.css('td')
58
- if(td_tag[0])
59
- course_id = td_tag[0].css('a').text.strip
60
- name = td_tag[1].text.strip
61
- credit = td_tag[2].text.strip
62
- date = td_tag[3].text.strip
63
- teacher = td_tag[4].text.strip
64
- num = td_tag[5].text.strip.gsub(/\s+/,'')
65
- note = td_tag[6].text.strip
66
- dp = note.split('/')[0].gsub(/\s+/,' ')
40
+ def self.department_id(year, semester)
41
+ uri = URI("http://course.service.thu.edu.tw/view-dept/#{year}/#{semester}/everything").normalize
42
+ doc = Nokogiri::HTML(open(uri))
43
+ a_tags = doc.css('.b a') # => array of node
44
+ hash = []
45
+ a_tags.each do |a_tag|
46
+ name = a_tag.text.strip
47
+ id = a_tag['href'].split('/').last
48
+ hash << { id: id,
49
+ name: name }
50
+ end
51
+ hash
52
+ end
67
53
 
68
- hash << { id: course_id, name: name, credit: credit, date: date, teacher: teacher, num: num, note: note}
54
+ def self.department(year, semester, id)
55
+ uri = "http://course.thu.edu.tw/view-ge/#{year}/#{semester}/#{id}"
56
+ dp_doc = Nokogiri::HTML(open(uri))
57
+ tr_tag = dp_doc.css('#no-more-tables tr')
58
+ hash = []
59
+ tr_tag.each do |tr|
60
+ td_tag = tr.css('td')
61
+ next unless td_tag[0]
62
+ course_id = td_tag[0].css('a').text.strip
63
+ name = td_tag[1].text.strip
64
+ credit = td_tag[2].text.strip
65
+ date = td_tag[3].text.strip
66
+ teacher = []
67
+ teacher_data = td_tag[4].css('a')
68
+ teacher_data.each do |td|
69
+ teacher_id = td['href'].split('/').last
70
+ teacher_name = td.text.strip
71
+ teacher << {teacher_id: teacher_id,teacher_name: teacher_name}
72
+ end
73
+ num = td_tag[5].text.strip.gsub(/\s+/, '')
74
+ note = td_tag[6].text.strip
69
75
 
70
- end
71
- end
72
- return hash
73
- end
76
+ hash << { id: course_id,
77
+ name: name,
78
+ credit: credit,
79
+ date: date,
80
+ teacher: teacher,
81
+ num: num,
82
+ note: note }
83
+ end
84
+ hash
85
+ end
74
86
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thu_course
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - herber523