gmuday 0.1.3 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gmuday.rb +123 -25
  3. metadata +17 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ae6165b5a82c64f2ed99839435ffccccdae476e91ffb2aff3fdfdb96b8ecd12
4
- data.tar.gz: ce0a1b30c5ff74d85a990fbd8850ca0318682739497f9387bb4219321495b825
3
+ metadata.gz: 9547655f07e1f78b01bc66e773e8379f2026bf9c905f00d47954bcbc2a09b210
4
+ data.tar.gz: 10c27cd72c57e9b57bf6e60976769b61b637b1583d3367989bb3dc070a5c1812
5
5
  SHA512:
6
- metadata.gz: 2d07d2f4bc252cd091e03f823e1cb8e7fc677c11aeb51fe7265415843b42e4651e7271f9105095e9e21d4605a8992502f608a58551ed63d8488e0ee51a8fa829
7
- data.tar.gz: d2ee1cb26ff9cb293c109d3f2a2ee7375b2db91ad64719923ecc95ac28445ebc39b80d2dbe7f1c03407f9ec8f15a68ecd01e5d512eb5e4c13a087ee73d048d63
6
+ metadata.gz: d9ef1c23ea110f9565495e7095ae76af364f4e3c20e0cd8b6d139098d187e56cd2adc0c0e4f0865855ea35c2cace6f060d2b0dcaadee375e88db40150feae947
7
+ data.tar.gz: 880dbaffabf1a24b3b995e74a33ca4ed9fd7335f0f0fe40d28c06ae84f93ed8efc95b5d4969ff410c21c57df50d767a519f0c397bfee9caf24978ef0cc5d04a8
data/lib/gmuday.rb CHANGED
@@ -7,7 +7,8 @@ require 'creek'
7
7
  module GmuDay
8
8
 
9
9
  def self.parse(file, myclass, day_start, day_end)
10
- today = self.getToday
10
+ today_r = self.getToday
11
+ today = today_r[0]
11
12
  creek = Creek::Book.new "#{file}"
12
13
  @sheet = creek.sheets[0]
13
14
 
@@ -41,16 +42,12 @@ module GmuDay
41
42
 
42
43
  puts "#{'节数'.rjust(28)} #{'课程'.rjust(13)} #{'班级'.rjust(34)} #{'教室'.rjust(12)}"
43
44
  lessons.each do |lesson|
44
- _week_raw = "#{lesson['C']}"
45
- _week = self.week(_week_raw[0].to_i)
46
- _ltime = _week_raw.reverse
47
- _ltime.chop!
48
- ltime = _ltime.reverse
45
+ spl = self.weekNum("#{lesson['C']}")
49
46
  _lesson_raw = "#{lesson['F']}"
50
47
  _lesson = _lesson_raw.gsub(/\s+/, '')
51
48
  _class = "#{lesson['G']}"
52
49
  _classroom = lesson['H']
53
- msg = "[ #{lesson['A']} ] #{_week} #{ltime.ljust(9)} #{_lesson.ljust(20, "一")} #{_class.ljust(12)} #{_classroom.ljust(16)}"
50
+ msg = "[ #{lesson['A']} ] #{spl[1]} #{spl[2].ljust(9)} #{_lesson.ljust(20, "一")} #{_class.ljust(12)} #{_classroom.ljust(16)}"
54
51
  puts classInc(hi_class, _class) ? "\033[1;32m%s\033[0m" % msg : msg
55
52
  end
56
53
  end
@@ -65,28 +62,35 @@ module GmuDay
65
62
  return false
66
63
  end
67
64
  end
68
- #private :classInc
69
- def self.week(str)
70
- case str
71
- when 1
72
- return "星期一"
73
- when 2
74
- return "星期二"
75
- when 3
76
- return "星期三"
77
- when 4
78
- return "星期四"
79
- when 5
80
- return "星期五"
81
- when 6
82
- return "星期六"
83
- when 7
84
- return "星期天"
65
+ def self.week(i)
66
+ case i
67
+ when 1
68
+ return "星期一"
69
+ when 2
70
+ return "星期二"
71
+ when 3
72
+ return "星期三"
73
+ when 4
74
+ return "星期四"
75
+ when 5
76
+ return "星期五"
77
+ when 6
78
+ return "星期六"
79
+ when 7
80
+ return "星期天"
81
+ end
85
82
  end
83
+ def self.weekNum(str)
84
+ str0 = str.reverse
85
+ str1 = str0.chop!
86
+ wInt = str[0].to_i
87
+ return [wInt, self.week(wInt), str1.reverse]
86
88
  end
87
89
  def self.getToday()
88
90
  t = Time.new
