my_help 0.6.1 → 0.6.2

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
  SHA1:
3
- metadata.gz: c13f6d7b2fd61e64e2722bde2a1c0f0d49aa59af
4
- data.tar.gz: db0c737b6266ee5e8ffef2d2b2cddaad35c31140
3
+ metadata.gz: 7d034615843f2ce0ae8ca406736a276595f02489
4
+ data.tar.gz: a6068a28a01c640c442f427369c77f030b9cb400
5
5
  SHA512:
6
- metadata.gz: 309261c3ecc2e6a86fa25fe890a122738150812006f8380c5a39d46beab18324ef3b16982425251ef60562e4f583704f28839986df1dfb37c128461d7a0527ff
7
- data.tar.gz: 714e9fb5f2771eb1305d57b3eb61501a9e9149220c9f9966dab4770c8e5b8f4db5052d45ea9d7d249cfbe420ebad460bd7ee90bbc02a8903a4a34a886e5f0e2b
6
+ metadata.gz: 98b472efcaf1106fd365d7bc2017b0c48c41e182c9bf0ca5f73a03a6e5152b56b2bf4c8a814a8c0701898b1b8f5dd99ce3514b72d51049b572d088ea053bbb34
7
+ data.tar.gz: b122d71ae12ab654c3079aa09404f451aff465bc6cc8ec8ad95007e5fc1a86a1cd20916183d8d77fc21c079bd7af3b4169b3a7fd334a8ce098edc994817e364f
data/.gitignore CHANGED
@@ -1,37 +1,11 @@
1
-
2
- # コメントは `#'
3
-
4
- # .svn フォルダ
5
- # ディレクトリは最後にスラッシュ
6
- .svn/
7
-
8
- # vim のバックアップファイル
9
- # * は展開される
10
- *.swp
11
-
12
- # /tmp のように '/' から始めれば
13
- # カレントディレクトリの tmp のみ無視
14
- # /hoge/tmp などは無視されない
15
1
  /tmp
16
- .ipynb_checkpoints/
17
2
  .DS_Store
18
3
  /.bundle/
19
- .yardoc/
20
- /Gemfile.lock
21
4
  /_yardoc/
22
5
  /coverage/
23
- /doc/
24
- /docs/
25
6
  /pkg/
26
- /spec/reports/
27
- /tmp/
28
7
  *~
29
8
  \#*
30
9
 
31
10
  Dockerfile
32
11
 
33
- # $ git rm -r --cached .
34
- # $ git add .
35
- # $ git commit -m ".gitignore is now working"
36
- # $ git push origin master
37
-
@@ -0,0 +1,63 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ my_help (0.6.1)
5
+ colorize
6
+ systemu
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ aruba (0.14.5)
12
+ childprocess (>= 0.6.3, < 0.10.0)
13
+ contracts (~> 0.9)
14
+ cucumber (>= 1.3.19)
15
+ ffi (~> 1.9.10)
16
+ rspec-expectations (>= 2.99)
17
+ thor (~> 0.19)
18
+ backports (3.11.1)
19
+ builder (3.2.3)
20
+ childprocess (0.9.0)
21
+ ffi (~> 1.0, >= 1.0.11)
22
+ colorize (0.8.1)
23
+ contracts (0.16.0)
24
+ cucumber (3.1.0)
25
+ builder (>= 2.1.2)
26
+ cucumber-core (~> 3.1.0)
27
+ cucumber-expressions (~> 5.0.4)
28
+ cucumber-wire (~> 0.0.1)
29
+ diff-lcs (~> 1.3)
30
+ gherkin (~> 5.0)
31
+ multi_json (>= 1.7.5, < 2.0)
32
+ multi_test (>= 0.1.2)
33
+ cucumber-core (3.1.0)
34
+ backports (>= 3.8.0)
35
+ cucumber-tag_expressions (~> 1.1.0)
36
+ gherkin (>= 5.0.0)
37
+ cucumber-expressions (5.0.13)
38
+ cucumber-tag_expressions (1.1.1)
39
+ cucumber-wire (0.0.1)
40
+ diff-lcs (1.3)
41
+ ffi (1.9.23)
42
+ gherkin (5.0.0)
43
+ multi_json (1.13.1)
44
+ multi_test (0.1.2)
45
+ rake (10.5.0)
46
+ rspec-expectations (3.7.0)
47
+ diff-lcs (>= 1.2.0, < 2.0)
48
+ rspec-support (~> 3.7.0)
49
+ rspec-support (3.7.1)
50
+ systemu (2.6.5)
51
+ thor (0.20.0)
52
+
53
+ PLATFORMS
54
+ ruby
55
+
56
+ DEPENDENCIES
57
+ aruba (~> 0.14.2)
58
+ bundler (~> 1.11)
59
+ my_help!
60
+ rake (~> 10.0)
61
+
62
+ BUNDLED WITH
63
+ 1.16.1
data/README.org CHANGED
@@ -6,7 +6,7 @@
6
6
  :CUSTOM_ID: 概要
