my_help 0.6.2 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.org CHANGED
@@ -1,3 +1,9 @@
1
+ #+TITLE: my_help README
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/Github/org-html-themes/setup/theme-readtheorg.setup
1
7
  #+STARTUP: indent nolineimages
2
8
  #+OPTIONS: ^:{}
3
9
 
@@ -8,6 +14,7 @@
8
14
 
9
15
  CUI(CLA)ヘルプのUsage出力を真似て,user独自のhelpを作成・提供するgem.
10
16
 
17
+
11
18
  * (my_helpで解決しようとする)問題点
12
19
  :PROPERTIES:
13
20
  :CUSTOM_ID: my_helpで解決しようとする問題点
@@ -50,14 +57,43 @@ RPGでレベル上げとかアイテムを貯めるようにして,
50
57
  ** インストール
51
58
 
52
59
  : $ gem install my_help
53
- です. installがうまくいくと,defaultでmy_help, my_todo, emacs_help, org_helpが入ります.
60
+ です.
54
61
 
55
62
  ** 簡単な使用法
56
63
  :PROPERTIES:
57
64
  :CUSTOM_ID: 簡単な使用法
58
65
  :END:
59
66
 
60
- emacs_helpを動かしてみてください.
67
+ まずは,
68
+ #+begin_example
69
+ > my_help
70
+ NAME
71
+ my_help - make own help and list.
72
+
73
+ SYNOPSIS
74
+ my_help [global options] command [command options] [arguments...]
75
+
76
+ VERSION
77
+ 0.7.0
78
+
79
+ GLOBAL OPTIONS
80
+ --help - Show this message
81
+ --version - Display the program version
82
+
83
+ COMMANDS
84
+ delete - delete HELP_NAME help
85
+ edit - edit HELP_NAME help
86
+ help - Shows a list of commands or help for one command
87
+ list - list all helps, specific HELP, or item
88
+ new - make new HELP_NAME
89
+ #+end_example
90
+ としてください.このlistにargsやitemを加えて行くとわかると思います.
91
+
92
+ : my_help list
93
+ : my_help list emacs_help
94
+ : my_help list emacs_help -f
95
+ : my_help list emacs_help file
96
+ として動かしてみてください.
61
97
 
62
98
 
63
99
  #+BEGIN_EXAMPLE
@@ -67,82 +103,22 @@ emacs_helpを動かしてみてください.
67
103
  - C-f, controlキーを押しながら 'f'
68
104
  - M-f, escキーを押した後一度離して'f'
69
105
  - 操作の中断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
91
- #+END_EXAMPLE
92
-
93
- #+BEGIN_EXAMPLE
94
- Usage: my_help [options]
95
- -v, --version show program Version.
96
- -l, --list 個別(specific)ヘルプのList表示.
97
- -e, --edit NAME NAME(例:test_help)をEdit編集.
98
- -i, --init NAME NAME(例:test_help)のtemplateを作成.
99
- -m, --make make executables for all helps.
100
- -c, --clean clean up exe dir.
101
- --install_local install local after edit helps
102
- --delete NAME delete NAME help
103
- #+END_EXAMPLE
104
-
105
- です.まず,-lでdefaultで入っているリストを見てください.
106
- --addとか--editとかで,要素の追加や編集ができます.
107
-
108
- ** alpine linuxのためのDockerfile
109
- :PROPERTIES:
110
- :CUSTOM_ID: alpine-linuxのためのdockerfile
111
- :END:
112
-
113
- my_helpをalpine
114
- linux上で動作させるため、以下のDockerfileを作成しました。
115
-
116
- #+BEGIN_EXAMPLE
117
- FROM alpine:3.7
118
-
119
- ENV http_proxy <YOUR PROXY HERE>
120
- ENV https_proxy <YOUR PROXY HERE>
121
-
122
- RUN apk update && apk upgrade
123
- RUN apk --update add \
124
- openssh git build-base libffi libffi-dev \
125
- ruby ruby-dev ruby-rake ruby-bundler
126
-
127
- RUN git clone https://github.com/daddygongon/my_help.git
128
- WORKDIR my_help
129
-
130
- RUN bundle update
131
- RUN bundle exec exe/my_help -m && rake install:local
106
+ , head : head
107
+ , license : license
108
+ -c, cursor : cursor
109
+ -e, edit : edit
110
+ -s, short_cut : short_cut
111
+ -f, file : file
112
+ -q, quit : quit
113
+ -p, page : page
114
+ -w, window : window
115
+ -b, buffer : buffer
116
+ -m, mode : mode
117
+ , query_replace : query_replace
118
+ -r, ruby-mode : ruby-mode
119
+ -d, dired : ファイラとして使う
132
120
  #+END_EXAMPLE