89
- return t.strftime("%Y-%m-%d")
91
+ d = t.strftime("%Y-%m-%d")
92
+ w = t.wday
93
+ return [d, w]
90
94
  end
91
95
  def self.calDay(init_day=nil, int_num)
92
96
  if init_day.is_a? NilClass
@@ -109,4 +113,98 @@ module GmuDay
109
113
  endDay = Time.local(*_end_day_arr)
110
114
  return ((endDay - startDay) / 86400).to_i
111
115
  end
116
+
117
+ # Added
118
+ def self.top()
119
+ week = Array(0..6)
120
+ week.each do |w|
121
+ self.buildBlock(w*150, 0, 150, 50, 1, GmuDay.week(w+1), 150/3 + w*150, 50/3, 13, 2)
122
+ end
123
+
124
+ end
125
+ def self.buildBlock(rx, ry, rw, rh, ri, tc, tx, ty, ts, ti)
126
+ Rectangle.new(
127
+ x: rx, y: ry,
128
+ width: rw, height: rh,
129
+ color: 'random',
130
+ z: ri
131
+ )
132
+ Text.new(
133
+ tc,
134
+ x: tx, y: ty,
135
+ size: ts,
136
+ color: 'white',
137
+ z: ti
138
+ )
139
+ end
140
+ def self.getWeekCourse(_file, _whichWeek, _cl)
141
+ gmu_arr = self.calWeek(_whichWeek)
142
+ return self.parse(_file, _cl, gmu_arr[1], gmu_arr[2])
143
+ end
144
+ def self.show(file, whichWeek, cl)
145
+ self.top()
146
+ week = Array(0..6)
147
+ $courses = self.getWeekCourse(file, whichWeek, cl)
148
+ nW = 150
149
+ nH = 50
150
+ info = Array.new
151
+
152
+ $courses.each do |course|
153
+ ele = self.parse_week(course)
154
+ info << ele
155
+ end
156
+ info.each do |o|
157
+ ol = o[1]
158
+ ol.each do |l|
159
+ l_raw = o[2]
160
+ l_show = l_raw.length > 10 ? l_raw[0,10] : l_raw
161
+ self.buildBlock((o[0] -1)*150, l*50, 150, 50, 1, l_show.center(20), (o[0] -1)*150, 50/3 + l*50, 12, 2)
162
+ end
163
+ end
164
+ end
165
+
166
+ def self.calWeek(i)
167
+ t = Time.new
168
+ tWeek = t.wday
169
+ last = -1 * (tWeek - 1) + i * 7
170
+ future = 7 - tWeek + i * 7
171
+ return [tWeek, last, future]
172
+ end
173
+
174
+ def self.parse_week(course)
175
+ #传入一天的course data
176
+ #返回星期,课序,课程,地点。如1, [1,2], 课程, 地点
177
+ _t = course['C']
178
+ lesson = course['D']
179
+ arr = GmuDay.weekNum(_t)
180
+ w = arr[0]
181
+ t_raw = arr[2]
182
+ t = self.tSplit(t_raw)
183
+ wh = course['H']
184
+ return [w, t, lesson, wh]
185
+ end
186
+ def self.tSplit(str)
187
+ # 传入Str,返回数组如第一第二节课(01020304),返回[1,2]
188
+ str_len = str.length
189
+ b_num = str_len /2
190
+ res_t = Array.new
191
+ b_i = 0
192
+ until b_i*4+3 >= str_len do
193
+ l_t_str = "#{str[b_i*4+2]}#{str[b_i*4+3]}"
194
+ l_t = l_t_str.to_i
195
+ res_t << l_t/2
196
+ b_i += 1
197
+ end
198
+ return res_t
199
+ end
200
+ def self.fOrNot(a, b, ele)
201
+ arr = ele[1]
202
+ return true if ele.include?(a) && arr.include?(b)
203
+ return false
204
+ end
205
+ def self.flush(a, b, ele, m_down)
206
+ t_raw = m_down % 2 == 0 ? ele[3] : ele[2]
207
+ t_show = t_raw.length > 10 ? t_raw[0,10] : t_raw
208
+ self.buildBlock((a -1)*150, b*50, 150, 50, 3 + m_down, t_show.center(20), (a -1)*150, 50/3 + b*50, 12, 4 + m_down)
209
+ end
112
210
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gmuday
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sirius2
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-17 00:00:00.000000000 Z
11
+ date: 2021-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: creek
@@ -24,8 +24,22 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 5.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: ruby2d
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.5
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.9.5
27
41
  description: GMU course helper
28
- email: xjy37-me@outlook.com
42
+ email: xjy37.me@outlook.com
29
43
  executables: []
30
44
  extensions: []
31
45
  extra_rdoc_files: []