gmuday 0.1.3 → 0.1.5
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 +4 -4
- data/lib/gmuday.rb +123 -25
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9547655f07e1f78b01bc66e773e8379f2026bf9c905f00d47954bcbc2a09b210
|
4
|
+
data.tar.gz: 10c27cd72c57e9b57bf6e60976769b61b637b1583d3367989bb3dc070a5c1812
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
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']} ] #{
|
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
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
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
|
-
|
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.
|
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-
|
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
|
42
|
+
email: xjy37.me@outlook.com
|
29
43
|
executables: []
|
30
44
|
extensions: []
|
31
45
|
extra_rdoc_files: []
|