133
121
 
134
- プロキシは適宜書き換えてください。
135
- ビルド時のアカウントに関するエラーを除けば大体は問題なく動作しています。
136
-
137
- #+BEGIN_SRC sh
138
- # build an image named 'my-help'
139
- $ docker build -t my-help .
140
- ...
141
-
142
- # run a container
143
- $ docker run -it --rm my-help:latest emacs_help
144
- #+END_SRC
145
-
146
122
  ** 独自のhelpを作る方法
147
123
  :PROPERTIES:
148
124
  :CUSTOM_ID: 独自のhelpを作る方法
@@ -150,87 +126,12 @@ linux上で動作させるため、以下のDockerfileを作成しました。
150
126
 
151
127
  さて,独自のhelpを作る方法です.まずは,
152
128
 
153
- : my_help -i new_help
154
-
155
- で,new_helpというtemplateが用意されます.-e
156
- new_helpで編集してください. emacs org形式で,格納されています.サンプルが,
157
-
158
- にあります.このあと,-mすると自動でnew_helpがexeディレクトリーに追加されます.
159
-
160
- * userの独自helpの達成方法
161
- :PROPERTIES:
162
- :CUSTOM_ID: userの独自helpの達成方法
163
- :END:
164
-
165
- exe中のファイルをrakeで自動生成. @target_dirにそれらのdataを保存.
166
- その名前からexe中に実行ファイルを自動生成させている.
167
-
168
- #+BEGIN_EXAMPLE
169
- lib/daddygongon/
170
- └── emacs_help
171
-
172
- exe
173
- ├── e_h
174
- └── emacs_help
175
- #+END_EXAMPLE
176
-
177
- ということ.これは,
178
-
179
- : my_help -m
180
- で実行される.
129
+ : my_help new new_help
181
130
 
182
- たくさんの実行ファイルをgemのINSTALLATION DIRに置くことになるので,あらたなmy_helpを作成するときには
183
-
184
- : gem uninstall my_help
185
-
186
- でそのdirをcleanにしておくことが望ましい.下のuninstallの項目を参照.
187
-
188
- * uninstall
189
- :PROPERTIES:
190
- :CUSTOM_ID: uninstall
191
- :END:
131
+ で,new_helpというtemplateが用意されます.
132
+ : my_help edit new_help
133
+ で編集してください. emacs org形式で,格納されています.
192
134
 
