shuang_pin_tutorial 1.2.2 → 1.3.0

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
  SHA256:
3
- metadata.gz: 9488d21afdc29e4f4cbb81f876fe012e696f8b7038d48c219b8e178acbfa5e85
4
- data.tar.gz: cb2b1e0bbc86e5d66351de5ff755b7115f30ed9f70d3a6e168fc283168c57cbf
3
+ metadata.gz: fa6cc5fb89f01c29c889dd3b703005856f1f8e664c3516e18fa763a95193e49c
4
+ data.tar.gz: c7c440bda2c4e47a1e562b316e340e8600294ec8eff011ddcef51d1563c9ed3a
5
5
  SHA512:
6
- metadata.gz: fc3d9517f3da47e13ab26304b4709388552e447e54cd2d929d7a455ace63448604802406af5b0b94ba8155e4b12a0d522e3a6e23cb99907c93489bfab36e378c
7
- data.tar.gz: 06150b71520a9a34c100aa663a72b727ccdf2e385882d517c2e3ca511a5ab0b5db98a03bf7679c8d093b48768161d950e06f5cfd07687308c8f8f5e4e932de67
6
+ metadata.gz: 8a299446b467c6cb1b519b42cf9e17a21c98467dc6a22ee7f49822a8700a89fca2c04722a1ffbd48a4d68ec8c0032e43b16cef49b80e354dec7d5b2c7f352845
7
+ data.tar.gz: ee017c5cea1efc50e60aab72ce2719633d2004bf16001bf8fe2b9a38709517d74eaa51c85b11ee2c049565f82bf2e234b11db396ddd4ff2cda1ca4243c2adc7b
@@ -14,7 +14,7 @@ end
14
14
  module ShuangPinTutorial
15
15
  MODULE = "ShuangPinTutorial"
16
16
  NAME = "shuang_pin_tutorial"
17
- VERSION = "1.2.2"
17
+ VERSION = "1.3.0"
18
18
  OPTIONS = {w: "words", r: "remind_off", z: "zhuyin_off", c: "cword_off"}
19
19
  OPTIONS_DEFAULT = {w: 6, r: true, z: true, c: true}
20
20
 
@@ -20,10 +20,10 @@ module ShuangPinTutorial
20
20
  # 初始化
21
21
  @sp_data = Data.new()
22
22
  @words_counts = [0, 0, 0]
23
- @start_time = DateTime.now
24
- @end_time = nil
23
+ @start_time, @end_time = DateTime.now, nil # Datetime
24
+ @total_time, @type_speed = nil, nil # Rational
25
25
  puts "歡迎使用 快速學習雙拼 -- 微軟雙拼(繁體中文版)!要好好練習哦!(#{VERSION} 版)"
26
- puts "要輸入下面中文字對應雙拼字碼哦!使用空格隔開,要休息請輸入 'exit' 或按 Ctrl+c 吧!\n"
26
+ puts "要輸入下面中文字對應雙拼字碼哦!使用空格隔開,要休息請輸入 'exit' 或按 ctrl+c 吧!\n"
27
27
  # looping
28
28
  while true
29
29
  result = get_question_lines
@@ -40,6 +40,11 @@ module ShuangPinTutorial
40
40
  end
41
41
  end
42
42
 
43
+ def stop()
44
+ @end_time = DateTime.now
45
+ @total_time = (@end_time - @start_time) * 24 * 60 * 60
46
+ end
47
+
43
48
  def get_words_showlines(num = @int_words_displayed, display_delim: "|") # return [words(str), [display line(s)]]
44
49
  result = []
45
50
  display = []
@@ -109,12 +114,22 @@ module ShuangPinTutorial
109
114
  result
110
115
  end
111
116
 
117
+ def print_results
118
+ total_time = get_total_time_str
119
+ $stdout.puts("#{total_time}") if (total_time)
120
+ total_words_result = get_total_words_result
121
+ $stdout.puts("#{total_words_result}") if (total_words_result)
122
+ percent_correctness = get_percent_correctness
123
+ $stdout.puts("#{percent_correctness}") if (percent_correctness)
124
+ type_speed = get_type_speed_str
125
+ $stdout.puts("#{type_speed}") if (type_speed)
126
+ end
127
+
112
128
  def get_total_time_str