7
7
  :END:
8
8
 
9
- CUI(CLI)ヘルプのUsage出力を真似て,user独自のhelpを作成・提供するgem.
9
+ CUI(CLA)ヘルプのUsage出力を真似て,user独自のhelpを作成・提供するgem.
10
10
 
11
11
  * (my_helpで解決しようとする)問題点
12
12
  :PROPERTIES:
@@ -28,7 +28,7 @@ commandや文法を覚えるのに苦労します.少しのkey(とっかかり
28
28
  :CUSTOM_ID: 特徴
29
29
  :END:
30
30
 
31
- これらをgem環境として提供しようというのが,このgemの目的です.
31
+ これらをCLA環境として提供しようというのが,このgemの目的です.
32
32
  仕様としては,
33
33
  - userが自分にあったmanを作成
34
34
  - 雛形を提供
@@ -36,8 +36,7 @@ commandや文法を覚えるのに苦労します.少しのkey(とっかかり
36
36
  - すぐに手が届く
37
37
  - それらを追加・修正・削除できる
38
38
 
39
- hikiでやろうとしていることの半分くらいはこのあたりのことなの
40
- かもしれません.memoソフトでは,検索が必要となりますが,my_helpは
39
+ memoソフトでは,検索が必要となりますが,my_helpは
41
40
  key(記憶のとっかかり)を提供することが目的です.
42
41
  RPGでレベル上げとかアイテムを貯めるようにして,
43
42
  プログラミングでスキルを発展させてください.
@@ -48,81 +47,49 @@ RPGでレベル上げとかアイテムを貯めるようにして,
48
47
  :PROPERTIES:
49
48
  :CUSTOM_ID: 使用法
50
49
  :END:
50
+ ** インストール
51
+
52
+ : $ gem install my_help
53
+ です. installがうまくいくと,defaultでmy_help, my_todo, emacs_help, org_helpが入ります.
51
54
 
52
55
  ** 簡単な使用法
53
56
  :PROPERTIES:
54
57
  :CUSTOM_ID: 簡単な使用法
55
58
  :END:
56
59
 
57
- #+BEGIN_QUOTE
58
- $ gem install my_help
59
- #+END_QUOTE
60
-
61
- でも installがうまくいくと,defaultでmy_help, my_todo,
62
- emacs_helpが入ります.
63
-
64
60
  emacs_helpを動かしてみてください.
65
61
 
62
+
66
63
  #+BEGIN_EXAMPLE
67
- emacsのキーバインド
68
-
69
- 特殊キー操作
70
- c-f, controlキーを押しながら 'f'
71
- M-f, escキーを押した後一度離して'f'
72
- 操作の中断c-g, 操作の取り消し(Undo) c-x u
73
- cc by Shigeto R. Nishitani, 2016
74
- Usage: e_h [options]
75
- -v, --version show program Version.
76
- -c, --cursor Cursor移動
77
- -e, --編集 Edit操作
78
- -f, --ファイル File操作
79
- -q, --終了 終了操作
80
- -p, --ページ Page移動
81
- -w, --ウィンドウ Window操作
82
- -b, --バッファ Buffer操作
83
- -m, --mode モード切り替え
84
- --edit edit help contents
85
- --to_hiki convert to hikidoc format
86
- --all display all helps
87
- --store [item] store [item] in back
88
- --remove [item] remove [item] in back
89
- --add [item] add new [item]
64
+ - emacsのキーバインド
65
+ -
66
+ 特殊キー操作
67
+ - C-f, controlキーを押しながら 'f'
68
+ - M-f, escキーを押した後一度離して'f'
69
+ - 操作の中断C-g, 操作の取り消し(Undo) C-x u
70
+ - cc by Shigeto R. Nishitani, 2016
71
+ Usage: emacs_help [options]
72
+ -v, --version show program Version.
73
+ -c, --cursor cursor
74
+ -e edit
75
+ -s, --short_cut short_cut
76
+ -f, --file file
77
+ --quit quit
78
+ -p, --page page
79
+ -w, --window window
80
+ -b, --buffer buffer
81
+ -m, --mode mode
82
+ -q, --query_replace query_replace
83
+ -r, --ruby-mode ruby-mode
84
+ -d, --dired dired
85
+ --edit edit help contents
86
+ --all display all helps
87
+ --store [item] store [item] in backfile
88
+ --remove [item] remove [item] and store in backfile
89
+ --add [item] add new [item]
90
+ --backup_list [val] show last [val] backup list
90
91
  #+END_EXAMPLE
91
92
 
92
- ** インストール
93
- :PROPERTIES:
94
- :CUSTOM_ID: インストール
95
- :END:
96
-
97
- インストールですが,gemの標準とは違ったやり方になります.GithubからForkしてcloneします.
98
- >$ git clone git@github.com:daddygongon/my_help.git
99
-
100
- あとの作業はbundleを使って行います.
101
-
102
- これは,最後のrake
103
- install:localをコマンドから実行する方法がわからんかったからですが...
104
- - helpファイルのpush共有とかも考えるとこれがいいのかも. -
105
- home以下に置く方法と比較分析してください. -
106
- lib/daddygongonにあたらしいhelpを置くようにしていましたが,helpに個人情報を入れるとgit
107
- pushでさらしてしまうので,やめました.
108
-
109
- まずは,
110
-
111
- #+BEGIN_QUOTE
112
- $ bundle update
113
- #+END_QUOTE
114
-
115
- でmy_help.gemspecに記述されている必要なgemsがbundleされます.
116
-
117
- Could not locate
118
- Gemfileとエラーが出た場合は、Gemfileのある場所を探し、その配下に移動してから再びコマンドを入力する.
119
-
120
- 用意されているコマンドは,
121
-
122
- #+BEGIN_QUOTE
123
- $ bundle exec exe/my_help
124
- #+END_QUOTE
125
-
126
93
  #+BEGIN_EXAMPLE
127
94
  Usage: my_help [options]
128
95
  -v, --version show program Version.
@@ -136,20 +103,6 @@ Gemfileとエラーが出た場合は、Gemfileのある場所を探し、その
136
103
  #+END_EXAMPLE
137
104
 
138
105
  です.まず,-lでdefaultで入っているリストを見てください.
139
-
140
- #+BEGIN_QUOTE
141
- $ bundle exec exe/my_help -l
142
- #+END_QUOTE
143
-
144
- #+BEGIN_EXAMPLE
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
- #+END_EXAMPLE
150
-
151
- これで,CUIでemacs_help, e_hが用意されています.
152
- これをいじって挙動に馴染んでください.
153
106
  --addとか--editとかで,要素の追加や編集ができます.
154
107
 
155
108
  ** alpine linuxのためのDockerfile
@@ -197,66 +150,18 @@ linux上で動作させるため、以下のDockerfileを作成しました。
197
150
 
198
151
  さて,独自のhelpを作る方法です.まずは,
199
152
 
200
- #+BEGIN_QUOTE
201
- $ bundle exec exe/my_help -i new_help
202
- #+END_QUOTE
203
-
204
- "/Users/bob/.my_help/new_help"
205
- "/Users/bob/Github/my_help/lib/daddygongon/template_help"
206
-
207
- #+BEGIN_QUOTE
208
- $ cp /Users/bob/Github/my_help/lib/daddygongon/template_help
209
- /Users/bob/.my_help/new_help
210
- #+END_QUOTE
153
+ : my_help -i new_help
211
154
 
212
155
  で,new_helpというtemplateが用意されます.-e
213
- new_helpで編集してください. YAML形式で,格納されています.サンプルが,
214
-
215
- #+BEGIN_EXAMPLE
216
- my_help/lib/daddygongon
217
- #+END_EXAMPLE
156
+ new_helpで編集してください. emacs org形式で,格納されています.サンプルが,
218
157
 
219
158
  にあります.このあと,-mすると自動でnew_helpがexeディレクトリーに追加されます.
220
159
 
221
- ** 独自helpを使えるように
222
- :PROPERTIES:
223
- :CUSTOM_ID: 独自helpを使えるように
224
- :END:
225
-
226
- これは,
227
-
228
- #+BEGIN_QUOTE
229
- $ bundle exec exe/my_help -m
230
- #+END_QUOTE
231
-
232
- で自動的に行われるように修正しましたが,gem環境によっては正常にinstallできません.その場合は,以下にしたがって,手動で/usr/local/binなどにinstallする必要があります.my_helpのdirectoryで
233
-
234
- #+BEGIN_QUOTE
235
- $ git add -A
236
- #+END_QUOTE
237
-
238
- #+BEGIN_QUOTE
239
- $ git commit -m 'add new help'
240
- #+END_QUOTE
241
-
242
- #+BEGIN_QUOTE
243
- $ rake install:local
244
- #+END_QUOTE
245
-
246
- してください.さらにlocalへのinstallにはsudoがいるかもしれませ.
247
-
248
- これで終わり.new_helpや短縮形のn_hでhelpが使えます.
249
- もし使えないときは,bin
250
- pathが通ってないので,terminalをnewしてください.
251
-
252
160
  * userの独自helpの達成方法
253
161
  :PROPERTIES:
254
162
  :CUSTOM_ID: userの独自helpの達成方法
255
163
  :END:
256
164
 
257
- - rake my_helpでやっていたが,今は,my_help -mに移行
258
- - @target dirをmy_help/lib/daddygongonからENV['HOME']/.my_helpに変更
259
-
260
165
  exe中のファイルをrakeで自動生成. @target_dirにそれらのdataを保存.
261
166
  その名前からexe中に実行ファイルを自動生成させている.
262
167
 
@@ -271,146 +176,24 @@ exe中のファイルをrakeで自動生成. @target_dirにそれらのdataを
271
176
 
272
177
  ということ.これは,
273
178
 
274
- #+BEGIN_QUOTE
275
- $ my_help -m
276
- #+END_QUOTE
277
-
278
- で実行される.これを
279
-
280
- #+BEGIN_QUOTE
281
- $ rake install:local
282
- #+END_QUOTE
179
+ : my_help -m
180
+ で実行される.
283
181
 
284
- すれば必要とするhelpがlocalな環境でbin dirに移され,CUI
285
- commandとして実行可能になる.
182
+ たくさんの実行ファイルをgemのINSTALLATION DIRに置くことになるので,あらたなmy_helpを作成するときには
286
183
 
287
- たくさんの実行ファイルを/usr/loca/binに置くことになるので,あらたなmy_helpを作成するときには
288
-
289
- #+BEGIN_QUOTE
290
- $ gem uninstall my_help
291
- #+END_QUOTE
292
-
293
- #+BEGIN_QUOTE
294
- $ gem uninstall emacs_help
295
- #+END_QUOTE
184
+ : gem uninstall my_help
296
185
 
297
186
  でそのdirをcleanにしておくことが望ましい.下のuninstallの項目を参照.
298
187
 
299
- -mでやっている中身は以下の通り.
300
-
301
- #+BEGIN_SRC ruby
302
- def make_help
303
- Dir.entries(@target_dir)[2..-1].each{|file|
304
- next if file[0]=='#' or file[-1]=='~'
305
- exe_cont="#!/usr/bin/env ruby\nrequire 'specific_help'\n"
306
- exe_cont << "help_file = File.join(ENV['HOME'],'.my_help','#{file}')\n"
307
- exe_cont << "SpecificHelp::Command.run(help_file, ARGV)\n"
308
- [file, short_name(file)].each{|name|
309
- p target=File.join('exe',name)
310
- File.open(target,'w'){|file| file.print exe_cont}
311
- FileUtils.chmod('a+x', target, :verbose => true)
312
- }
313
- }
314
- install_local
315
- end
316
-
317
- def install_local
318
- #中略
319
- system "git add -A"
320
- system "git commit -m 'update exe dirs'"
321
- system "Rake install:local"
322
- end
323
- #+END_SRC
324
-
325
- 実装方法は,emacs_helpに
326
-
327
- 1. yaml形式でdataを入れ,command.runの入力ファイルとする
328
- 2. hush形式でdataをいれ,それをrequireして使う
329
-
330
- かのどちらかで実装.speedとかdebugを比較・検証する必要あり.
331
- 今の所,No.1の方を実装.No.2のためのhushデータは,
332
-
333
- #+BEGIN_SRC ruby
334
- # -*- coding: utf-8 -*-
335
- require 'yaml'
336
- require 'pp'
337
- yaml =<<EOF
338
- :file:
339
- :opts:
340
- :short: "-f"
341
- :cont:
342
- - c-x c-f, Find file, ファイルを開く
343
- - c-x c-s, Save file, ファイルを保存
344
- EOF
345
- pp data=YAML.load(yaml)
346
- print YAML.dump(data)
347
-
348
-
349
- data0={:file=>
350
- {:opts=>{:short=>"-f", :long=>"--ファイル", :desc=>"File操作"},
351
- :title=>"ファイル操作file",
352
- :cont=>
353
- ["c-x c-f, Find file, ファイルを開く
354
- c-x c-s, Save file, ファイルを保存
355
- c-x c-w, Write file NAME, ファイルを別名で書き込む"]}}
356
-
357
- print YAML.dump(data0)
358
- #+END_SRC
359
-
360
- #+BEGIN_EXAMPLE
361
- ruby test.rb lib/daddygongon/emacs_help
362
- #+END_EXAMPLE
363
-
364
- で構築できる.実装してみて.
365
-
366
- * どちらがいいか
367
- :PROPERTIES:
368
- :CUSTOM_ID: どちらがいいか
369
- :END:
370
-
371
- Rubyで日本語が使えるから,optionsを日本語にしてみた.
372
-
373
- #+BEGIN_EXAMPLE
374
- Usage: eh [options]
375
- -v, --version show program Version.
376
- -c, --カーソル Cursor移動
377
- -p, --ページ Page移動
378
- -f, --ファイル File操作
379
- -e, --編集 Edit操作
380
- -w, --ウィンドウ Window操作
381
- -b, --バッファ Buffer操作
382
- -q, --終了 終了操作
383
- #+END_EXAMPLE
384
-
385
- 半角,全角がoptparseでは適切に判断できない様で,表示があまり揃っていない.
386
- しかし,初心者の振る舞いを見ているとわざわざ日本語に切り替えて打ち込むことは稀であり,
387
- key wordをhelpで参照してshort optionで入力している.そこで,
388
-
389
- #+BEGIN_EXAMPLE
390
- Usage: eh [options]
391
- -v, --version show program Version.
392
- -c, --cursor カーソル移動
393
- -p, --page ページ移動
394
- -f, --file ファイル操作
395
- -e, --edit 編集操作
396
- -w, --window ウィンドウ操作
397
- -b, --buffer バッファ操作
398
- -q, --quit 終了操作
399
- #+END_EXAMPLE
400
-
401
- としたほうがいいと提案する.アンケートを実施してみてほしい.
402
-
403
188
  * uninstall
404
189
  :PROPERTIES:
405
190
  :CUSTOM_ID: uninstall
406
191
  :END:
407
192
 
408
193
  my_help -mでinstallするとEXECUTABLE DIRECTORYにhelpのexec
409
- filesが自動で追加される. ~/.my_helpを修正したときには,あらかじめ
194
+ filesが自動で追加される. ~/.my_helpを手で修正したときには,あらかじめ
410
195
 
411
- #+BEGIN_QUOTE
412
- $ gem unistall my_help
413
- #+END_QUOTE
196
+ : unistall my_help
414
197
 
415
198
  でそれらをuninstallしておくと良い.
416
199
 
@@ -451,33 +234,3 @@ Removing new_help Removing r_h Removing ruby_help Removing t_h
451
234
  Removing template_help Successfully uninstalled my_help-0.3.2 ```
452
235
  #+END_QUOTE
453
236
 
454
- * Rakefile
455
-
456
- 幾つかの環境設定用のtoolがRakefileに用意されている.
457
-
458
- #+BEGIN_EXAMPLE
459
- # add .yml mode on ~/.emacs.d/init.el
460
- $ rake add_yml
461
- # clean up exe dir
462
- $ rake clean_exe
463
- # add .yml on all help files
464
- $ rake to_yml
465
- #+END_EXAMPLE
466
-
467
- - add_yml, to_ymlは3.6から4.0へ移行する時に行ったhelpファイルの拡張子変更,
468
- - 3.6では拡張子なしで4.0では'.yml',に対する対応のために用意したツール.
469
- - add_ymlは~/.my_help/*_helpファイルを全て~/.my_help/*_help.ymlに変える.
470
- - to_ymlは~/.emacs.d/init.elに'.yml'の設定が書き込まれていない時,ruby-modeでemacsを起動するsciptを埋め込む.
471
-
472
- clean_exeは,githubへuploadする時に,開発者個人のexeファイルをrmして整頓する.
473
- * development memo
474
- ** <2018-03-14 Wed>全てをorgへ変更.
475
- どこにメモを置いたか忘れた.
476
-
477
- 今は,元データのフォーマットとしてorgとyamlが混ざっている.
478
- 編集に慣れてくると,orgのほうが柔軟性があって良さそう.
479
- codeはそのためグタグタ.そのうちに治るでしょう.
480
- yamlのhead, licenseを別扱いにしているのが原因.
481
- 全部,orgにした方が良さそうな気がしてきた...
482
- data, codeが綺麗だし,今後のorgへの移行を考えると正しそう...
483
-