my_help 1.2 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardoc/checksums +4 -4
- data/.yardoc/objects/root.dat +0 -0
- data/Gemfile.lock +1 -1
- data/README.org +84 -117
- data/README_j.org +143 -0
- data/Rakefile +20 -1
- data/development_memo.org +242 -0
- data/lib/my_help/cli.rb +7 -1
- data/lib/my_help/config.rb +1 -1
- data/lib/my_help/list.rb +5 -3
- data/lib/my_help/version.rb +1 -1
- data/lib/templates/example.org +3 -5
- metadata +4 -37
- data/README_en.org +0 -131
- data/doc/MyHelp/CLI.html +0 -749
- data/doc/MyHelp/Config.html +0 -693
- data/doc/MyHelp/Control.html +0 -1127
- data/doc/MyHelp/Error.html +0 -124
- data/doc/MyHelp/GetConfig.html +0 -196
- data/doc/MyHelp/Git.html +0 -291
- data/doc/MyHelp/Init.html +0 -449
- data/doc/MyHelp/List.html +0 -577
- data/doc/MyHelp/Md2Hash.html +0 -632
- data/doc/MyHelp/Modify.html +0 -393
- data/doc/MyHelp/Org2Hash.html +0 -542
- data/doc/MyHelp.html +0 -135
- data/doc/Org2Yaml.html +0 -497
- data/doc/OrgToYaml.html +0 -497
- data/doc/_index.html +0 -230
- data/doc/class_list.html +0 -51
- data/doc/css/common.css +0 -1
- data/doc/css/full_list.css +0 -58
- data/doc/css/style.css +0 -497
- data/doc/file.README.html +0 -181
- data/doc/file_list.html +0 -56
- data/doc/frames.html +0 -17
- data/doc/index.html +0 -181
- data/doc/js/app.js +0 -314
- data/doc/js/full_list.js +0 -216
- data/doc/js/jquery.js +0 -4
- data/doc/method_list.html +0 -451
- data/doc/top-level-namespace.html +0 -112
- data/pkg/my_help-0.8.6.gem +0 -0
- data/pkg/my_help-0.9.0.gem +0 -0
- data/pkg/my_help-1.0b.gem +0 -0
- data/pkg/my_help-1.0c.gem +0 -0
- data/pkg/my_help-1.1.gem +0 -0
- data/pkg/my_help-1.1a.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4a86f6d2f3dabef582a9c43dca24554b1dda2f5d773d0f7f8c9907c1dd205f8
|
4
|
+
data.tar.gz: 7010d97c58171b9606db261705a93deb7d6f23e546baeb32d25869e99ec1bfc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e0aaf779bb22e17ebd06d6d4277e323619b054120cb56ba8eab1e33c33d1ab2f8df9b71245f769276ce3c2de7d7c99804c5fd55710164cbef20eb063d8f235e
|
7
|
+
data.tar.gz: ec825103b28a678f0dcc7f2c94ec9afdfc836f69deae5b763279b61bb38ace3295a4be45f04956d87b118f95ce8af964cf89c629f5288ea9bc6cc42164228f90
|
data/.yardoc/checksums
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
lib/my_help.rb 7539f0f58056d44d38352f868bfea4d6fb63a9ee
|
2
|
-
lib/my_help/cli.rb
|
2
|
+
lib/my_help/cli.rb c2a482691a6e9183e393110da8a552d477cf856e
|
3
3
|
lib/my_help/init.rb ac83b0cbfd9394278da8e7bf83b089cb84e132e4
|
4
|
-
lib/my_help/list.rb
|
5
|
-
lib/my_help/config.rb
|
4
|
+
lib/my_help/list.rb a63c0f1366a7c162d2c5e16e70f37f7ebb32cf8e
|
5
|
+
lib/my_help/config.rb be52fb39c0656febb6d230aa50e7b7a6804c7cc4
|
6
6
|
lib/my_help/modify.rb 17a00a9f1b4126d9c067a320b47639e5a5fec845
|
7
7
|
lib/my_help/git_cli.rb bb04396f0b9d54ecb13100fe5cde029f7dbb0ea7
|
8
8
|
lib/my_help/md2hash.rb 35ebd32d3f545b40cd9ebb1972dc60d53b58b22a
|
9
9
|
lib/my_help/org2yml.rb 334d0a7b648dc75b1d9504ec6d68937c70e96343
|
10
|
-
lib/my_help/version.rb
|
10
|
+
lib/my_help/version.rb 618ac9ac5ac451afc28fc6bae7bd657fc71a915a
|
11
11
|
lib/my_help/org2hash.rb 939fea903abb5247959d74e18afc8db30fb5f6c8
|
data/.yardoc/objects/root.dat
CHANGED
Binary file
|
data/Gemfile.lock
CHANGED
data/README.org
CHANGED
@@ -1,96 +1,80 @@
|
|
1
|
-
|
2
|
-
#+AUTHOR: Shigeto R. Nishitani
|
3
|
-
#+EMAIL: (concat "nishitani@kwansei.ac.jp")
|
4
|
-
#+LANGUAGE: jp
|
5
|
-
#+OPTIONS: H:4 toc:t num:2
|
6
|
-
#+SETUPFILE: /Users/bob/.emacs.d/org-mode/theme-readtheorg.setup
|
7
|
-
#+STARTUP: indent nolineimages
|
1
|
+
#+STARTUP: indent nolineimages content
|
8
2
|
#+OPTIONS: ^:{}
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
VSCodeやGithub Copilotではcodeの候補を挙げてくれますが,
|
54
|
-
物覚えの悪い作者は,人の名前をitem分けして,こそっと使っています.
|
55
|
-
|
56
|
-
* 使用法
|
57
|
-
:PROPERTIES:
|
58
|
-
:CUSTOM_ID: 使用法
|
59
|
-
:END:
|
60
|
-
** インストール
|
61
|
-
|
62
|
-
: > gem install my_help
|
63
|
-
です.
|
64
|
-
|
65
|
-
** 簡単な使用法
|
66
|
-
:PROPERTIES:
|
67
|
-
:CUSTOM_ID: 簡単な使用法
|
68
|
-
:END:
|
69
|
-
|
70
|
-
まずは,
|
71
|
-
#+begin_src bash
|
3
|
+
* Name
|
4
|
+
- my_help :: manual like help for each user
|
5
|
+
|
6
|
+
* Summary
|
7
|
+
This gem makes and supplies user specific helps, emulating CUI(CLI) help
|
8
|
+
usage.
|
9
|
+
|
10
|
+
* Target
|
11
|
+
A very novice of learning a specific operation,
|
12
|
+
such as CUI, shell, or emacs,
|
13
|
+
has a difficulty in remembering commands and grammers.
|
14
|
+
Some simple `key' reminds all, but no key brings nothing.
|
15
|
+
Especially a non-English-native has a strong difficulty
|
16
|
+
on the key remembering.
|
17
|
+
The problems are,
|
18
|
+
- a man(ual) is in English
|
19
|
+
- a man is heavily documented
|
20
|
+
- On web, searching the same key word,
|
21
|
+
- and reading the same URI repeatedly
|
22
|
+
- but a memo goes away somewhere...
|
23
|
+
|
24
|
+
* Specs
|
25
|
+
This gem aims to supply own help by gem environment.
|
26
|
+
Specs are,
|
27
|
+
- user makes his own help
|
28
|
+
- supplies a template
|
29
|
+
- a same format, looks, operation, and hierarchy
|
30
|
+
- easily see, read
|
31
|
+
- supplies editing and install commands.
|
32
|
+
|
33
|
+
Wiki targets the whole engineer, my_help targets a specific person.
|
34
|
+
Half of the wiki aim should be covered by my_help.
|
35
|
+
Making own manual is one of the best practices for remembering operations.
|
36
|
+
Memo applications are good, if you remember the key word.
|
37
|
+
my_help supplies the key for remembering the word.
|
38
|
+
|
39
|
+
* Usage
|
40
|
+
** Install
|
41
|
+
|
42
|
+
: $ gem install my_help
|
43
|
+
|
44
|
+
** Simple Usage
|
45
|
+
At first, you can see the commands supplied by my_help.
|
46
|
+
#+begin_example
|
72
47
|
> my_help
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
48
|
+
NAME
|
49
|
+
my_help - make own help and list.
|
50
|
+
|
51
|
+
SYNOPSIS
|
52
|
+
my_help [global options] command [command options] [arguments...]
|
53
|
+
|
54
|
+
VERSION
|
55
|
+
0.7.0
|
56
|
+
|
57
|
+
GLOBAL OPTIONS
|
58
|
+
--help - Show this message
|
59
|
+
--version - Display the program version
|
60
|
+
|
61
|
+
COMMANDS
|
62
|
+
delete - delete HELP_NAME help
|
63
|
+
edit - edit HELP_NAME help
|
64
|
+
help - Shows a list of commands or help for one command
|
65
|
+
list - list all helps, specific HELP, or item
|
66
|
+
new - make new HELP_NAME
|
67
|
+
#+end_example
|
68
|
+
|
69
|
+
When you add HELP_NAME and item (-o)wo'
|
70
|
+
|
71
|
+
: my_help list
|
72
|
+
: my_help list emacs_help
|
73
|
+
: my_help list emacs_help -f
|
74
|
+
: my_help list emacs_help file
|
75
|
+
|
76
|
+
|
77
|
+
#+BEGIN_EXAMPLE
|
94
78
|
- emacsのキーバインド
|
95
79
|
-
|
96
80
|
特殊キー操作
|
@@ -111,33 +95,16 @@ Commands:
|
|
111
95
|
, query_replace : query_replace
|
112
96
|
-r, ruby-mode : ruby-mode
|
113
97
|
-d, dired : ファイラとして使う
|
114
|
-
#+
|
115
|
-
|
116
|
-
** my_helpがやっていること
|
117
|
-
my_helpの個々のヘルプファイルは'~/.my_help'に置かれています.
|
118
|
-
ヘルプファイルのフォーマットはEmacsのorg-modeです.
|
119
|
-
これをEditorで叩いて編集したり,
|
120
|
-
そこから情報を取り出したりしています.
|
121
|
-
単にファイル操作を集約しているだけなのですが,
|
122
|
-
これが面倒で...
|
123
|
-
|
124
|
-
|
125
|
-
** 独自のhelpを作る方法
|
126
|
-
独自のhelpを作る方法です.まずは,
|
127
|
-
|
128
|
-
: $ my_help new new_help
|
98
|
+
#+END_EXAMPLE
|
129
99
|
|
130
|
-
|
131
|
-
|
132
|
-
|
100
|
+
** Make your own help
|
101
|
+
For making your new help, you can do tha as follows:
|
102
|
+
: my_help new new_help
|
133
103
|
|
134
|
-
|
104
|
+
A templeate is compied, then you can edit as
|
105
|
+
: my_help edit new_help
|
106
|
+
The file is stored in emacs org mode.
|
135
107
|
|
136
|
-
|
137
|
-
|
138
|
-
: $ my_help set_editor vim
|
139
|
-
でeditorを変更できます.codeとかは確認していますが,
|
140
|
-
それ以外で動いたり,動かなかったりを報告してください.
|
108
|
+
You can delete if as follows:
|
109
|
+
: my_help delete new_help
|
141
110
|
|
142
|
-
OS Xで'emacs'とした時にGUI版が立ち上がって嫌だという場合は,
|
143
|
-
'emacs -nw'として下さい.
|
data/README_j.org
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
# my_help
|
2
|
+
#+AUTHOR: Shigeto R. Nishitani
|
3
|
+
#+EMAIL: (concat "nishitani@kwansei.ac.jp")
|
4
|
+
#+LANGUAGE: jp
|
5
|
+
#+OPTIONS: H:4 toc:t num:2
|
6
|
+
#+SETUPFILE: /Users/bob/.emacs.d/org-mode/theme-readtheorg.setup
|
7
|
+
#+STARTUP: indent nolineimages
|
8
|
+
#+OPTIONS: ^:{}
|
9
|
+
|
10
|
+
* 概要
|
11
|
+
:PROPERTIES:
|
12
|
+
:CUSTOM_ID: 概要
|
13
|
+
:END:
|
14
|
+
|
15
|
+
CUI(CLA)ヘルプのUsage出力を真似て,user独自のhelpを作成・提供するgem.
|
16
|
+
|
17
|
+
|
18
|
+
* (my_helpで解決しようとする)問題点
|
19
|
+
:PROPERTIES:
|
20
|
+
:CUSTOM_ID: my_helpで解決しようとする問題点
|
21
|
+
:END:
|
22
|
+
|
23
|
+
CUIやshell, 何かのプログラミング言語などを習得しようとする初心者は,
|
24
|
+
commandや文法を覚えるのに苦労します.
|
25
|
+
少しのkey(とっかかり)があると思い出すんですが,
|
26
|
+
うろ覚えでは間違えて路頭に迷います.
|
27
|
+
問題点は,
|
28
|
+
+ manは基本的に英語
|
29
|
+
+ manualでは重たい
|
30
|
+
+ いつもおなじことをwebで検索して
|
31
|
+
+ 同じとこ見ている
|
32
|
+
+ memoしても,どこへ置いたか忘れる
|
33
|
+
などです.
|
34
|
+
|
35
|
+
* 特徴
|
36
|
+
:PROPERTIES:
|
37
|
+
:CUSTOM_ID: 特徴
|
38
|
+
:END:
|
39
|
+
|
40
|
+
これらをCLAとして提供しようというのが,このgemの目的です.
|
41
|
+
仕様としては,
|
42
|
+
- userが自分にあったmanを作成
|
43
|
+
- 雛形を提供
|
44
|
+
- おなじformat, looks, 操作, 階層構造
|
45
|
+
- すぐに手が届く
|
46
|
+
- それらを追加・修正・削除できる
|
47
|
+
|
48
|
+
memoソフトでは,検索が必要となりますが,my_helpは
|
49
|
+
key(記憶のとっかかり)を提供することが目的です.
|
50
|
+
RPGでレベル上げとかアイテムを貯めるようにして,
|
51
|
+
プログラミングでスキルを発展させてください.
|
52
|
+
|
53
|
+
VSCodeやGithub Copilotではcodeの候補を挙げてくれますが,
|
54
|
+
物覚えの悪い作者は,人の名前をitem分けして,こそっと使っています.
|
55
|
+
|
56
|
+
* 使用法
|
57
|
+
:PROPERTIES:
|
58
|
+
:CUSTOM_ID: 使用法
|
59
|
+
:END:
|
60
|
+
** インストール
|
61
|
+
|
62
|
+
: > gem install my_help
|
63
|
+
です.
|
64
|
+
|
65
|
+
** 簡単な使用法
|
66
|
+
:PROPERTIES:
|
67
|
+
:CUSTOM_ID: 簡単な使用法
|
68
|
+
:END:
|
69
|
+
|
70
|
+
まずは,
|
71
|
+
#+begin_src bash
|
72
|
+
> my_help
|
73
|
+
Commands:
|
74
|
+
my_help delete HELP # delete HELP
|
75
|
+
my_help edit HELP # edit HELP
|
76
|
+
my_help help [COMMAND] # Describe available commands or one specific command
|
77
|
+
my_help list [HELP] [ITEM] # list all helps, specific HELP, or ITEM
|
78
|
+
my_help new HELP # make new HELP
|
79
|
+
my_help set_editor EDITOR_NAME # set editor to EDITOR_NAME
|
80
|
+
my_help setup # set up the test database
|
81
|
+
my_help version # show version
|
82
|
+
#+end_src
|
83
|
+
としてください.このlistにNAMEやITEMを加えて行くとわかると思います.
|
84
|
+
|
85
|
+
#+begin_src bash
|
86
|
+
> my_help list
|
87
|
+
> my_help list emacs
|
88
|
+
> my_help list emacs -f
|
89
|
+
> my_help list emacs file
|
90
|
+
#+end_src
|
91
|
+
として動かしてみてください.
|
92
|
+
|
93
|
+
#+begin_src bash
|
94
|
+
- emacsのキーバインド
|
95
|
+
-
|
96
|
+
特殊キー操作
|
97
|
+
- C-f, controlキーを押しながら 'f'
|
98
|
+
- M-f, escキーを押した後一度離して'f'
|
99
|
+
- 操作の中断C-g, 操作の取り消し(Undo) C-x u
|
100
|
+
, head : head
|
101
|
+
, license : license
|
102
|
+
-c, cursor : cursor
|
103
|
+
-e, edit : edit
|
104
|
+
-s, short_cut : short_cut
|
105
|
+
-f, file : file
|
106
|
+
-q, quit : quit
|
107
|
+
-p, page : page
|
108
|
+
-w, window : window
|
109
|
+
-b, buffer : buffer
|
110
|
+
-m, mode : mode
|
111
|
+
, query_replace : query_replace
|
112
|
+
-r, ruby-mode : ruby-mode
|
113
|
+
-d, dired : ファイラとして使う
|
114
|
+
#+end_src
|
115
|
+
|
116
|
+
** my_helpがやっていること
|
117
|
+
my_helpの個々のヘルプファイルは'~/.my_help'に置かれています.
|
118
|
+
ヘルプファイルのフォーマットはEmacsのorg-modeです.
|
119
|
+
これをEditorで叩いて編集したり,
|
120
|
+
そこから情報を取り出したりしています.
|
121
|
+
単にファイル操作を集約しているだけなのですが,
|
122
|
+
これが面倒で...
|
123
|
+
|
124
|
+
|
125
|
+
** 独自のhelpを作る方法
|
126
|
+
独自のhelpを作る方法です.まずは,
|
127
|
+
|
128
|
+
: $ my_help new new_help
|
129
|
+
|
130
|
+
で,new_helpというtemplateが用意されます.
|
131
|
+
: $ my_help edit new_help
|
132
|
+
で編集してください. Emacs org形式で,格納されています.
|
133
|
+
|
134
|
+
: $ my_help delete new_help
|
135
|
+
|
136
|
+
すると消されます.
|
137
|
+
** editorの変更
|
138
|
+
: $ my_help set_editor vim
|
139
|
+
でeditorを変更できます.codeとかは確認していますが,
|
140
|
+
それ以外で動いたり,動かなかったりを報告してください.
|
141
|
+
|
142
|
+
OS Xで'emacs'とした時にGUI版が立ち上がって嫌だという場合は,
|
143
|
+
'emacs -nw'として下さい.
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
2
|
+
require 'yard'
|
3
3
|
require 'bundler/gem_tasks'
|
4
4
|
require 'rake/testtask'
|
5
5
|
|
@@ -30,3 +30,22 @@ RuboCop::RakeTask.new
|
|
30
30
|
task :default do
|
31
31
|
system "rake -T"
|
32
32
|
end
|
33
|
+
|
34
|
+
require "colorize"
|
35
|
+
require 'command_line/global'
|
36
|
+
|
37
|
+
desc 'git auto'
|
38
|
+
task :git_auto do
|
39
|
+
print "Input comments: "
|
40
|
+
comment = STDIN.gets.chomp
|
41
|
+
comment = comment == "" ? "auto pull and push" : comment.gsub("\'", "\\'")
|
42
|
+
["git add -A",
|
43
|
+
"git commit -m '#{comment}'",
|
44
|
+
"git pull origin main",
|
45
|
+
"git push origin main"].each do |comm|
|
46
|
+
puts comm.cyan
|
47
|
+
res = command_line comm
|
48
|
+
puts res.stdout.green
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
@@ -0,0 +1,242 @@
|
|
1
|
+
#+qiita_teams: 5e172c4b5167abe35a3e
|
2
|
+
#+qiita_private: 6487b0b54e4eda26e9f6
|
3
|
+
#+OPTIONS: ^:{}
|
4
|
+
#+STARTUP: indent nolineimages
|
5
|
+
#+TITLE: my_help 開発メモ
|
6
|
+
#+AUTHOR: Shigeto R. Nishitani
|
7
|
+
#+EMAIL: (concat "shigeto_nishitani@mac.com")
|
8
|
+
#+LANGUAGE: jp
|
9
|
+
#+OPTIONS: H:4 toc:t num:2
|
10
|
+
# +OPTIONS: toc:nil
|
11
|
+
#+TAG: ruby, test, my_help
|
12
|
+
#+TWITTER: off
|
13
|
+
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
|
14
|
+
|
15
|
+
* <2023-01-07 Sat> Thor
|
16
|
+
いくつかのaliasをThorで実現したい
|
17
|
+
- my_help -v
|
18
|
+
- my_help --version
|
19
|
+
という標準的なoption期待に答える.
|
20
|
+
|
21
|
+
- [[https://marsbased.com/blog/2020/04/27/building-ruby-cli-thor/][author token, aliases sample]]
|
22
|
+
- [[https://stackoverflow.com/questions/28504373/command-aliasing-in-thor][map]]
|
23
|
+
なんかの記述があったが,
|
24
|
+
- https://github.com/rails/thor/wiki
|
25
|
+
で解決.やっぱり原典ね.
|
26
|
+
|
27
|
+
あと,その後ろの方に,例文の引き方があって,
|
28
|
+
- https://gist.github.com/search?l=ruby&q=.thor
|
29
|
+
が便利なんがわかった.これは,使える.
|
30
|
+
|
31
|
+
|
32
|
+
* <2023-01-06 Fri> get_configの置き場所
|
33
|
+
Thorのsubcommandを使ってclassを分けたが,共通で利用する
|
34
|
+
get_configメソッドをどこに置くかで悩んだ.
|
35
|
+
|
36
|
+
結局,
|
37
|
+
#+begin_src ruby
|
38
|
+
# git_cli.rb
|
39
|
+
Module MyHelp
|
40
|
+
Module GetConfig
|
41
|
+
Class Git < Thor
|
42
|
+
include GetConfig
|
43
|
+
...
|
44
|
+
end
|
45
|
+
# cli.rb
|
46
|
+
Module MyHelp
|
47
|
+
Class CLI < Thor
|
48
|
+
include GetConfig
|
49
|
+
...
|
50
|
+
end
|
51
|
+
# my_help.rb
|
52
|
+
require_relative "my_help/git_cli"
|
53
|
+
require_relative "my_help/cli"
|
54
|
+
#+end_src
|
55
|
+
としている.
|
56
|
+
専用のModuleを作成して,includeするという方法.
|
57
|
+
* <2023-01-05 Thu> cli directory指定
|
58
|
+
** directory指定
|
59
|
+
テスト環境と本番環境でのhelp_dirあるいはconfig_dir指定の
|
60
|
+
差異の吸収メモ.
|
61
|
+
- --help_dirでcliはhelp_dirを指定できる.
|
62
|
+
- 全て変更したはず.
|
63
|
+
- configが混乱しやすい...config[:ext]なんかを自動で返すといいが.
|
64
|
+
- rspec/unitでは
|
65
|
+
- config_spec.rb, modify_spec.rbではtmp_confをtemp_dirに作成
|
66
|
+
- list_spec.rbではtemplates_pathを絶対パスで参照
|
67
|
+
|
68
|
+
** Thorでのdirectory指定の変更
|
69
|
+
Thorのdirectory指定をしっかりやってみる.
|
70
|
+
|
71
|
+
#+begin_src bash
|
72
|
+
bundle exec rspec --format documentation -e list spec/cli_spec.rb --help_dir='./tmp/.my_Help'
|
73
|
+
invalid option: --help_dir=./tmp/.my_Help
|
74
|
+
|
75
|
+
Please use --help for a listing of valid options
|
76
|
+
#+end_src
|
77
|
+
これはだめ.なぜなら,--help_dirはmy_helpのlistのoptionであって,
|
78
|
+
rspecは解釈してくれない.
|
79
|
+
|
80
|
+
ここは,cli_spec.rbで
|
81
|
+
#+begin_src ruby
|
82
|
+
temp_dir = Dir.pwd
|
83
|
+
let(:help_name) { "example" }
|
84
|
+
let(:help_dir) { File.join(temp_dir, "lib", "templates") }
|
85
|
+
|
86
|
+
it "list with name" do
|
87
|
+
run_command("my_help list #{help_name} a_item --help_dir=#{help_dir}")
|
88
|
+
stop_all_commands
|
89
|
+
expect(last_command_started).to have_output(/a_item/)
|
90
|
+
end
|
91
|
+
#+end_src
|
92
|
+
とすべき.
|
93
|
+
|
94
|
+
そうすると
|
95
|
+
#+begin_src bash
|
96
|
+
bundle exec exe/my_help list --help_dir='/Users/bob/git_hub/my_help/lib/templates'
|
97
|
+
#+end_src
|
98
|
+
でも動く.
|
99
|
+
そうしておいて,optionsを移動.
|
100
|
+
|
101
|
+
今は,
|
102
|
+
#+begin_src bash
|
103
|
+
> bundle exec exe/my_help help list
|
104
|
+
Usage:
|
105
|
+
my_help list [HELP] [ITEM]
|
106
|
+
|
107
|
+
Options:
|
108
|
+
[--help-dir=HELP_DIR]
|
109
|
+
[--layer=N]
|
110
|
+
|
111
|
+
list helps
|
112
|
+
#+end_src
|
113
|
+
となっていたが,
|
114
|
+
|
115
|
+
#+begin_src bash
|
116
|
+
bundle exec exe/my_help
|
117
|
+
Commands:
|
118
|
+
my_help delete [HELP] # delete HELP
|
119
|
+
my_help edit [HELP] # edit help
|
120
|
+
...
|
121
|
+
Options:
|
122
|
+
[--help-dir=HELP_DIR]
|
123
|
+
#+end_src
|
124
|
+
とclass_optionとすることで,共通して指定できるように変更.
|
125
|
+
|
126
|
+
* <2022-12-15 Thu> subcommand and options
|
127
|
+
- [[https://hawksnowlog.blogspot.com/2020/09/ruby-thor-tutorial.html#hello-thor][Ruby thor で CLI ツールの開発に入門してみる]]
|
128
|
+
|
129
|
+
* <2022-12-15 Thu> rspecでerror
|
130
|
+
Arubaでrspecするとpwd directoryが/tmp/arubaになる?
|
131
|
+
そうすると今のままではrspecが通らなくなる.
|
132
|
+
example2.orgの置き場が不定.
|
133
|
+
spec側で強引に作るか...
|
134
|
+
|
135
|
+
それもsmartにしたいよね.
|
136
|
+
newでは後ろにoptionがあって,#{temp_dir}での作成とできるが,
|
137
|
+
これをその他のoptionsでやるのは難しそう.
|
138
|
+
|
139
|
+
** 解決!!
|
140
|
+
Arubaだけの問題なので,テストの時用にhelp_dirを
|
141
|
+
Thorのoptionとして引けるようにした.
|
142
|
+
#+begin_src ruby -n
|
143
|
+
desc "list [HELP] [ITEM]", "list helps"
|
144
|
+
option :help_dir, :type => :string
|
145
|
+
# use method_options [[https://github.com/rails/thor/wiki/Method-Options]]
|
146
|
+
def list(*args)
|
147
|
+
config = get_config(args).config
|
148
|
+
help_dir = options["help_dir"] || config[:local_help_dir]
|
149
|
+
puts List.new(help_dir,
|
150
|
+
config[:ext]).list(*args.join(" "))
|
151
|
+
end
|
152
|
+
...
|
153
|
+
context "list command" do
|
154
|
+
temp_dir = Dir.pwd
|
155
|
+
let(:help_name) { "example" }
|
156
|
+
let(:help_dir) { File.join(temp_dir, "lib", "templates") }
|
157
|
+
|
158
|
+
it "list with name" do
|
159
|
+
run_command("my_help list #{help_name} a_item --help_dir=#{help_dir}")
|
160
|
+
stop_all_commands
|
161
|
+
expect(last_command_started).to have_output(/a_item/)
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
#+end_src
|
166
|
+
|
167
|
+
* <2021-10-18 月> conf_pathの追加
|
168
|
+
my_help.confの場所を指定するconf_pathをnewで指定できるようにする.
|
169
|
+
|
170
|
+
#+begin_src diff -n -i
|
171
|
+
> git diff
|
172
|
+
--- a/lib/my_help/my_help_controll.rb
|
173
|
+
+++ b/lib/my_help/my_help_controll.rb
|
174
|
+
@@ -5,13 +5,14 @@ require 'yaml'
|
175
|
+
module MyHelp
|
176
|
+
class Control
|
177
|
+
attr_accessor :local_help_dir, :editor
|
178
|
+
- def initialize()
|
179
|
+
+ def initialize(conf_path=nil)
|
180
|
+
# for configuration setups
|
181
|
+
# see https://stackoverflow.com/questions/6233124/where-to-place-access-config-file-in-gem
|
182
|
+
-
|
183
|
+
+ @conf_path = conf_path || ENV['HOME']
|
184
|
+
@template_dir = File.expand_path("../../templates", __FILE__)
|
185
|
+
@exe_dir = File.expand_path("../../exe", __FILE__)
|
186
|
+
- @local_help_dir = File.join(ENV['HOME'],'.my_help')
|
187
|
+
+ @local_help_dir = File.join(@conf_path, '.my_help')
|
188
|
+
+ @conf_file = File.join(@local_help_dir, '.my_help_conf.yml')
|
189
|
+
@editor = ENV['EDITOR'] || 'emacs' #'code', 'emacs' #'vim' #default editor
|
190
|
+
# @mini_account = File
|
191
|
+
set_help_dir_if_not_exists
|
192
|
+
@@ -28,9 +29,6 @@ module MyHelp
|
193
|
+
end
|
194
|
+
|
195
|
+
def load_conf
|
196
|
+
- file_name = '.my_help_conf.yml'
|
197
|
+
- # @conf_file = File.join(Dir.pwd, file_name)
|
198
|
+
- @conf_file = File.join(@local_help_dir, file_name)
|
199
|
+
begin
|
200
|
+
conf = YAML.load_file(@conf_file)
|
201
|
+
@editor = conf[:editor]
|
202
|
+
#+end_src
|
203
|
+
|
204
|
+
変更箇所は次の通り.
|
205
|
+
- initializeはconf_pathを受け取るが,指定されてない時はnil
|
206
|
+
- これを@conf_pathに受け渡すが,defaultをENV['HOME']に指定
|
207
|
+
- これでデフォルトのconfigurationを変更していく
|
208
|
+
やり方は,
|
209
|
+
[[https://stackoverflow.com/questions/6233124/where-to-place-access-config-file-in-gem][Where to place/access config file in gem?]]
|
210
|
+
を参照する.
|
211
|
+
|
212
|
+
これによってTest::unitでのtest環境独自のmy_help環境を構築することが
|
213
|
+
できる.
|
214
|
+
|
215
|
+
* <2021-11-08 月> conf_pathをactivate
|
216
|
+
testが進んできたので,conf_pathをactivateした.
|
217
|
+
そのためのテストが必要かも.
|
218
|
+
|
219
|
+
1. ENV['HOME']で指定した時と...
|
220
|
+
1. pwdで何もない時のoptionsがどうなっている?
|
221
|
+
|
222
|
+
#+begin_src yaml
|
223
|
+
config:
|
224
|
+
:template_dir: "/Users/bob/git_hub/my_help/lib/templates"
|
225
|
+
:local_help_dir: "/Users/bob/git_hub/my_help/test/.my_help"
|
226
|
+
:conf_file: "/Users/bob/git_hub/my_help/test/.my_help/.my_help_conf.yml"
|
227
|
+
:editor: emacs
|
228
|
+
#+end_src
|
229
|
+
|
230
|
+
* <2021-11-08 月> bundle exec exe/my_help editでエラー
|
231
|
+
#+begin_src shell
|
232
|
+
Could not find ffi-1.15.4 in any of the sources
|
233
|
+
Run `bundle install` to install missing gems.
|
234
|
+
#+end_src
|
235
|
+
とのエラー.
|
236
|
+
なんだろう.
|
237
|
+
|
238
|
+
さらに,command_lineで呼ぶと,
|
239
|
+
: emacs: standard input is not a tty
|
240
|
+
というエラーが出る.これまたなんだろう???
|
241
|
+
|
242
|
+
|