my_help 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -26
- data/Gemfile.lock +63 -0
- data/README.org +43 -290
- data/Rakefile +0 -75
- data/docs/README_en.org +164 -0
- data/docs/diff_against_org_mode.org +38 -0
- data/docs/path_setting.org +47 -0
- data/lib/my_help/version.rb +1 -1
- metadata +6 -389
- data/.rspec +0 -2
- data/.yardopts +0 -2
- data/README.md +0 -415
- data/lib/my_todo/my_todo.rb +0 -10
- data/lib/todo.rb +0 -1
data/.rspec
DELETED
data/.yardopts
DELETED
data/README.md
DELETED
@@ -1,415 +0,0 @@
|
|
1
|
-
<div id="table-of-contents">
|
2
|
-
<h2>Table of Contents</h2>
|
3
|
-
<div id="text-table-of-contents">
|
4
|
-
<ul>
|
5
|
-
<li><a href="#">1. 概要</a></li>
|
6
|
-
<li><a href="#my_help">2. (my_helpで解決しようとする)問題点</a></li>
|
7
|
-
<li><a href="#">3. 特徴</a></li>
|
8
|
-
<li><a href="#">4. 使用法</a>
|
9
|
-
<ul>
|
10
|
-
<li><a href="#">4.1. 簡単な使用法</a></li>
|
11
|
-
<li><a href="#">4.2. インストール</a></li>
|
12
|
-
<li><a href="#alpine-linux-dockerfile">4.3. alpine linuxのためのDockerfile</a></li>
|
13
|
-
<li><a href="#help">4.4. 独自のhelpを作る方法</a></li>
|
14
|
-
<li><a href="#help">4.5. 独自helpを使えるように</a></li>
|
15
|
-
</ul>
|
16
|
-
</li>
|
17
|
-
<li><a href="#user-help">5. userの独自helpの達成方法</a></li>
|
18
|
-
<li><a href="#">6. どちらがいいか</a></li>
|
19
|
-
<li><a href="#uninstall">7. uninstall</a></li>
|
20
|
-
<li><a href="#sec-8">8. Rakefile</a></li>
|
21
|
-
</ul>
|
22
|
-
</div>
|
23
|
-
</div>
|
24
|
-
|
25
|
-
|
26
|
-
# 概要<a id="概要" name="概要"></a>
|
27
|
-
|
28
|
-
|
29
|
-
CUI(CLI)ヘルプのUsage出力を真似て,user独自のhelpを作成・提供するgem.
|
30
|
-
|
31
|
-
# (my\_helpで解決しようとする)問題点<a id="my_helpで解決しようとする問題点" name="my_helpで解決しようとする問題点"></a>
|
32
|
-
|
33
|
-
|
34
|
-
CUIやshell, 何かのプログラミング言語などを習得しようとする初心者は,
|
35
|
-
commandや文法を覚えるのに苦労します.少しのkey(とっかかり)があると
|
36
|
-
思い出すんですが,うろ覚えでは間違えて路頭に迷います.問題点は,
|
37
|
-
- manは基本的に英語
|
38
|
-
- manualでは重たい
|
39
|
-
- いつもおなじことをwebで検索して
|
40
|
-
- 同じとこ見ている
|
41
|
-
- memoしても,どこへ置いたか忘れる
|
42
|
-
|
43
|
-
などです.
|
44
|
-
|
45
|
-
# 特徴<a id="特徴" name="特徴"></a>
|
46
|
-
|
47
|
-
|
48
|
-
これらをgem環境として提供しようというのが,このgemの目的です.
|
49
|
-
仕様としては,
|
50
|
-
- userが自分にあったmanを作成
|
51
|
-
- 雛形を提供
|
52
|
-
- おなじformat, looks, 操作, 階層構造
|
53
|
-
- すぐに手が届く
|
54
|
-
- それらを追加・修正・削除できる
|
55
|
-
|
56
|
-
hikiでやろうとしていることの半分くらいはこのあたりのことなの
|
57
|
-
かもしれません.memoソフトでは,検索が必要となりますが,my\_helpは
|
58
|
-
key(記憶のとっかかり)を提供することが目的です.
|
59
|
-
RPGでレベル上げとかアイテムを貯めるようにして,
|
60
|
-
プログラミングでスキルを発展させてください.
|
61
|
-
|
62
|
-
物覚えの悪い作者は,人の名前をitem分けして,こそっと使っています.
|
63
|
-
|
64
|
-
# 使用法<a id="使用法" name="使用法"></a>
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
## 簡単な使用法<a id="簡単な使用法" name="簡単な使用法"></a>
|
69
|
-
|
70
|
-
|
71
|
-
> $ gem install my\_help
|
72
|
-
|
73
|
-
でも installがうまくいくと,defaultでmy\_help, my\_todo,
|
74
|
-
emacs\_helpが入ります.
|
75
|
-
|
76
|
-
emacs\_helpを動かしてみてください.
|
77
|
-
|
78
|
-
emacsのキーバインド
|
79
|
-
|
80
|
-
特殊キー操作
|
81
|
-
c-f, controlキーを押しながら 'f'
|
82
|
-
M-f, escキーを押した後一度離して'f'
|
83
|
-
操作の中断c-g, 操作の取り消し(Undo) c-x u
|
84
|
-
cc by Shigeto R. Nishitani, 2016
|
85
|
-
Usage: e_h [options]
|
86
|
-
-v, --version show program Version.
|
87
|
-
-c, --cursor Cursor移動
|
88
|
-
-e, --編集 Edit操作
|
89
|
-
-f, --ファイル File操作
|
90
|
-
-q, --終了 終了操作
|
91
|
-
-p, --ページ Page移動
|
92
|
-
-w, --ウィンドウ Window操作
|
93
|
-
-b, --バッファ Buffer操作
|
94
|
-
-m, --mode モード切り替え
|
95
|
-
--edit edit help contents
|
96
|
-
--to_hiki convert to hikidoc format
|
97
|
-
--all display all helps
|
98
|
-
--store [item] store [item] in back
|
99
|
-
--remove [item] remove [item] in back
|
100
|
-
--add [item] add new [item]
|
101
|
-
|
102
|
-
## インストール<a id="インストール" name="インストール"></a>
|
103
|
-
|
104
|
-
|
105
|
-
インストールですが,gemの標準とは違ったやり方になります.GithubからForkしてcloneします.
|
106
|
-
>$ git clone git@github.com:daddygongon/my\_help.git
|
107
|
-
|
108
|
-
あとの作業はbundleを使って行います.
|
109
|
-
|
110
|
-
これは,最後のrake
|
111
|
-
install:localをコマンドから実行する方法がわからんかったからですが...
|
112
|
-
- helpファイルのpush共有とかも考えるとこれがいいのかも. -
|
113
|
-
|
114
|
-
home以下に置く方法と比較分析してください. -
|
115
|
-
lib/daddygongonにあたらしいhelpを置くようにしていましたが,helpに個人情報を入れるとgit
|
116
|
-
pushでさらしてしまうので,やめました.
|
117
|
-
|
118
|
-
まずは,
|
119
|
-
|
120
|
-
> $ bundle update
|
121
|
-
|
122
|
-
でmy\_help.gemspecに記述されている必要なgemsがbundleされます.
|
123
|
-
|
124
|
-
Could not locate
|
125
|
-
Gemfileとエラーが出た場合は、Gemfileのある場所を探し、その配下に移動してから再びコマンドを入力する.
|
126
|
-
|
127
|
-
用意されているコマンドは,
|
128
|
-
|
129
|
-
> $ bundle exec exe/my\_help
|
130
|
-
|
131
|
-
Usage: my_help [options]
|
132
|
-
-v, --version show program Version.
|
133
|
-
-l, --list 個別(specific)ヘルプのList表示.
|
134
|
-
-e, --edit NAME NAME(例:test_help)をEdit編集.
|
135
|
-
-i, --init NAME NAME(例:test_help)のtemplateを作成.
|
136
|
-
-m, --make make executables for all helps.
|
137
|
-
-c, --clean clean up exe dir.
|
138
|
-
--install_local install local after edit helps
|
139
|
-
--delete NAME delete NAME help
|
140
|
-
|
141
|
-
です.まず,-lでdefaultで入っているリストを見てください.
|
142
|
-
|
143
|
-
> $ bundle exec exe/my\_help -l
|
144
|
-
|
145
|
-
"/usr/local/lib/ruby/gems/2.2.0/gems/my_help-0.2.1/lib/daddygongon"
|
146
|
-
["-l"]
|
147
|
-
Specific help file:
|
148
|
-
emacs_help
|
149
|
-
|
150
|
-
これで,CUIでemacs\_help, e\_hが用意されています.
|
151
|
-
これをいじって挙動に馴染んでください.
|
152
|
-
–addとか–editとかで,要素の追加や編集ができます.
|
153
|
-
|
154
|
-
## alpine linuxのためのDockerfile<a id="alpine-linuxのためのdockerfile" name="alpine-linuxのためのdockerfile"></a>
|
155
|
-
|
156
|
-
|
157
|
-
my\_helpをalpine
|
158
|
-
linux上で動作させるため、以下のDockerfileを作成しました。
|
159
|
-
|
160
|
-
FROM alpine:3.7
|
161
|
-
|
162
|
-
ENV http_proxy <YOUR PROXY HERE>
|
163
|
-
ENV https_proxy <YOUR PROXY HERE>
|
164
|
-
|
165
|
-
RUN apk update && apk upgrade
|
166
|
-
RUN apk --update add \
|
167
|
-
openssh git build-base libffi libffi-dev \
|
168
|
-
ruby ruby-dev ruby-rake ruby-bundler
|
169
|
-
|
170
|
-
RUN git clone https://github.com/daddygongon/my_help.git
|
171
|
-
WORKDIR my_help
|
172
|
-
|
173
|
-
RUN bundle update
|
174
|
-
RUN bundle exec exe/my_help -m && rake install:local
|
175
|
-
|
176
|
-
プロキシは適宜書き換えてください。
|
177
|
-
ビルド時のアカウントに関するエラーを除けば大体は問題なく動作しています。
|
178
|
-
|
179
|
-
# build an image named 'my-help'
|
180
|
-
$ docker build -t my-help .
|
181
|
-
...
|
182
|
-
|
183
|
-
# run a container
|
184
|
-
$ docker run -it --rm my-help:latest emacs_help
|
185
|
-
|
186
|
-
## 独自のhelpを作る方法<a id="独自のhelpを作る方法" name="独自のhelpを作る方法"></a>
|
187
|
-
|
188
|
-
|
189
|
-
さて,独自のhelpを作る方法です.まずは,
|
190
|
-
|
191
|
-
> $ bundle exec exe/my\_help -i new\_help
|
192
|
-
|
193
|
-
"*Users/bob*.my\_help/new\_help"
|
194
|
-
"/Users/bob/Github/my\_help/lib/daddygongon/template\_help"
|
195
|
-
|
196
|
-
> $ cp *Users/bob/Github/my\_help/lib/daddygongon/template\_help
|
197
|
-
> /Users/bob*.my\_help/new\_help
|
198
|
-
|
199
|
-
で,new\_helpというtemplateが用意されます.-e
|
200
|
-
new\_helpで編集してください. YAML形式で,格納されています.サンプルが,
|
201
|
-
|
202
|
-
my_help/lib/daddygongon
|
203
|
-
|
204
|
-
にあります.このあと,-mすると自動でnew\_helpがexeディレクトリーに追加されます.
|
205
|
-
|
206
|
-
## 独自helpを使えるように<a id="独自helpを使えるように" name="独自helpを使えるように"></a>
|
207
|
-
|
208
|
-
|
209
|
-
これは,
|
210
|
-
|
211
|
-
> $ bundle exec exe/my\_help -m
|
212
|
-
|
213
|
-
で自動的に行われるように修正しましたが,gem環境によっては正常にinstallできません.その場合は,以下にしたがって,手動で/usr/local/binなどにinstallする必要があります.my\_helpのdirectoryで
|
214
|
-
|
215
|
-
> $ git add -A
|
216
|
-
|
217
|
-
> $ git commit -m 'add new help'
|
218
|
-
|
219
|
-
> $ rake install:local
|
220
|
-
|
221
|
-
してください.さらにlocalへのinstallにはsudoがいるかもしれませ.
|
222
|
-
|
223
|
-
これで終わり.new\_helpや短縮形のn\_hでhelpが使えます.
|
224
|
-
もし使えないときは,bin
|
225
|
-
pathが通ってないので,terminalをnewしてください.
|
226
|
-
|
227
|
-
# userの独自helpの達成方法<a id="userの独自helpの達成方法" name="userの独自helpの達成方法"></a>
|
228
|
-
|
229
|
-
|
230
|
-
- rake my\_helpでやっていたが,今は,my\_help -mに移行
|
231
|
-
- @target dirをmy\_help/lib/daddygongonからENV['HOME']/.my\_helpに変更
|
232
|
-
|
233
|
-
exe中のファイルをrakeで自動生成. @target\_dirにそれらのdataを保存.
|
234
|
-
その名前からexe中に実行ファイルを自動生成させている.
|
235
|
-
|
236
|
-
lib/daddygongon/
|
237
|
-
└── emacs_help
|
238
|
-
|
239
|
-
exe
|
240
|
-
├── e_h
|
241
|
-
└── emacs_help
|
242
|
-
|
243
|
-
ということ.これは,
|
244
|
-
|
245
|
-
> $ my\_help -m
|
246
|
-
|
247
|
-
で実行される.これを
|
248
|
-
|
249
|
-
> $ rake install:local
|
250
|
-
|
251
|
-
すれば必要とするhelpがlocalな環境でbin dirに移され,CUI
|
252
|
-
commandとして実行可能になる.
|
253
|
-
|
254
|
-
たくさんの実行ファイルを/usr/loca/binに置くことになるので,あらたなmy\_helpを作成するときには
|
255
|
-
|
256
|
-
> $ gem uninstall my\_help
|
257
|
-
|
258
|
-
> $ gem uninstall emacs\_help
|
259
|
-
|
260
|
-
でそのdirをcleanにしておくことが望ましい.下のuninstallの項目を参照.
|
261
|
-
|
262
|
-
-mでやっている中身は以下の通り.
|
263
|
-
|
264
|
-
def make_help
|
265
|
-
Dir.entries(@target_dir)[2..-1].each{|file|
|
266
|
-
next if file[0]=='#' or file[-1]=='~'
|
267
|
-
exe_cont="#!/usr/bin/env ruby\nrequire 'specific_help'\n"
|
268
|
-
exe_cont << "help_file = File.join(ENV['HOME'],'.my_help','#{file}')\n"
|
269
|
-
exe_cont << "SpecificHelp::Command.run(help_file, ARGV)\n"
|
270
|
-
[file, short_name(file)].each{|name|
|
271
|
-
p target=File.join('exe',name)
|
272
|
-
File.open(target,'w'){|file| file.print exe_cont}
|
273
|
-
FileUtils.chmod('a+x', target, :verbose => true)
|
274
|
-
}
|
275
|
-
}
|
276
|
-
install_local
|
277
|
-
end
|
278
|
-
|
279
|
-
def install_local
|
280
|
-
#中略
|
281
|
-
system "git add -A"
|
282
|
-
system "git commit -m 'update exe dirs'"
|
283
|
-
system "Rake install:local"
|
284
|
-
end
|
285
|
-
|
286
|
-
実装方法は,emacs\_helpに
|
287
|
-
|
288
|
-
1. yaml形式でdataを入れ,command.runの入力ファイルとする
|
289
|
-
2. hush形式でdataをいれ,それをrequireして使う
|
290
|
-
|
291
|
-
かのどちらかで実装.speedとかdebugを比較・検証する必要あり.
|
292
|
-
今の所,No.1の方を実装.No.2のためのhushデータは,
|
293
|
-
|
294
|
-
# -*- coding: utf-8 -*-
|
295
|
-
require 'yaml'
|
296
|
-
require 'pp'
|
297
|
-
yaml =<<EOF
|
298
|
-
:file:
|
299
|
-
:opts:
|
300
|
-
:short: "-f"
|
301
|
-
:cont:
|
302
|
-
- c-x c-f, Find file, ファイルを開く
|
303
|
-
- c-x c-s, Save file, ファイルを保存
|
304
|
-
EOF
|
305
|
-
pp data=YAML.load(yaml)
|
306
|
-
print YAML.dump(data)
|
307
|
-
|
308
|
-
|
309
|
-
data0={:file=>
|
310
|
-
{:opts=>{:short=>"-f", :long=>"--ファイル", :desc=>"File操作"},
|
311
|
-
:title=>"ファイル操作file",
|
312
|
-
:cont=>
|
313
|
-
["c-x c-f, Find file, ファイルを開く
|
314
|
-
c-x c-s, Save file, ファイルを保存
|
315
|
-
c-x c-w, Write file NAME, ファイルを別名で書き込む"]}}
|
316
|
-
|
317
|
-
print YAML.dump(data0)
|
318
|
-
|
319
|
-
ruby test.rb lib/daddygongon/emacs_help
|
320
|
-
|
321
|
-
で構築できる.実装してみて.
|
322
|
-
|
323
|
-
# どちらがいいか<a id="どちらがいいか" name="どちらがいいか"></a>
|
324
|
-
|
325
|
-
|
326
|
-
Rubyで日本語が使えるから,optionsを日本語にしてみた.
|
327
|
-
|
328
|
-
Usage: eh [options]
|
329
|
-
-v, --version show program Version.
|
330
|
-
-c, --カーソル Cursor移動
|
331
|
-
-p, --ページ Page移動
|
332
|
-
-f, --ファイル File操作
|
333
|
-
-e, --編集 Edit操作
|
334
|
-
-w, --ウィンドウ Window操作
|
335
|
-
-b, --バッファ Buffer操作
|
336
|
-
-q, --終了 終了操作
|
337
|
-
|
338
|
-
半角,全角がoptparseでは適切に判断できない様で,表示があまり揃っていない.
|
339
|
-
しかし,初心者の振る舞いを見ているとわざわざ日本語に切り替えて打ち込むことは稀であり,
|
340
|
-
key wordをhelpで参照してshort optionで入力している.そこで,
|
341
|
-
|
342
|
-
Usage: eh [options]
|
343
|
-
-v, --version show program Version.
|
344
|
-
-c, --cursor カーソル移動
|
345
|
-
-p, --page ページ移動
|
346
|
-
-f, --file ファイル操作
|
347
|
-
-e, --edit 編集操作
|
348
|
-
-w, --window ウィンドウ操作
|
349
|
-
-b, --buffer バッファ操作
|
350
|
-
-q, --quit 終了操作
|
351
|
-
|
352
|
-
としたほうがいいと提案する.アンケートを実施してみてほしい.
|
353
|
-
|
354
|
-
# uninstall<a id="uninstall" name="uninstall"></a>
|
355
|
-
|
356
|
-
|
357
|
-
my\_help -mでinstallするとEXECUTABLE DIRECTORYにhelpのexec
|
358
|
-
filesが自動で追加される. ~/.my\_helpを修正したときには,あらかじめ
|
359
|
-
|
360
|
-
> $ gem unistall my\_help
|
361
|
-
|
362
|
-
でそれらをuninstallしておくと良い.
|
363
|
-
|
364
|
-
> $ gem uninstall my\_help
|
365
|
-
>
|
366
|
-
> Select gem to uninstall:
|
367
|
-
> 1. my\_help-0.1.0
|
368
|
-
> 2. my\_help-0.2.0
|
369
|
-
> 3. my\_help-0.2.1
|
370
|
-
> 4. my\_help-0.2.2
|
371
|
-
> 5. my\_help-0.2.3
|
372
|
-
> 6. my\_help-0.3.0
|
373
|
-
> 7. my\_help-0.3.1
|
374
|
-
> 8. my\_help-0.3.2
|
375
|
-
> 9. All versions
|
376
|
-
>
|
377
|
-
> > 9
|
378
|
-
> Successfully uninstalled my\_help-0.1.0 Successfully
|
379
|
-
> uninstalled my\_help-0.2.0 Remove executables: #my\_help#
|
380
|
-
>
|
381
|
-
> in addition to the gem? [Yn] Y
|
382
|
-
> Removing #my\_help# Successfully
|
383
|
-
> uninstalled my\_help-0.2.1 Successfully uninstalled my\_help-0.2.2
|
384
|
-
> Successfully uninstalled my\_help-0.2.3 Successfully uninstalled
|
385
|
-
> my\_help-0.3.0 Remove executables: test\_help
|
386
|
-
>
|
387
|
-
> in addition to the gem? [Yn] Y
|
388
|
-
> Removing test\_help Successfully
|
389
|
-
> uninstalled my\_help-0.3.1 Remove executables: e\_h, emacs\_help, m\_h,
|
390
|
-
> member\_help, my\_help, n\_h, new\_help, r\_h, ruby\_help, t\_h,
|
391
|
-
> template\_help
|
392
|
-
>
|
393
|
-
> in addition to the gem? [Yn] Y
|
394
|
-
> Removing e\_h Removing emacs\_help
|
395
|
-
> Removing m\_h Removing member\_help Removing my\_help Removing n\_h
|
396
|
-
> Removing new\_help Removing r\_h Removing ruby\_help Removing t\_h
|
397
|
-
> Removing template\_help Successfully uninstalled my\_help-0.3.2 \`\`\`
|
398
|
-
|
399
|
-
# Rakefile<a id="sec-8" name="sec-8"></a>
|
400
|
-
|
401
|
-
幾つかの環境設定用のtoolがRakefileに用意されている.
|
402
|
-
|
403
|
-
# add .yml mode on ~/.emacs.d/init.el
|
404
|
-
$ rake add_yml
|
405
|
-
# clean up exe dir
|
406
|
-
$ rake clean_exe
|
407
|
-
# add .yml on all help files
|
408
|
-
$ rake to_yml
|
409
|
-
|
410
|
-
- add\_yml, to\_ymlは3.6から4.0へ移行する時に行ったhelpファイルの拡張子変更,
|
411
|
-
- 3.6では拡張子なしで4.0では'.yml',に対する対応のために用意したツール.
|
412
|
-
- add\_ymlは~/.my\_help/\*\_helpファイルを全て~/.my\_help/\*\_help.ymlに変える.
|
413
|
-
- to\_ymlは~/.emacs.d/init.elに'.yml'の設定が書き込まれていない時,ruby-modeでemacsを起動するsciptを埋め込む.
|
414
|
-
|
415
|
-
clean\_exeは,githubへuploadする時に,開発者個人のexeファイルをrmして整頓する.
|
data/lib/my_todo/my_todo.rb
DELETED
data/lib/todo.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'my_todo/my_todo'
|