193
- my_help -mでinstallするとEXECUTABLE DIRECTORYにhelpのexec
194
- filesが自動で追加される. ~/.my_helpを手で修正したときには,あらかじめ
195
-
196
- : unistall my_help
197
-
198
- でそれらをuninstallしておくと良い.
199
-
200
- #+BEGIN_QUOTE
201
- $ gem uninstall my_help
202
-
203
- Select gem to uninstall:
204
- 1. my_help-0.1.0
205
- 2. my_help-0.2.0
206
- 3. my_help-0.2.1
207
- 4. my_help-0.2.2
208
- 5. my_help-0.2.3
209
- 6. my_help-0.3.0
210
- 7. my_help-0.3.1
211
- 8. my_help-0.3.2
212
- 9. All versions
213
-
214
- > 9
215
- Successfully uninstalled my_help-0.1.0 Successfully
216
- uninstalled my_help-0.2.0 Remove executables: #my_help#
217
-
218
- in addition to the gem? [Yn] Y
219
- Removing #my_help# Successfully
220
- uninstalled my_help-0.2.1 Successfully uninstalled my_help-0.2.2
221
- Successfully uninstalled my_help-0.2.3 Successfully uninstalled
222
- my_help-0.3.0 Remove executables: test_help
223
-
224
- in addition to the gem? [Yn] Y
225
- Removing test_help Successfully
226
- uninstalled my_help-0.3.1 Remove executables: e_h, emacs_help, m_h,
227
- member_help, my_help, n_h, new_help, r_h, ruby_help, t_h,
228
- template_help
229
-
230
- in addition to the gem? [Yn] Y
231
- Removing e_h Removing emacs_help
232
- Removing m_h Removing member_help Removing my_help Removing n_h
233
- Removing new_help Removing r_h Removing ruby_help Removing t_h
234
- Removing template_help Successfully uninstalled my_help-0.3.2 ```
235
- #+END_QUOTE
135
+ : my_help delete new_help
236
136
 
137
+ すると消されます.
@@ -0,0 +1,6 @@
1
+ = my_help
2
+
3
+ Describe your project here
4
+
5
+ :include:my_help.rdoc
6
+
@@ -0,0 +1,131 @@
1
+ * Name
2
+ :PROPERTIES:
3
+ :CUSTOM_ID: name
4
+ :END:
5
+
6
+ my\_help
7
+
8
+ * Summary
9
+ :PROPERTIES:
10
+ :CUSTOM_ID: summary
11
+ :END:
12
+
13
+ This gem makes and supplies user specific helps, emulating CUI(CLI) help
14
+ usage.
15
+
16
+ * Target
17
+ :PROPERTIES:
18
+ :CUSTOM_ID: target
19
+ :END:
20
+
21
+ A very novice of learning some specific operation, such as CUI, shell,
22
+ or emacs, has difficulty in remembering commands and grammers. If he has
23
+ a key, he can easily remember all, but no key brings nothing. Especially
24
+ a non-English-native has strong difficulty on the key rememebering. The
25
+ problems are,
26
+
27
+ - man(ual) is English
28
+ - man is heavily documented
29
+ - On web, search the same key word,
30
+ - and read the same URI repeatedly
31
+ - memo goes away somewhere...
32
+
33
+ * Specs
34
+ :PROPERTIES:
35
+ :CUSTOM_ID: specs
36
+ :END:
37
+
38
+ This gem aims to supply own help by gem environment. Specs are, - user
39
+ makes his own help - supplies a template - same format, looks,
40
+ operation, and hierarchy - easily see, read - supplies editing and
41
+ install commands.
42
+
43
+ Wiki targets the whole engineer, my\_help target the specific person.
44
+ Half of the wiki aim should be covered by my\_help. Making own manual is
45
+ one of the best practices for remembering operations. Memo applications
46
+ are good, if you remember the key word. my\_help supplies the key for
47
+ remembering the word.
48
+
49
+ * Usage
50
+ :PROPERTIES:
51
+ :CUSTOM_ID: 使用法
52
+ :END:
53
+ ** Install
54
+
55
+ : $ gem install my_help
56
+
57
+ ** Simple Usage
58
+ :PROPERTIES:
59
+ :CUSTOM_ID: 簡単な使用法
60
+ :END:
61
+
62
+ At first, you can see the commands supplied by my_help.
63
+ #+begin_example
64
+ > my_help
65
+ NAME
66
+ my_help - make own help and list.
67
+
68
+ SYNOPSIS
69
+ my_help [global options] command [command options] [arguments...]
70
+
71
+ VERSION
72
+ 0.7.0
73
+
74
+ GLOBAL OPTIONS
75
+ --help - Show this message
76
+ --version - Display the program version
77
+
78
+ COMMANDS
79
+ delete - delete HELP_NAME help
80
+ edit - edit HELP_NAME help
81
+ help - Shows a list of commands or help for one command
82
+ list - list all helps, specific HELP, or item
83
+ new - make new HELP_NAME
84
+ #+end_example
85
+
86
+ When you add HELP_NAME and item (-o)wo'
87
+
88
+ : my_help list
89
+ : my_help list emacs_help
90
+ : my_help list emacs_help -f
91
+ : my_help list emacs_help file
92
+
93
+
94
+ #+BEGIN_EXAMPLE
95
+ - emacsのキーバインド
96
+ -
97
+ 特殊キー操作
98
+ - C-f, controlキーを押しながら 'f'
99
+ - M-f, escキーを押した後一度離して'f'
100
+ - 操作の中断C-g, 操作の取り消し(Undo) C-x u
101
+ , head : head
102
+ , license : license
103
+ -c, cursor : cursor
104
+ -e, edit : edit
105
+ -s, short_cut : short_cut
106
+ -f, file : file
107
+ -q, quit : quit
108
+ -p, page : page
109
+ -w, window : window
110
+ -b, buffer : buffer
111
+ -m, mode : mode
112
+ , query_replace : query_replace
113
+ -r, ruby-mode : ruby-mode
114
+ -d, dired : ファイラとして使う
115
+ #+END_EXAMPLE
116
+
117
+ ** Make your own help
118
+ :PROPERTIES:
119
+ :CUSTOM_ID: 独自のhelpを作る方法
120
+ :END:
121
+
122
+ For making your new help, you can do tha as follows:
123
+ : my_help new new_help
124
+
125
+ A templeate is compied, then you can edit as
126
+ : my_help edit new_help
127
+ The file is stored in emacs org mode.
128
+
129
+ You can delete if as follows:
130
+ : my_help delete new_help
131
+
@@ -0,0 +1,44 @@
1
+ require 'rake/clean'
2
+ require 'rubygems'
3
+ require 'rubygems/package_task'
4
+ require 'rdoc/task'
5
+ require 'cucumber'
6
+ require 'cucumber/rake/task'
7
+ Rake::RDocTask.new do |rd|
8
+ rd.main = "README.rdoc"
9
+ rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
10
+ rd.title = 'Your application title'
11
+ end
12
+
13
+ spec = eval(File.read('my_help.gemspec'))
14
+
15
+ Gem::PackageTask.new(spec) do |pkg|
16
+ end
17
+ CUKE_RESULTS = 'results.html'
18
+ CLEAN << CUKE_RESULTS
19
+ desc 'Run features'
20
+ Cucumber::Rake::Task.new(:features) do |t|
21
+ opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
22
+ opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
23
+ t.cucumber_opts = opts
24
+ t.fork = false
25
+ end
26
+
27
+ desc 'Run features tagged as work-in-progress (@wip)'
28
+ Cucumber::Rake::Task.new('features:wip') do |t|
29
+ tag_opts = ' --tags ~@pending'
30
+ tag_opts = ' --tags @wip'
31
+ t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}"
32
+ t.fork = false
33
+ end
34
+
35
+ task :cucumber => :features
36
+ task 'cucumber:wip' => 'features:wip'
37
+ task :wip => 'features:wip'
38
+ require 'rake/testtask'
39
+ Rake::TestTask.new do |t|
40
+ t.libs << "test"
41
+ t.test_files = FileList['test/*_test.rb']
42
+ end
43
+
44
+ task :default => [:test,:features]
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env ruby
2
+ require 'gli'
3
+ require 'my_help'
4
+
5
+ include GLI::App
6
+
7
+ program_desc 'make own help and list.'
8
+
9
+ version MyHelp::VERSION
10
+
11
+ subcommand_option_handling :normal
12
+ arguments :strict
13
+
14
+ desc 'list all helps, specific HELP, or item'
15
+ arg_name 'HELP_NAME, ITEM'
16
+ command :list do |c|
17
+ c.action do |global_options,options,args|
18
+ p args
19
+ file, item = args
20
+ if file.nil?
21
+ $control.list_all
22
+ elsif item.nil?
23
+ $control.list_help(file)
24
+ else
25
+ $control.show_item(file, item)
26
+ end
27
+ end
28
+ end
29
+
30
+ desc 'edit HELP_NAME help'
31
+ arg_name 'HELP_NAME'
32
+ command :edit do |c|
33
+ c.action do |global_options,options,args|
34
+ p args
35
+ $control.edit_help(args[0])
36
+ end
37
+ end
38
+
39
+ desc 'make new HELP_NAME help'
40
+ arg_name 'HELP_NAME'
41
+ command :new do |c|
42
+ c.action do |global_options,options,args|
43
+ $control.init_help(args[0])
44
+ end
45
+ end
46
+
47
+ desc 'delete HELP_NAME help'
48
+ arg_name 'HELP_NAME'
49
+ command :delete do |c|
50
+ c.action do |global_options,options,args|
51
+ $control.delete_help(args[0])
52
+ end
53
+ end
54
+
55
+ pre do |global,command,options,args|
56
+ $control = MyHelp::Control.new()
57
+ true
58
+ end
59
+
60
+ post do |global,command,options,args|
61
+ end
62
+
63
+ on_error do |exception|
64
+ true
65
+ end
66
+
67
+ exit run(ARGV)