my_help 0.2.0 → 0.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 +84 -6
- data/Rakefile +7 -5
- data/exe/#my_help# +4 -0
- data/exe/e_h +3 -2
- data/exe/emacs_help +3 -2
- data/exe/my_help +1 -0
- data/exe/n_h +4 -0
- data/exe/new_help +4 -0
- data/exe/t_h +4 -0
- data/exe/test_help +4 -0
- data/hikis/README_ja.hiki +77 -5
- data/lib/daddygongon/emacs_help +4 -4
- data/lib/daddygongon/new_help +24 -0
- data/lib/daddygongon/test_help +24 -0
- data/lib/my_help/template_help +24 -0
- data/lib/my_help/version.rb +1 -1
- data/lib/my_help.rb +49 -26
- data/lib/specific_help.rb +57 -0
- data/my_help.wiki/Home.md +84 -6
- data/my_help.wiki/README_ja.md +84 -6
- metadata +16 -3
- data/lib/emacs_help/version.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dab861c2fa7bc1ecda68c901e2419bda4dbd86ec
|
4
|
+
data.tar.gz: f6d7d0ecccb112139bd7605dc73335a3decd6528
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0c4409ac355238a38874800ea637acd67daddbb545ff213aeefa09799dbd0413d6fec8a9adb28c46f7f10643cb284895016ba54b758710633e6878136d95435
|
7
|
+
data.tar.gz: 09d47076171690f6d21d5086d500ff5a35c2874edeb4e4f8d407b73728cbe38723a2eeb93a5c8ba04e04bd20d1bc3c2edf73e80492fca118a29447966e6f5581
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# 名前
|
2
2
|
|
3
|
-
|
3
|
+
my_help
|
4
4
|
|
5
5
|
# 概要
|
6
6
|
|
@@ -31,7 +31,62 @@ hikiでやろうとしていることの半分くらいはこのあたりのこ
|
|
31
31
|
かもしれません.memoソフトでは,検索が必要となりますが,my_helpは
|
32
32
|
key(記憶のとっかかり)を提供することが目的です.
|
33
33
|
|
34
|
+
# 使用法
|
35
|
+
## インストール
|
36
|
+
インストールですが,gemの標準とは違ったやり方になります.GithubからForkしてcloneします.
|
37
|
+
```
|
38
|
+
git clone git@github.com:daddygongon/my_help.git
|
39
|
+
```
|
40
|
+
あとの作業はbundleを使って行います.これは,最後のrake install:localをコマンドから実行する方法がわからんかったからですが...helpファイルのpush共有とかも考えるとこれがいいのかも.
|
41
|
+
|
42
|
+
用意されているコマンドは,
|
43
|
+
|
44
|
+
```
|
45
|
+
bob% bundle exec exe/my_help
|
46
|
+
Usage: my_help [options]
|
47
|
+
-v, --version show program Version.
|
48
|
+
-l, --list 個別(specific)ヘルプのList表示.
|
49
|
+
-e, --edit NAME NAME(例:test_help)をEdit編集.
|
50
|
+
-i, --init NAME NAME(例:test_help)のtemplateを作成.
|
51
|
+
-m, --make make and install:local all helps.
|
52
|
+
```
|
53
|
+
です.まず,-lでdefaultで入っているリストを見てください.
|
54
|
+
|
55
|
+
```
|
56
|
+
bob% bundle exec exe/my_help -l
|
57
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon"
|
58
|
+
["-l"]
|
59
|
+
Specific help file:
|
60
|
+
emacs_help
|
61
|
+
test_help
|
62
|
+
```
|
63
|
+
これで,CUIでemacs_help, e_h, test_help, t_hが用意されています.少し振る舞いに慣れてください.
|
64
|
+
|
65
|
+
## 独自のhelpを作る方法
|
66
|
+
さて,独自のhelpを作る方法です.まずは,
|
67
|
+
|
68
|
+
```
|
69
|
+
bob% bundle exec exe/my_help -i new_help
|
70
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon"
|
71
|
+
["-i", "new_help"]
|
72
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon/new_help"
|
73
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/my_help/template_help"
|
74
|
+
cp /usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/my_help/template_help
|
75
|
+
/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon/new_help
|
76
|
+
```
|
77
|
+
で,new_helpというtemplateが用意されます.-e new_helpで編集してください.そのあと,-mすると自動でnew_helpがexeディレクトリーに追加されます.
|
78
|
+
|
79
|
+
そのあと,my_helpのdirectoryで
|
80
|
+
```
|
81
|
+
git add -A
|
82
|
+
git commit -m 'add new help'
|
83
|
+
rake install:local
|
84
|
+
```
|
85
|
+
してください.
|
86
|
+
|
34
87
|
# userの独自helpの達成方法
|
88
|
+
(rake my_helpでやっていたが,今は,my_help -mに移行)
|
89
|
+
|
35
90
|
exe中のファイルをrakeで自動生成.
|
36
91
|
./lib/daddygongon/にそれらのdataを保存.以下ではその名前から
|
37
92
|
exe中に実行ファイルを自動生成させている.
|
@@ -59,6 +114,12 @@ gem uninstall my_help
|
|
59
114
|
gem uninstall emacs_help
|
60
115
|
```
|
61
116
|
でそこをcleanにしておくことが望ましい.
|
117
|
+
|
118
|
+
Rakefileの中身は以下の通り.
|
119
|
+
```
|
120
|
+
in Rakefile
|
121
|
+
```
|
122
|
+
|
62
123
|
```ruby
|
63
124
|
desc "make own help from lib/daddygongon/files"
|
64
125
|
task :my_help do
|
@@ -69,13 +130,15 @@ task :my_help do
|
|
69
130
|
p file
|
70
131
|
p file_name=file.split('_')
|
71
132
|
target_files = [file, file_name[0][0]+"_"+file_name[1][0]]
|
72
|
-
p cont_name = File.join(user_name,file)
|
73
|
-
|
74
|
-
exe_cont << "
|
75
|
-
exe_cont << "
|
133
|
+
p cont_name = File.join('lib',user_name,file)
|
134
|
+
exe_cont << "require 'my_help'\n"
|
135
|
+
exe_cont << "help_file = File.expand_path(\"../../#{cont_name}\", __FILE__)\n"
|
136
|
+
exe_cont << "MyHelp::Command.run(help_file, ARGV)\n"
|
76
137
|
target_files.each{|name|
|
138
|
+
p ''
|
77
139
|
p target=File.join('exe',name)
|
78
140
|
File.open(target,'w'){|file|
|
141
|
+
print exe_cont
|
79
142
|
file.print exe_cont
|
80
143
|
}
|
81
144
|
FileUtils.chmod('a+x', target, :verbose => true)
|
@@ -84,12 +147,27 @@ task :my_help do
|
|
84
147
|
end
|
85
148
|
```
|
86
149
|
|
87
|
-
|
150
|
+
実装方法は,emacs_helpに
|
88
151
|
|
89
152
|
1. yaml形式でdataを入れ,command.runの入力ファイルとする
|
90
153
|
1. hush形式でdataをいれ,それをrequireして使う
|
91
154
|
|
92
155
|
かのどちらかで実装.speedとかdebugを比較・検証する必要あり.
|
156
|
+
今の所,No.1の方を実装.No.2のためのhushデータは,
|
157
|
+
|
158
|
+
```ruby
|
159
|
+
require 'yaml'
|
160
|
+
require 'pp'
|
161
|
+
|
162
|
+
pp YAML.load(File.read(ARGV[0]))
|
163
|
+
```
|
164
|
+
|
165
|
+
```
|
166
|
+
ruby test.rb lib/daddygongon/emacs_help
|
167
|
+
```
|
168
|
+
|
169
|
+
で構築できる.実装してみて.
|
170
|
+
|
93
171
|
|
94
172
|
# どちらがいいか
|
95
173
|
Rubyで日本語が使えるから,optionsを日本語にしてみた.
|
data/Rakefile
CHANGED
@@ -33,7 +33,7 @@ task :hiki2md do
|
|
33
33
|
readme_en="#{basename}.wiki/README_en.md"
|
34
34
|
readme_ja="#{basename}.wiki/README_ja.md"
|
35
35
|
if File.exists?(readme_en)
|
36
|
-
FileUtils.cp(readme_en,"./README.md",:verbose=>true)
|
36
|
+
FileUtils.cp(readme_en,"./README.md",:verbose=>true)
|
37
37
|
elsif File.exists?(readme_ja)
|
38
38
|
FileUtils.cp(readme_ja,"./README.md",:verbose=>true)
|
39
39
|
FileUtils.cp(readme_ja,"#{basename}.wiki/Home.md",:verbose=>true)
|
@@ -52,18 +52,20 @@ end
|
|
52
52
|
|
53
53
|
desc "make own help from lib/daddygongon/files"
|
54
54
|
task :my_help do
|
55
|
-
exe_cont="#!/usr/bin/env ruby\n"
|
56
55
|
user_name = 'daddygongon'
|
57
56
|
p entries=Dir.entries(File.join('.','lib',user_name))[2..-1]
|
58
57
|
entries.each{|file|
|
59
58
|
p file
|
59
|
+
next if file[0]=='#' or file[-1]=='~'
|
60
|
+
exe_cont="#!/usr/bin/env ruby\n"
|
60
61
|
p file_name=file.split('_')
|
61
62
|
target_files = [file, file_name[0][0]+"_"+file_name[1][0]]
|
62
63
|
p cont_name = File.join('lib',user_name,file)
|
63
|
-
exe_cont << "require '
|
64
|
-
exe_cont << "
|
64
|
+
exe_cont << "require 'specific_help'\n"
|
65
|
+
exe_cont << "help_file = File.expand_path(\"../../#{cont_name}\", __FILE__)\n"
|
66
|
+
exe_cont << "SpecificHelp::Command.run(help_file, ARGV)\n"
|
65
67
|
target_files.each{|name|
|
66
|
-
|
68
|
+
print "\n"
|
67
69
|
p target=File.join('exe',name)
|
68
70
|
File.open(target,'w'){|file|
|
69
71
|
print exe_cont
|
data/exe/#my_help#
ADDED
data/exe/e_h
CHANGED
data/exe/emacs_help
CHANGED
data/exe/my_help
CHANGED
data/exe/n_h
ADDED
data/exe/new_help
ADDED
data/exe/t_h
ADDED
data/exe/test_help
ADDED
data/hikis/README_ja.hiki
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
!名前
|
2
2
|
|
3
|
-
|
3
|
+
my_help
|
4
4
|
|
5
5
|
!概要
|
6
6
|
|
@@ -31,7 +31,60 @@ hikiでやろうとしていることの半分くらいはこのあたりのこ
|
|
31
31
|
かもしれません.memoソフトでは,検索が必要となりますが,my_helpは
|
32
32
|
key(記憶のとっかかり)を提供することが目的です.
|
33
33
|
|
34
|
+
!使用法
|
35
|
+
!!インストール
|
36
|
+
インストールですが,gemの標準とは違ったやり方になります.GithubからForkしてcloneします.
|
37
|
+
git clone git@github.com:daddygongon/my_help.git
|
38
|
+
あとの作業はbundleを使って行います.これは,最後のrake install:localをコマンドから実行する方法がわからんかったからですが...helpファイルのpush共有とかも考えるとこれがいいのかも.
|
39
|
+
|
40
|
+
用意されているコマンドは,
|
41
|
+
|
42
|
+
<<<
|
43
|
+
bob% bundle exec exe/my_help
|
44
|
+
Usage: my_help [options]
|
45
|
+
-v, --version show program Version.
|
46
|
+
-l, --list 個別(specific)ヘルプのList表示.
|
47
|
+
-e, --edit NAME NAME(例:test_help)をEdit編集.
|
48
|
+
-i, --init NAME NAME(例:test_help)のtemplateを作成.
|
49
|
+
-m, --make make and install:local all helps.
|
50
|
+
>>>
|
51
|
+
です.まず,-lでdefaultで入っているリストを見てください.
|
52
|
+
|
53
|
+
<<<
|
54
|
+
bob% bundle exec exe/my_help -l
|
55
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon"
|
56
|
+
["-l"]
|
57
|
+
Specific help file:
|
58
|
+
emacs_help
|
59
|
+
test_help
|
60
|
+
>>>
|
61
|
+
これで,CUIでemacs_help, e_h, test_help, t_hが用意されています.少し振る舞いに慣れてください.
|
62
|
+
|
63
|
+
!!独自のhelpを作る方法
|
64
|
+
さて,独自のhelpを作る方法です.まずは,
|
65
|
+
|
66
|
+
<<<
|
67
|
+
bob% bundle exec exe/my_help -i new_help
|
68
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon"
|
69
|
+
["-i", "new_help"]
|
70
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon/new_help"
|
71
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/my_help/template_help"
|
72
|
+
cp /usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/my_help/template_help
|
73
|
+
/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon/new_help
|
74
|
+
>>>
|
75
|
+
で,new_helpというtemplateが用意されます.-e new_helpで編集してください.そのあと,-mすると自動でnew_helpがexeディレクトリーに追加されます.
|
76
|
+
|
77
|
+
そのあと,my_helpのdirectoryで
|
78
|
+
<<<
|
79
|
+
git add -A
|
80
|
+
git commit -m 'add new help'
|
81
|
+
rake install:local
|
82
|
+
>>>
|
83
|
+
してください.
|
84
|
+
|
34
85
|
!userの独自helpの達成方法
|
86
|
+
(rake my_helpでやっていたが,今は,my_help -mに移行)
|
87
|
+
|
35
88
|
exe中のファイルをrakeで自動生成.
|
36
89
|
./lib/daddygongon/にそれらのdataを保存.以下ではその名前から
|
37
90
|
exe中に実行ファイルを自動生成させている.
|
@@ -53,6 +106,10 @@ exe
|
|
53
106
|
gem uninstall my_help
|
54
107
|
gem uninstall emacs_help
|
55
108
|
でそこをcleanにしておくことが望ましい.
|
109
|
+
|
110
|
+
Rakefileの中身は以下の通り.
|
111
|
+
in Rakefile
|
112
|
+
|
56
113
|
<<< ruby
|
57
114
|
desc "make own help from lib/daddygongon/files"
|
58
115
|
task :my_help do
|
@@ -63,13 +120,15 @@ task :my_help do
|
|
63
120
|
p file
|
64
121
|
p file_name=file.split('_')
|
65
122
|
target_files = [file, file_name[0][0]+"_"+file_name[1][0]]
|
66
|
-
p cont_name = File.join(user_name,file)
|
67
|
-
# exe_cont << "require '#{cont_name}'\n"
|
123
|
+
p cont_name = File.join('lib',user_name,file)
|
68
124
|
exe_cont << "require 'my_help'\n"
|
69
|
-
exe_cont << "
|
125
|
+
exe_cont << "help_file = File.expand_path(\"../../#{cont_name}\", __FILE__)\n"
|
126
|
+
exe_cont << "MyHelp::Command.run(help_file, ARGV)\n"
|
70
127
|
target_files.each{|name|
|
128
|
+
p ''
|
71
129
|
p target=File.join('exe',name)
|
72
130
|
File.open(target,'w'){|file|
|
131
|
+
print exe_cont
|
73
132
|
file.print exe_cont
|
74
133
|
}
|
75
134
|
FileUtils.chmod('a+x', target, :verbose => true)
|
@@ -78,12 +137,25 @@ task :my_help do
|
|
78
137
|
end
|
79
138
|
>>>
|
80
139
|
|
81
|
-
|
140
|
+
実装方法は,emacs_helpに
|
82
141
|
|
83
142
|
# yaml形式でdataを入れ,command.runの入力ファイルとする
|
84
143
|
# hush形式でdataをいれ,それをrequireして使う
|
85
144
|
|
86
145
|
かのどちらかで実装.speedとかdebugを比較・検証する必要あり.
|
146
|
+
今の所,No.1の方を実装.No.2のためのhushデータは,
|
147
|
+
|
148
|
+
<<< ruby
|
149
|
+
require 'yaml'
|
150
|
+
require 'pp'
|
151
|
+
|
152
|
+
pp YAML.load(File.read(ARGV[0]))
|
153
|
+
>>>
|
154
|
+
|
155
|
+
ruby test.rb lib/daddygongon/emacs_help
|
156
|
+
|
157
|
+
で構築できる.実装してみて.
|
158
|
+
|
87
159
|
|
88
160
|
!どちらがいいか
|
89
161
|
Rubyで日本語が使えるから,optionsを日本語にしてみた.
|
data/lib/daddygongon/emacs_help
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
---
|
2
2
|
:head:
|
3
|
-
- "\n
|
4
|
-
- "
|
5
|
-
- "
|
6
|
-
- "
|
3
|
+
- "\n特殊キー操作\n"
|
4
|
+
- " c-f, controlキーを押しながら 'f'\n"
|
5
|
+
- " M-f, escキーを押した後一度離して'f'\n"
|
6
|
+
- " 操作の中断c-g, 操作の取り消し(Undo) c-x u \n"
|
7
7
|
:cursor:
|
8
8
|
:opts:
|
9
9
|
:short: "-c"
|
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
:head:
|
3
|
+
- "TODO: ヘルプ内容の概略.\n"
|
4
|
+
- " 常に表示される内容を記述.\n"
|
5
|
+
- " 下を参照して変更してください.\n"
|
6
|
+
:item:
|
7
|
+
:opts:
|
8
|
+
:short: "-i"
|
9
|
+
:long: "--item"
|
10
|
+
:desc: 単元(item)
|
11
|
+
:title: "\n単元\n"
|
12
|
+
:cont:
|
13
|
+
- c-f, move Forwrard, 前or右へ
|
14
|
+
- フォーマットは自由です. ','があるときは2文字下げ,ないときは4文字下げ
|
15
|
+
:item2:
|
16
|
+
:opts:
|
17
|
+
:short: "-j"
|
18
|
+
:long: "--item2"
|
19
|
+
:desc: 単元2(item2)
|
20
|
+
:title: "\n単元2\n"
|
21
|
+
:cont:
|
22
|
+
- c-f, move Forwrard, 前or右へ
|
23
|
+
- フォーマットは自由です.
|
24
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
:head:
|
3
|
+
- "TODO: ヘルプ内容の概略.\n"
|
4
|
+
- " 常に表示される内容を記述.\n"
|
5
|
+
- " 下を参照して変更してください.\n"
|
6
|
+
:item:
|
7
|
+
:opts:
|
8
|
+
:short: "-i"
|
9
|
+
:long: "--item"
|
10
|
+
:desc: 単元(item)
|
11
|
+
:title: "\n単元\n"
|
12
|
+
:cont:
|
13
|
+
- c-f, move Forwrard, 前or右へ
|
14
|
+
- フォーマットは自由です. ','があるときは2文字下げ,ないときは4文字下げ
|
15
|
+
:item2:
|
16
|
+
:opts:
|
17
|
+
:short: "-j"
|
18
|
+
:long: "--item2"
|
19
|
+
:desc: 単元2(item2)
|
20
|
+
:title: "\n単元2\n"
|
21
|
+
:cont:
|
22
|
+
- c-f, move Forwrard, 前or右へ
|
23
|
+
- フォーマットは自由です.
|
24
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
:head:
|
3
|
+
- "TODO: ヘルプ内容の概略.\n"
|
4
|
+
- " 常に表示される内容を記述.\n"
|
5
|
+
- " 下を参照して変更してください.\n"
|
6
|
+
:item:
|
7
|
+
:opts:
|
8
|
+
:short: "-i"
|
9
|
+
:long: "--item"
|
10
|
+
:desc: 単元(item)
|
11
|
+
:title: "\n単元\n"
|
12
|
+
:cont:
|
13
|
+
- c-f, move Forwrard, 前or右へ
|
14
|
+
- フォーマットは自由です. ','があるときは2文字下げ,ないときは4文字下げ
|
15
|
+
:item2:
|
16
|
+
:opts:
|
17
|
+
:short: "-j"
|
18
|
+
:long: "--item2"
|
19
|
+
:desc: 単元2(item2)
|
20
|
+
:title: "\n単元2\n"
|
21
|
+
:cont:
|
22
|
+
- c-f, move Forwrard, 前or右へ
|
23
|
+
- フォーマットは自由です.
|
24
|
+
|
data/lib/my_help/version.rb
CHANGED
data/lib/my_help.rb
CHANGED
@@ -1,36 +1,35 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
require "optparse"
|
3
3
|
require "yaml"
|
4
|
-
require "
|
4
|
+
require "fileutils"
|
5
|
+
#require "emacs_help/version"
|
5
6
|
require "my_help/version"
|
6
|
-
require "emacs_help"
|
7
|
+
#require "emacs_help"
|
7
8
|
|
8
9
|
module MyHelp
|
9
10
|
class Command
|
10
11
|
|
11
|
-
def self.run(
|
12
|
-
new(
|
12
|
+
def self.run(argv=[])
|
13
|
+
new(argv).execute
|
13
14
|
end
|
14
15
|
|
15
|
-
def initialize(
|
16
|
-
@help_cont = YAML.load(File.read(file))
|
17
|
-
# @help_cont = YAML.load(File.read('lib/daddygongon/emacs_help'))
|
18
|
-
@help_cont[:head].each{|line| print line }
|
16
|
+
def initialize(argv=[])
|
19
17
|
@argv = argv
|
18
|
+
p @target_dir = File.expand_path("../../lib/daddygongon", __FILE__)
|
19
|
+
p @argv
|
20
20
|
end
|
21
21
|
|
22
22
|
def execute
|
23
23
|
@argv << '--help' if @argv.size==0
|
24
24
|
command_parser = OptionParser.new do |opt|
|
25
25
|
opt.on('-v', '--version','show program Version.') { |v|
|
26
|
-
opt.version =
|
26
|
+
opt.version = MyHelp::VERSION
|
27
27
|
puts opt.ver
|
28
28
|
}
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
}
|
29
|
+
opt.on('-l', '--list', '個別(specific)ヘルプのList表示.'){list_helps}
|
30
|
+
opt.on('-e NAME', '--edit NAME', 'NAME(例:test_help)をEdit編集.'){|file| edit_help(file)}
|
31
|
+
opt.on('-i NAME', '--init NAME', 'NAME(例:test_help)のtemplateを作成.'){|file| init_help(file)}
|
32
|
+
opt.on('-m', '--make', 'make and install:local all helps.'){make_help}
|
34
33
|
end
|
35
34
|
begin
|
36
35
|
command_parser.parse!(@argv)
|
@@ -40,21 +39,45 @@ module MyHelp
|
|
40
39
|
exit
|
41
40
|
end
|
42
41
|
|
43
|
-
def
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
42
|
+
def make_help
|
43
|
+
p entries=Dir.entries(@target_dir)[2..-1]
|
44
|
+
entries.each{|file|
|
45
|
+
p file
|
46
|
+
next if file[0]=='#' or file[-1]=='~'
|
47
|
+
exe_cont="#!/usr/bin/env ruby\nrequire 'specific_help'\n"
|
48
|
+
p file_name=file.split('_')
|
49
|
+
target_files = [file, file_name[0][0]+"_"+file_name[1][0]]
|
50
|
+
target = File.join(@target_dir,file)
|
51
|
+
exe_cont << "help_file = '#{target}'\n"
|
52
|
+
exe_cont << "SpecificHelp::Command.run(help_file, ARGV)\n"
|
53
|
+
target_files.each{|name|
|
54
|
+
print "\n"
|
55
|
+
p target=File.join('exe',name)
|
56
|
+
File.open(target,'w'){|file|
|
57
|
+
print exe_cont
|
58
|
+
file.print exe_cont
|
59
|
+
}
|
60
|
+
FileUtils.chmod('a+x', target, :verbose => true)
|
61
|
+
}
|
50
62
|
}
|
51
63
|
end
|
52
64
|
|
53
|
-
def
|
54
|
-
|
55
|
-
|
56
|
-
|
65
|
+
def init_help(file)
|
66
|
+
p target_help=File.join(@target_dir,file)
|
67
|
+
p template = File.join(File.dirname(@target_dir),'my_help','template_help')
|
68
|
+
FileUtils::Verbose.cp(template,target_help)
|
69
|
+
end
|
70
|
+
|
71
|
+
def edit_help(file)
|
72
|
+
p target_help=File.join(@target_dir,file)
|
73
|
+
system "emacs #{target_help}"
|
57
74
|
end
|
58
|
-
end
|
59
75
|
|
76
|
+
def list_helps
|
77
|
+
print "Specific help file:\n"
|
78
|
+
Dir.entries(@target_dir)[2..-1].each{|file|
|
79
|
+
print " "+file+"\n"
|
80
|
+
}
|
81
|
+
end
|
82
|
+
end
|
60
83
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require "optparse"
|
3
|
+
require "yaml"
|
4
|
+
require "my_help/version"
|
5
|
+
|
6
|
+
|
7
|
+
module SpecificHelp
|
8
|
+
class Command
|
9
|
+
|
10
|
+
def self.run(file,argv=[])
|
11
|
+
new(file, argv).execute
|
12
|
+
end
|
13
|
+
|
14
|
+
def initialize(file,argv=[])
|
15
|
+
@help_cont = YAML.load(File.read(file))
|
16
|
+
@help_cont[:head].each{|line| print line }
|
17
|
+
@argv = argv
|
18
|
+
end
|
19
|
+
|
20
|
+
def execute
|
21
|
+
@argv << '--help' if @argv.size==0
|
22
|
+
command_parser = OptionParser.new do |opt|
|
23
|
+
opt.on('-v', '--version','show program Version.') { |v|
|
24
|
+
opt.version = MyHelp::VERSION
|
25
|
+
puts opt.ver
|
26
|
+
}
|
27
|
+
@help_cont.each_pair{|key,val|
|
28
|
+
next if key==:head
|
29
|
+
opts = val[:opts]
|
30
|
+
opt.on(opts[:short],opts[:long],opts[:desc]) {disp_from_help_cont(key)}
|
31
|
+
}
|
32
|
+
end
|
33
|
+
begin
|
34
|
+
command_parser.parse!(@argv)
|
35
|
+
rescue=> eval
|
36
|
+
p eval
|
37
|
+
end
|
38
|
+
exit
|
39
|
+
end
|
40
|
+
|
41
|
+
def disp(lines)
|
42
|
+
lines.each{|line|
|
43
|
+
if line.include?(',')
|
44
|
+
puts " #{line}"
|
45
|
+
else
|
46
|
+
puts " #{line}"
|
47
|
+
end
|
48
|
+
}
|
49
|
+
end
|
50
|
+
|
51
|
+
def disp_from_help_cont(key_word)
|
52
|
+
items =@help_cont[key_word]
|
53
|
+
puts items[:title]
|
54
|
+
disp(items[:cont])
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/my_help.wiki/Home.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# 名前
|
2
2
|
|
3
|
-
|
3
|
+
my_help
|
4
4
|
|
5
5
|
# 概要
|
6
6
|
|
@@ -31,7 +31,62 @@ hikiでやろうとしていることの半分くらいはこのあたりのこ
|
|
31
31
|
かもしれません.memoソフトでは,検索が必要となりますが,my_helpは
|
32
32
|
key(記憶のとっかかり)を提供することが目的です.
|
33
33
|
|
34
|
+
# 使用法
|
35
|
+
## インストール
|
36
|
+
インストールですが,gemの標準とは違ったやり方になります.GithubからForkしてcloneします.
|
37
|
+
```
|
38
|
+
git clone git@github.com:daddygongon/my_help.git
|
39
|
+
```
|
40
|
+
あとの作業はbundleを使って行います.これは,最後のrake install:localをコマンドから実行する方法がわからんかったからですが...helpファイルのpush共有とかも考えるとこれがいいのかも.
|
41
|
+
|
42
|
+
用意されているコマンドは,
|
43
|
+
|
44
|
+
```
|
45
|
+
bob% bundle exec exe/my_help
|
46
|
+
Usage: my_help [options]
|
47
|
+
-v, --version show program Version.
|
48
|
+
-l, --list 個別(specific)ヘルプのList表示.
|
49
|
+
-e, --edit NAME NAME(例:test_help)をEdit編集.
|
50
|
+
-i, --init NAME NAME(例:test_help)のtemplateを作成.
|
51
|
+
-m, --make make and install:local all helps.
|
52
|
+
```
|
53
|
+
です.まず,-lでdefaultで入っているリストを見てください.
|
54
|
+
|
55
|
+
```
|
56
|
+
bob% bundle exec exe/my_help -l
|
57
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon"
|
58
|
+
["-l"]
|
59
|
+
Specific help file:
|
60
|
+
emacs_help
|
61
|
+
test_help
|
62
|
+
```
|
63
|
+
これで,CUIでemacs_help, e_h, test_help, t_hが用意されています.少し振る舞いに慣れてください.
|
64
|
+
|
65
|
+
## 独自のhelpを作る方法
|
66
|
+
さて,独自のhelpを作る方法です.まずは,
|
67
|
+
|
68
|
+
```
|
69
|
+
bob% bundle exec exe/my_help -i new_help
|
70
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon"
|
71
|
+
["-i", "new_help"]
|
72
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon/new_help"
|
73
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/my_help/template_help"
|
74
|
+
cp /usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/my_help/template_help
|
75
|
+
/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon/new_help
|
76
|
+
```
|
77
|
+
で,new_helpというtemplateが用意されます.-e new_helpで編集してください.そのあと,-mすると自動でnew_helpがexeディレクトリーに追加されます.
|
78
|
+
|
79
|
+
そのあと,my_helpのdirectoryで
|
80
|
+
```
|
81
|
+
git add -A
|
82
|
+
git commit -m 'add new help'
|
83
|
+
rake install:local
|
84
|
+
```
|
85
|
+
してください.
|
86
|
+
|
34
87
|
# userの独自helpの達成方法
|
88
|
+
(rake my_helpでやっていたが,今は,my_help -mに移行)
|
89
|
+
|
35
90
|
exe中のファイルをrakeで自動生成.
|
36
91
|
./lib/daddygongon/にそれらのdataを保存.以下ではその名前から
|
37
92
|
exe中に実行ファイルを自動生成させている.
|
@@ -59,6 +114,12 @@ gem uninstall my_help
|
|
59
114
|
gem uninstall emacs_help
|
60
115
|
```
|
61
116
|
でそこをcleanにしておくことが望ましい.
|
117
|
+
|
118
|
+
Rakefileの中身は以下の通り.
|
119
|
+
```
|
120
|
+
in Rakefile
|
121
|
+
```
|
122
|
+
|
62
123
|
```ruby
|
63
124
|
desc "make own help from lib/daddygongon/files"
|
64
125
|
task :my_help do
|
@@ -69,13 +130,15 @@ task :my_help do
|
|
69
130
|
p file
|
70
131
|
p file_name=file.split('_')
|
71
132
|
target_files = [file, file_name[0][0]+"_"+file_name[1][0]]
|
72
|
-
p cont_name = File.join(user_name,file)
|
73
|
-
|
74
|
-
exe_cont << "
|
75
|
-
exe_cont << "
|
133
|
+
p cont_name = File.join('lib',user_name,file)
|
134
|
+
exe_cont << "require 'my_help'\n"
|
135
|
+
exe_cont << "help_file = File.expand_path(\"../../#{cont_name}\", __FILE__)\n"
|
136
|
+
exe_cont << "MyHelp::Command.run(help_file, ARGV)\n"
|
76
137
|
target_files.each{|name|
|
138
|
+
p ''
|
77
139
|
p target=File.join('exe',name)
|
78
140
|
File.open(target,'w'){|file|
|
141
|
+
print exe_cont
|
79
142
|
file.print exe_cont
|
80
143
|
}
|
81
144
|
FileUtils.chmod('a+x', target, :verbose => true)
|
@@ -84,12 +147,27 @@ task :my_help do
|
|
84
147
|
end
|
85
148
|
```
|
86
149
|
|
87
|
-
|
150
|
+
実装方法は,emacs_helpに
|
88
151
|
|
89
152
|
1. yaml形式でdataを入れ,command.runの入力ファイルとする
|
90
153
|
1. hush形式でdataをいれ,それをrequireして使う
|
91
154
|
|
92
155
|
かのどちらかで実装.speedとかdebugを比較・検証する必要あり.
|
156
|
+
今の所,No.1の方を実装.No.2のためのhushデータは,
|
157
|
+
|
158
|
+
```ruby
|
159
|
+
require 'yaml'
|
160
|
+
require 'pp'
|
161
|
+
|
162
|
+
pp YAML.load(File.read(ARGV[0]))
|
163
|
+
```
|
164
|
+
|
165
|
+
```
|
166
|
+
ruby test.rb lib/daddygongon/emacs_help
|
167
|
+
```
|
168
|
+
|
169
|
+
で構築できる.実装してみて.
|
170
|
+
|
93
171
|
|
94
172
|
# どちらがいいか
|
95
173
|
Rubyで日本語が使えるから,optionsを日本語にしてみた.
|
data/my_help.wiki/README_ja.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# 名前
|
2
2
|
|
3
|
-
|
3
|
+
my_help
|
4
4
|
|
5
5
|
# 概要
|
6
6
|
|
@@ -31,7 +31,62 @@ hikiでやろうとしていることの半分くらいはこのあたりのこ
|
|
31
31
|
かもしれません.memoソフトでは,検索が必要となりますが,my_helpは
|
32
32
|
key(記憶のとっかかり)を提供することが目的です.
|
33
33
|
|
34
|
+
# 使用法
|
35
|
+
## インストール
|
36
|
+
インストールですが,gemの標準とは違ったやり方になります.GithubからForkしてcloneします.
|
37
|
+
```
|
38
|
+
git clone git@github.com:daddygongon/my_help.git
|
39
|
+
```
|
40
|
+
あとの作業はbundleを使って行います.これは,最後のrake install:localをコマンドから実行する方法がわからんかったからですが...helpファイルのpush共有とかも考えるとこれがいいのかも.
|
41
|
+
|
42
|
+
用意されているコマンドは,
|
43
|
+
|
44
|
+
```
|
45
|
+
bob% bundle exec exe/my_help
|
46
|
+
Usage: my_help [options]
|
47
|
+
-v, --version show program Version.
|
48
|
+
-l, --list 個別(specific)ヘルプのList表示.
|
49
|
+
-e, --edit NAME NAME(例:test_help)をEdit編集.
|
50
|
+
-i, --init NAME NAME(例:test_help)のtemplateを作成.
|
51
|
+
-m, --make make and install:local all helps.
|
52
|
+
```
|
53
|
+
です.まず,-lでdefaultで入っているリストを見てください.
|
54
|
+
|
55
|
+
```
|
56
|
+
bob% bundle exec exe/my_help -l
|
57
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon"
|
58
|
+
["-l"]
|
59
|
+
Specific help file:
|
60
|
+
emacs_help
|
61
|
+
test_help
|
62
|
+
```
|
63
|
+
これで,CUIでemacs_help, e_h, test_help, t_hが用意されています.少し振る舞いに慣れてください.
|
64
|
+
|
65
|
+
## 独自のhelpを作る方法
|
66
|
+
さて,独自のhelpを作る方法です.まずは,
|
67
|
+
|
68
|
+
```
|
69
|
+
bob% bundle exec exe/my_help -i new_help
|
70
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon"
|
71
|
+
["-i", "new_help"]
|
72
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon/new_help"
|
73
|
+
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/my_help/template_help"
|
74
|
+
cp /usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/my_help/template_help
|
75
|
+
/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon/new_help
|
76
|
+
```
|
77
|
+
で,new_helpというtemplateが用意されます.-e new_helpで編集してください.そのあと,-mすると自動でnew_helpがexeディレクトリーに追加されます.
|
78
|
+
|
79
|
+
そのあと,my_helpのdirectoryで
|
80
|
+
```
|
81
|
+
git add -A
|
82
|
+
git commit -m 'add new help'
|
83
|
+
rake install:local
|
84
|
+
```
|
85
|
+
してください.
|
86
|
+
|
34
87
|
# userの独自helpの達成方法
|
88
|
+
(rake my_helpでやっていたが,今は,my_help -mに移行)
|
89
|
+
|
35
90
|
exe中のファイルをrakeで自動生成.
|
36
91
|
./lib/daddygongon/にそれらのdataを保存.以下ではその名前から
|
37
92
|
exe中に実行ファイルを自動生成させている.
|
@@ -59,6 +114,12 @@ gem uninstall my_help
|
|
59
114
|
gem uninstall emacs_help
|
60
115
|
```
|
61
116
|
でそこをcleanにしておくことが望ましい.
|
117
|
+
|
118
|
+
Rakefileの中身は以下の通り.
|
119
|
+
```
|
120
|
+
in Rakefile
|
121
|
+
```
|
122
|
+
|
62
123
|
```ruby
|
63
124
|
desc "make own help from lib/daddygongon/files"
|
64
125
|
task :my_help do
|
@@ -69,13 +130,15 @@ task :my_help do
|
|
69
130
|
p file
|
70
131
|
p file_name=file.split('_')
|
71
132
|
target_files = [file, file_name[0][0]+"_"+file_name[1][0]]
|
72
|
-
p cont_name = File.join(user_name,file)
|
73
|
-
|
74
|
-
exe_cont << "
|
75
|
-
exe_cont << "
|
133
|
+
p cont_name = File.join('lib',user_name,file)
|
134
|
+
exe_cont << "require 'my_help'\n"
|
135
|
+
exe_cont << "help_file = File.expand_path(\"../../#{cont_name}\", __FILE__)\n"
|
136
|
+
exe_cont << "MyHelp::Command.run(help_file, ARGV)\n"
|
76
137
|
target_files.each{|name|
|
138
|
+
p ''
|
77
139
|
p target=File.join('exe',name)
|
78
140
|
File.open(target,'w'){|file|
|
141
|
+
print exe_cont
|
79
142
|
file.print exe_cont
|
80
143
|
}
|
81
144
|
FileUtils.chmod('a+x', target, :verbose => true)
|
@@ -84,12 +147,27 @@ task :my_help do
|
|
84
147
|
end
|
85
148
|
```
|
86
149
|
|
87
|
-
|
150
|
+
実装方法は,emacs_helpに
|
88
151
|
|
89
152
|
1. yaml形式でdataを入れ,command.runの入力ファイルとする
|
90
153
|
1. hush形式でdataをいれ,それをrequireして使う
|
91
154
|
|
92
155
|
かのどちらかで実装.speedとかdebugを比較・検証する必要あり.
|
156
|
+
今の所,No.1の方を実装.No.2のためのhushデータは,
|
157
|
+
|
158
|
+
```ruby
|
159
|
+
require 'yaml'
|
160
|
+
require 'pp'
|
161
|
+
|
162
|
+
pp YAML.load(File.read(ARGV[0]))
|
163
|
+
```
|
164
|
+
|
165
|
+
```
|
166
|
+
ruby test.rb lib/daddygongon/emacs_help
|
167
|
+
```
|
168
|
+
|
169
|
+
で構築できる.実装してみて.
|
170
|
+
|
93
171
|
|
94
172
|
# どちらがいいか
|
95
173
|
Rubyで日本語が使えるから,optionsを日本語にしてみた.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: my_help
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shigeto R. Nishitani
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -112,9 +112,14 @@ description: Emulating CUI(CLI) help, an user makes and displays his own helps.
|
|
112
112
|
email:
|
113
113
|
- shigeto_nishitani@me.com
|
114
114
|
executables:
|
115
|
+
- "#my_help#"
|
115
116
|
- e_h
|
116
117
|
- emacs_help
|
117
118
|
- my_help
|
119
|
+
- n_h
|
120
|
+
- new_help
|
121
|
+
- t_h
|
122
|
+
- test_help
|
118
123
|
extensions: []
|
119
124
|
extra_rdoc_files: []
|
120
125
|
files:
|
@@ -128,16 +133,24 @@ files:
|
|
128
133
|
- Rakefile
|
129
134
|
- bin/console
|
130
135
|
- bin/setup
|
136
|
+
- exe/#my_help#
|
131
137
|
- exe/e_h
|
132
138
|
- exe/emacs_help
|
133
139
|
- exe/my_help
|
140
|
+
- exe/n_h
|
141
|
+
- exe/new_help
|
142
|
+
- exe/t_h
|
143
|
+
- exe/test_help
|
134
144
|
- hikis/README_ja.hiki
|
135
145
|
- latexes/handout_pre.tex
|
136
146
|
- lib/daddygongon/emacs_help
|
147
|
+
- lib/daddygongon/new_help
|
148
|
+
- lib/daddygongon/test_help
|
137
149
|
- lib/emacs_help.rb
|
138
|
-
- lib/emacs_help/version.rb
|
139
150
|
- lib/my_help.rb
|
151
|
+
- lib/my_help/template_help
|
140
152
|
- lib/my_help/version.rb
|
153
|
+
- lib/specific_help.rb
|
141
154
|
- my_help.gemspec
|
142
155
|
- my_help.wiki/Home.md
|
143
156
|
- my_help.wiki/README_ja.md
|
data/lib/emacs_help/version.rb
DELETED