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.
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: []