113
- @end_time = DateTime.now
114
- @total_time = ((@end_time - @start_time) * 24 * 60 * 60).to_i
115
- str_total_time_s = Time.at(@total_time).utc.strftime("%S").gsub(/^0/, '')
116
- str_total_time_m = Time.at(@total_time).utc.strftime("%M").gsub(/^0/, '')
117
- str_total_time_h = Time.at(@total_time).utc.strftime("%H").gsub(/^0+/, '')
129
+ return nil unless @words_counts[0] > 0
130
+ str_total_time_s = Time.at(@total_time.to_i).utc.strftime("%S").gsub(/^0/, '')
131
+ str_total_time_m = Time.at(@total_time.to_i).utc.strftime("%M").gsub(/^0/, '')
132
+ str_total_time_h = Time.at(@total_time.to_i).utc.strftime("%H").gsub(/^0+/, '')
118
133
  str_total_time =
119
134
  case @total_time
120
135
  when 0...60
@@ -124,15 +139,24 @@ module ShuangPinTutorial
124
139
  else
125
140
  "#{str_total_time_h} 小時 #{str_total_time_m} 分 #{str_total_time_s} 秒"
126
141
  end
127
- str_total_time
142
+ "訓練時間: #{str_total_time}"
128
143
  end
129
144
 
130
145
  def get_total_words_result
146
+ return nil unless @words_counts[0] > 0
147
+ "共有字數: #{@words_counts[0]} 字(#{@words_counts[1]}-#{@words_counts[2]})"
148
+ end
149
+
150
+ def get_percent_correctness
151
+ return nil unless @words_counts[0] > 0
131
152
  percent_correctness = @words_counts[0].to_f != 0 ? (@words_counts[1].to_f/@words_counts[0].to_f) * 100 : 0
132
- str_output = ""
133
- str_output += "共有字數: #{@words_counts[0]} 字;正確字數: #{@words_counts[1]} 字;錯誤字數: #{@words_counts[2]} 字" + "\n"
134
- str_output += "總正確率: #{percent_correctness.round(2)} %"
135
- str_output
153
+ "總正確率: #{percent_correctness.round(2)} "
154
+ end
155
+
156
+ def get_type_speed_str
157
+ return nil unless @words_counts[0] > 0 && @words_counts[1] > 0
158
+ @type_speed = @total_time / @words_counts[1] # 只計算正確字數
159
+ "平均速度: #{@type_speed.to_f.floor(2)} 秒/字"
136
160
  end
137
161
  end
138
162
  end
@@ -20,11 +20,9 @@ module ShuangPinTutorial
20
20
  # $stderr.puts(ex.backtrace) # debug use only
21
21
  @is_run_success = false
22
22
  ensure
23
+ @obj_tutorial.stop()
23
24
  exit(@is_run_success) unless @is_run_success
24
- $stdout.puts('訓練時間:')
25
- $stdout.puts(@obj_tutorial.get_total_time_str)
26
- $stdout.puts('成果統計:')
27
- $stdout.puts(@obj_tutorial.get_total_words_result)
25
+ @obj_tutorial.print_results
28
26
  $stdout.puts('要努力學習哦,感謝使用!')
29
27
  exit(@is_run_success)
30
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shuang_pin_tutorial
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David N
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-04 00:00:00.000000000 Z
11
+ date: 2020-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mercenary
@@ -41,7 +41,7 @@ files:
41
41
  - lib/shuang_pin_tutorial/data.rb
42
42
  - lib/shuang_pin_tutorial/handler.rb
43
43
  - lib/shuang_pin_tutorial/main.rb
44
- homepage: https://github.com/jsdnhk/shuang_pin_tutorial
44
+ homepage: http://jsdn.hk/shuang_pin_tutorial/
45
45
  licenses:
46
46
  - MIT
47
47
  metadata: