shuang_pin_tutorial 1.1.1 → 1.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 +4 -4
- data/README.md +8 -3
- data/exe/shuang_pin_tutorial +23 -2
- data/lib/shuang_pin_tutorial.rb +9 -1
- data/lib/shuang_pin_tutorial/data.rb +1 -0
- data/lib/shuang_pin_tutorial/handler.rb +10 -9
- data/lib/shuang_pin_tutorial/main.rb +2 -8
- metadata +23 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fbb3c723acf9687739b71629fff9587badfcc52764b4c78363180ac425d9b785
|
4
|
+
data.tar.gz: d112cf132103aaac133cec736855d82b7b1e1b99e68503ffd281fd95b9a4a94b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b8ee8448f6f121a1e1fb50fd7014f4847c391b5a90f1ca708f80cd66378b69495f67b06a00190afb35513e73d2a68dffa9705cc4d6a64990a8427494dcd97ec
|
7
|
+
data.tar.gz: ac4effda71c7bec01e380f56702f294ba4014fc5e02dedcf448ed2d5f1fa901660068476bbde95ce375733e2694802086cf265a4fd15383352a16141c625b613
|
data/README.md
CHANGED
@@ -3,12 +3,13 @@
|
|
3
3
|
### 程序簡介:
|
4
4
|
|
5
5
|
一個萌妹子風格的輸入法學習套件,參考新華字典的設定,每次隨機出現出合理的拼音組合。<br>
|
6
|
-
根據輸出的拼音組合中打出對應的雙拼,每個字用空格隔開,按 Enter 提交,輸入 ```exit``` 提交或者按下 Ctrl+c
|
6
|
+
根據輸出的拼音組合中打出對應的雙拼,每個字用空格隔開,按 Enter 提交,輸入 ```exit``` 提交或者按下 Ctrl+c 退出練習。<br>
|
7
|
+
程式已掛載上 [RubyGems][rubygem_shuang_pin_tutorial],請用 [Gem 工具][rubygem_package_manager] 下載與使用本套件。
|
7
8
|
|
8
|
-
快速學習雙拼
|
9
|
+
快速學習雙拼 程序畫面:<br>
|
9
10
|
![image][shuang_pin_tutorial_console]
|
10
11
|
|
11
|
-
|
12
|
+
微軟雙拼鍵盤方案圖:<br>
|
12
13
|
![image][shuang_pin_keyboard]
|
13
14
|
|
14
15
|
<br>另外,[參考文件夾][folder_img]中附上:
|
@@ -29,7 +30,11 @@
|
|
29
30
|
gem install shuang_pin_tutorial # 透過 Gem 安裝學習雙拼套件
|
30
31
|
|
31
32
|
shuang_pin_tutorial # 運行套件
|
33
|
+
shuang_pin_tutorial --help # 查看選項
|
34
|
+
shuang_pin_tutorial [OPTIONS] # 運行自選項套件
|
32
35
|
```
|
36
|
+
[rubygem_shuang_pin_tutorial]: https://rubygems.org/gems/shuang_pin_tutorial
|
37
|
+
[rubygem_package_manager]: https://rubygems.org/pages/download
|
33
38
|
|
34
39
|
[shuang_pin_tutorial_console]: ./img/shuang_pin_tutorial_console.png "shuang pin tutorial console"
|
35
40
|
[shuang_pin_keyboard]: ./img/shuang_pin_keyboard.png "shuang pin keyboard"
|
data/exe/shuang_pin_tutorial
CHANGED
@@ -4,7 +4,28 @@
|
|
4
4
|
STDOUT.sync = true
|
5
5
|
$LOAD_PATH.unshift File.expand_path("../lib", __dir__)
|
6
6
|
|
7
|
+
require 'mercenary'
|
7
8
|
require 'shuang_pin_tutorial'
|
8
9
|
|
9
|
-
|
10
|
-
|
10
|
+
spt = ShuangPinTutorial
|
11
|
+
Mercenary.program(spt::NAME) do |p|
|
12
|
+
p.version spt::VERSION
|
13
|
+
p.description "A tutorial application for Microsoft Shuang Pin input method(zh-tw)."
|
14
|
+
p.syntax "#{spt::NAME} [OPTIONS]"
|
15
|
+
|
16
|
+
long_opt = Proc.new { |sym| "--#{spt::OPTIONS[sym].gsub(/_/, '-')}" }
|
17
|
+
|
18
|
+
p.option "#{spt::OPTIONS[:w]}",
|
19
|
+
"-w", "#{long_opt.call(:w)} [num]", "Words display in each section (defaults 6)"
|
20
|
+
p.option "#{spt::OPTIONS[:r]}",
|
21
|
+
"-r", "#{long_opt.call(:r)}", "Turn off the input reminder (defaults on)"
|
22
|
+
p.option "#{spt::OPTIONS[:z]}",
|
23
|
+
"-z", "#{long_opt.call(:z)}", "Turn off the Taiwan zhuyin display (defaults on)"
|
24
|
+
p.option "#{spt::OPTIONS[:c]}",
|
25
|
+
"-c", "#{long_opt.call(:c)}", "Turn off the Chinese word display (defaults on)"
|
26
|
+
|
27
|
+
p.action do |_args, options|
|
28
|
+
main = spt::Main.new()
|
29
|
+
main.run(options)
|
30
|
+
end
|
31
|
+
end
|
data/lib/shuang_pin_tutorial.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
#!/usr/bin/ruby
|
1
2
|
# frozen_string_literal: true
|
2
3
|
|
3
4
|
# $LOAD_PATH.unshift __dir__ # For use/testing when no gem is installed
|
@@ -13,9 +14,16 @@ end
|
|
13
14
|
module ShuangPinTutorial
|
14
15
|
MODULE = "ShuangPinTutorial"
|
15
16
|
NAME = "shuang_pin_tutorial"
|
16
|
-
VERSION = "1.
|
17
|
+
VERSION = "1.2.1"
|
18
|
+
OPTIONS = {w: "words", r: "remind_off", z: "zhuyin_off", c: "cword_off"}
|
19
|
+
OPTIONS_DEFAULT = {w: 6, r: true, z: true, c: true}
|
17
20
|
|
18
21
|
autoload(:Main, "#{NAME}/main")
|
19
22
|
autoload(:Handler, "#{NAME}/handler")
|
20
23
|
autoload(:Data, "#{NAME}/data")
|
24
|
+
end
|
25
|
+
|
26
|
+
if __FILE__ == $0 # for test-run use
|
27
|
+
main = ShuangPinTutorial::Main.new()
|
28
|
+
main.run()
|
21
29
|
end
|
@@ -4,14 +4,15 @@ require 'date'
|
|
4
4
|
require_relative 'data'
|
5
5
|
|
6
6
|
module ShuangPinTutorial
|
7
|
-
|
7
|
+
# fixed const
|
8
8
|
STR_TIPS_SEPARATOR='———'
|
9
|
-
IS_ENABLE_TIPS = true
|
10
|
-
IS_DISPLAY_ZHUYIN = true
|
11
|
-
IS_DISPLAY_CWORD = true
|
12
9
|
|
13
10
|
class Handler
|
14
|
-
def initialize()
|
11
|
+
def initialize(options)
|
12
|
+
@int_words_displayed = options && options.key?(OPTIONS[:w]) ? options[OPTIONS[:w]].to_i : OPTIONS_DEFAULT[:w] # integer
|
13
|
+
@is_enable_reminder = options && options.key?(OPTIONS[:r]) ? !options[OPTIONS[:r]] : OPTIONS_DEFAULT[:r] # boolean(reverse)
|
14
|
+
@is_display_zhuyin = options && options.key?(OPTIONS[:z]) ? !options[OPTIONS[:z]] : OPTIONS_DEFAULT[:z] # boolean(reverse)
|
15
|
+
@is_display_cword = options && options.key?(OPTIONS[:c]) ? !options[OPTIONS[:c]] : OPTIONS_DEFAULT[:c] # boolean(reverse)
|
15
16
|
end
|
16
17
|
|
17
18
|
def start()
|
@@ -38,7 +39,7 @@ module ShuangPinTutorial
|
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
41
|
-
def get_words_showlines(num =
|
42
|
+
def get_words_showlines(num = @int_words_displayed, display_delim: "|") # return [words(str), [display line(s)]]
|
42
43
|
result = []
|
43
44
|
display = []
|
44
45
|
display_py = []
|
@@ -55,8 +56,8 @@ module ShuangPinTutorial
|
|
55
56
|
display_cw.push(cw + "\t")
|
56
57
|
end
|
57
58
|
display << display_py.join(display_delim)
|
58
|
-
display << display_zy.join(display_delim) if
|
59
|
-
display << display_cw.join(display_delim) if
|
59
|
+
display << display_zy.join(display_delim) if @is_display_zhuyin
|
60
|
+
display << display_cw.join(display_delim) if @is_display_cword
|
60
61
|
[result.join(" "), display]
|
61
62
|
end
|
62
63
|
|
@@ -100,7 +101,7 @@ module ShuangPinTutorial
|
|
100
101
|
result_words = result[0]
|
101
102
|
result_display = result[1]
|
102
103
|
result_tips = []
|
103
|
-
if
|
104
|
+
if @is_enable_reminder
|
104
105
|
result_words.split.each { |res| result_tips.push(@sp_data.get_correct_keys(res)) }
|
105
106
|
result_display[0] = "#{result_display[0]} #{STR_TIPS_SEPARATOR} 【#{result_tips.join(" ")}】"
|
106
107
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
|
4
3
|
require_relative 'handler'
|
@@ -10,8 +9,8 @@ module ShuangPinTutorial
|
|
10
9
|
@obj_tutorial = nil
|
11
10
|
end
|
12
11
|
|
13
|
-
def run()
|
14
|
-
@obj_tutorial = Handler.new()
|
12
|
+
def run(options = nil)
|
13
|
+
@obj_tutorial = Handler.new(options)
|
15
14
|
@obj_tutorial.start()
|
16
15
|
rescue Interrupt => ir
|
17
16
|
$stdout.puts('累了就該休息一下吧!')
|
@@ -29,9 +28,4 @@ module ShuangPinTutorial
|
|
29
28
|
exit(@is_run_success)
|
30
29
|
end
|
31
30
|
end
|
32
|
-
end
|
33
|
-
|
34
|
-
if __FILE__ == $0 # for test-run use
|
35
|
-
main = ShuangPinTutorial::Main.new()
|
36
|
-
main.run()
|
37
31
|
end
|
metadata
CHANGED
@@ -1,17 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shuang_pin_tutorial
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.1
|
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-
|
12
|
-
dependencies:
|
11
|
+
date: 2020-03-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: mercenary
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.4.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.4.0
|
13
27
|
description: An interesting, featured tutorial application for practicing Microsoft
|
14
|
-
Shuang Pin input method.
|
28
|
+
Shuang Pin input method(zh-tw).
|
15
29
|
email: dn@jsdn.hk
|
16
30
|
executables:
|
17
31
|
- shuang_pin_tutorial
|
@@ -32,8 +46,8 @@ licenses:
|
|
32
46
|
- MIT
|
33
47
|
metadata:
|
34
48
|
source_code_uri: https://github.com/jsdnhk/shuang_pin_tutorial
|
35
|
-
changelog_uri: https://github.com/jsdnhk/shuang_pin_tutorial/CHANGELOG.md
|
36
|
-
documentation_uri: https://github.com/jsdnhk/shuang_pin_tutorial/README.md
|
49
|
+
changelog_uri: https://github.com/jsdnhk/shuang_pin_tutorial/blob/master/CHANGELOG.md
|
50
|
+
documentation_uri: https://github.com/jsdnhk/shuang_pin_tutorial/blob/master/README.md
|
37
51
|
post_install_message: Welcome using Microsoft Shuang Pin tutorial!
|
38
52
|
rdoc_options:
|
39
53
|
- "--charset=UTF-8"
|
@@ -50,8 +64,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
50
64
|
- !ruby/object:Gem::Version
|
51
65
|
version: 2.7.0
|
52
66
|
requirements: []
|
53
|
-
|
67
|
+
rubyforge_project:
|
68
|
+
rubygems_version: 2.7.6.2
|
54
69
|
signing_key:
|
55
70
|
specification_version: 4
|
56
|
-
summary: A tutorial application for Microsoft Shuang Pin input method.
|
71
|
+
summary: A tutorial application for Microsoft Shuang Pin input method(zh-tw).
|
57
72
|
test_files: []
|