my_help 0.3.2 → 0.3.3

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.
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'yaml'
3
+ require 'pp'
4
+ yaml =<<EOF
5
+ :file:
6
+ :opts:
7
+ :short: "-f"
8
+ :long: "--��Ւ��������"
9
+ :desc: File������
10
+ :title: ��Ւ�������������file
11
+ :cont:
12
+ - c-x c-f, Find file, ��Ւ�������뒤򒳫���
13
+ - c-x c-s, Save file, ��Ւ�������뒤��ݒ¸
14
+ - c-x c-w, Write file NAME, ��Ւ�������뒤��̒̾��ǒ�񒤭������
15
+ EOF
16
+ pp data=YAML.load(yaml)
17
+ print YAML.dump(data)
18
+
19
+
20
+ data0={:new_item=>
21
+ {:opts=>{:short=>"-n", :long=>"--new_item", :desc=>"new item"},
22
+ :title=>"new_item",
23
+ :cont=>
24
+ ["new cont"]}}
25
+
26
+ print YAML.dump(data0)
@@ -0,0 +1 @@
1
+ bob@bob.local.71520
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'yaml'
3
+ require 'pp'
4
+ yaml =<<EOF
5
+ :file:
6
+ :opts:
7
+ :short: "-f"
8
+ :long: "--ファイル"
9
+ :desc: File操作
10
+ :title: ファイル操作file
11
+ :cont:
12
+ - c-x c-f, Find file, ファイルを開く
13
+ - c-x c-s, Save file, ファイルを保存
14
+ - c-x c-w, Write file NAME, ファイルを別名で書き込む
15
+ EOF
16
+ pp data=YAML.load(yaml)
17
+ print YAML.dump(data)
18
+
19
+
20
+ data0={:new_item=>
21
+ {:opts=>{:short=>"-n", :long=>"--new_item", :desc=>"new item"},
22
+ :title=>"new_item",
23
+ :cont=>
24
+ ["new cont"]}}
25
+
26
+ print YAML.dump(data0)
@@ -1,3 +1,3 @@
1
1
  module MyHelp
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
data/lib/my_help.rb CHANGED
@@ -16,18 +16,18 @@ module MyHelp
16
16
 
17
17
  def initialize(argv=[])
18
18
  @argv = argv
19
- @source_dir = File.expand_path("../../lib/daddygongon", __FILE__)
20
- @target_dir = File.join(ENV['HOME'],'.my_help')
19
+ @default_help_dir = File.expand_path("../../lib/daddygongon", __FILE__)
20
+ @local_help_dir = File.join(ENV['HOME'],'.my_help')
21
21
  set_help_dir_if_not_exists
22
22
  end
23
23
 
24
24
  def set_help_dir_if_not_exists
25
- return if File::exists?(@target_dir)
26
- FileUtils.mkdir_p(@target_dir, :verbose=>true)
27
- Dir.entries(@source_dir).each{|file|
28
- file_path=File.join(@target_dir,file)
25
+ return if File::exists?(@local_help_dir)
26
+ FileUtils.mkdir_p(@local_help_dir, :verbose=>true)
27
+ Dir.entries(@default_help_dir).each{|file|
28
+ file_path=File.join(@local_help_dir,file)
29
29
  next if File::exists?(file_path)
30
- FileUtils.cp((File.join(@source_dir,file)),@target_dir,:verbose=>true)
30
+ FileUtils.cp((File.join(@default_help_dir,file)),@local_help_dir,:verbose=>true)
31
31
  }
32
32
  end
33
33
 
@@ -44,6 +44,7 @@ module MyHelp
44
44
  opt.on('-m', '--make', 'make executables for all helps.'){make_help}
45
45
  opt.on('-c', '--clean', 'clean up exe dir.'){clean_exe}
46
46
  opt.on('--install_local','install local after edit helps'){install_local}
47
+ opt.on('--delete NAME','delete NAME help'){|file| delete_help(file)}
47
48
  end
48
49
  begin
49
50
  command_parser.parse!(@argv)
@@ -53,13 +54,29 @@ module MyHelp
53
54
  exit
54
55
  end
55
56
 
57
+ def delete_help(file)
58
+ del_files=[]
59
+ del_files << File.join(@local_help_dir,file)
60
+ exe_dir=File.join(File.expand_path('../..',@default_help_dir),'exe')
61
+ del_files << File.join(exe_dir,file)
62
+ p del_files << File.join(exe_dir,short_name(file))
63
+ print "Are you sure to delete these files?[yes]"
64
+ if gets.chomp=='yes' then
65
+ del_files.each{|file| FileUtils.rm(file,:verbose=>true)}
66
+ end
67
+ end
68
+
69
+ USER_INST_DIR="USER INSTALLATION DIRECTORY:"
70
+ INST_DIR="INSTALLATION DIRECTORY:"
56
71
  def install_local
57
- Dir.chdir(File.expand_path('../..',@source_dir))
72
+ Dir.chdir(File.expand_path('../..',@default_help_dir))
58
73
  p pwd_dir = Dir.pwd
59
74
  # check that the working dir should not the gem installed dir,
60
75
  # which destroys itself.
61
- inst_dir="USER INSTALLATION DIRECTORY:"
62
- status, stdout, stderr = systemu "gem env|grep '#{inst_dir}'"
76
+ status, stdout, stderr = systemu "gem env|grep '#{USER_INST_DIR}'"
77
+ if stdout==""
78
+ status, stdout, stderr = systemu "gem env|grep '#{INST_DIR}'"
79
+ end
63
80
  p system_inst_dir = stdout.split(': ')[1].chomp
64
81
  if pwd_dir == system_inst_dir
65
82
  puts "Download my_help from github, and using bundle for edit helps\n"
@@ -77,8 +94,7 @@ module MyHelp
77
94
  end
78
95
 
79
96
  def make_help
80
- Dir.entries(@target_dir)[2..-1].each{|file|
81
- next if file[0]=='#' or file[-1]=='~'
97
+ local_help_entries.each{|file|
82
98
  exe_cont="#!/usr/bin/env ruby\nrequire 'specific_help'\n"
83
99
  exe_cont << "help_file = File.join(ENV['HOME'],'.my_help','#{file}')\n"
84
100
  exe_cont << "SpecificHelp::Command.run(help_file, ARGV)\n"
@@ -92,8 +108,7 @@ module MyHelp
92
108
  end
93
109
 
94
110
  def clean_exe
95
- Dir.entries(@target_dir)[2..-1].each{|file|
96
- next if file[0]=='#' or file[-1]=='~'
111
+ local_help_entries.each{|file|
97
112
  next if file.include?('emacs_help') or file.include?('e_h')
98
113
  next if file.include?('template_help') or file.include?('t_h')
99
114
  [file, short_name(file)].each{|name|
@@ -104,27 +119,36 @@ module MyHelp
104
119
  end
105
120
 
106
121
  def init_help(file)
107
- p target_help=File.join(@target_dir,file)
122
+ p target_help=File.join(@local_help_dir,file)
108
123
  if File::exists?(target_help)
109
124
  puts "File exists. rm it first to initialize it."
110
125
  exit
111
126
  end
112
- p template = File.join(@source_dir,'template_help')
127
+ p template = File.join(@default_help_dir,'template_help')
113
128
  FileUtils::Verbose.cp(template,target_help)
114
129
  end
115
130
 
116
131
  def edit_help(file)
117
- p target_help=File.join(@target_dir,file)
132
+ p target_help=File.join(@local_help_dir,file)
118
133
  system "emacs #{target_help}"
119
134
  end
120
135
 
136
+ def local_help_entries
137
+ entries= []
138
+ Dir.entries(@local_help_dir).each{|file|
139
+ next unless file.include?('_')
140
+ next if file[0]=='#' or file[-1]=='~' or file[0]=='.'
141
+ entries << file
142
+ }
143
+ return entries
144
+ end
145
+
121
146
  def list_helps
122
147
  print "Specific help file:\n"
123
- Dir.entries(@target_dir)[2..-1].each{|file|
124
- next if file[0]=='#' or file[-1]=='~'
125
- file_path=File.join(@target_dir,file)
126
- help_cont = YAML.load(File.read(file_path))
127
- print " #{file}\t:#{help_cont[:head][0][0..-1]}\n"
148
+ local_help_entries.each{|file|
149
+ file_path=File.join(@local_help_dir,file)
150
+ help = YAML.load(File.read(file_path))
151
+ print " #{file}\t:#{help[:head][0]}\n"
128
152
  }
129
153
  end
130
154
  end
data/lib/my_help.rb~ ADDED
@@ -0,0 +1,155 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "optparse"
3
+ require "yaml"
4
+ require "fileutils"
5
+ #require "emacs_help/version"
6
+ require "my_help/version"
7
+ require "systemu"
8
+ #require "emacs_help"
9
+
10
+ module MyHelp
11
+ class Command
12
+
13
+ def self.run(argv=[])
14
+ new(argv).execute
15
+ end
16
+
17
+ def initialize(argv=[])
18
+ @argv = argv
19
+ @default_help_dir = File.expand_path("../../lib/daddygongon", __FILE__)
20
+ @local_help_dir = File.join(ENV['HOME'],'.my_help')
21
+ set_help_dir_if_not_exists
22
+ end
23
+
24
+ def set_help_dir_if_not_exists
25
+ return if File::exists?(@local_help_dir)
26
+ FileUtils.mkdir_p(@local_help_dir, :verbose=>true)
27
+ Dir.entries(@default_help_dir).each{|file|
28
+ file_path=File.join(@local_help_dir,file)
29
+ next if File::exists?(file_path)
30
+ FileUtils.cp((File.join(@default_help_dir,file)),@local_help_dir,:verbose=>true)
31
+ }
32
+ end
33
+
34
+ def execute
35
+ @argv << '--help' if @argv.size==0
36
+ command_parser = OptionParser.new do |opt|
37
+ opt.on('-v', '--version','show program Version.') { |v|
38
+ opt.version = MyHelp::VERSION
39
+ puts opt.ver
40
+ }
41
+ opt.on('-l', '--list', 'list specific helps'){list_helps}
42
+ opt.on('-e NAME', '--edit NAME', 'edit NAME help(eg test_help)'){|file| edit_help(file)}
43
+ opt.on('-i NAME', '--init NAME', 'initialize NAME help(eg test_help).'){|file| init_help(file)}
44
+ opt.on('-m', '--make', 'make executables for all helps.'){make_help}
45
+ opt.on('-c', '--clean', 'clean up exe dir.'){clean_exe}
46
+ opt.on('--install_local','install local after edit helps'){install_local}
47
+ opt.on('--delete NAME','delete NAME help'){|file| delete_help(file)}
48
+ end
49
+ begin
50
+ command_parser.parse!(@argv)
51
+ rescue=> eval
52
+ p eval
53
+ end
54
+ exit
55
+ end
56
+
57
+ def delete_help(file)
58
+ del_files=[]
59
+ del_files << File.join(@local_help_dir,file)
60
+ exe_dir=File.join(File.expand_path('../..',@default_help_dir),'exe')
61
+ del_files << File.join(exe_dir,file)
62
+ p del_files << File.join(exe_dir,short_name(file))
63
+ print "Are you sure to delete these files?[yes]"
64
+ if gets.chomp=='yes' then
65
+ del_files.each{|file| FileUtils.rm(file,:verbose=>true)}
66
+ end
67
+ end
68
+
69
+ USER_INST_DIR="USER INSTALLATION DIRECTORY:"
70
+ INST_DIR="INSTALLATION DIRECTORY:"
71
+ def install_local
72
+ Dir.chdir(File.expand_path('../..',@default_help_dir))
73
+ p pwd_dir = Dir.pwd
74
+ # check that the working dir should not the gem installed dir,
75
+ # which destroys itself.
76
+ status, stdout, stderr = systemu "gem env|grep '#{USER_INST_DIR}'"
77
+ if stdout==""
78
+ status, stdout, stderr = systemu "gem env|grep '#{INST_DIR}'"
79
+ end
80
+ p system_inst_dir = stdout.split(': ')[1].chomp
81
+ if pwd_dir == system_inst_dir
82
+ puts "Download my_help from github, and using bundle for edit helps\n"
83
+ puts "Read README in detail.\n"
84
+ exit
85
+ end
86
+ system "git add -A"
87
+ system "git commit -m 'update exe dirs'"
88
+ system "Rake install:local"
89
+ end
90
+
91
+ def short_name(file)
92
+ file_name=file.split('_')
93
+ return file_name[0][0]+"_"+file_name[1][0]
94
+ end
95
+
96
+ def make_help
97
+ local_help_entries.each{|file|
98
+ exe_cont="#!/usr/bin/env ruby\nrequire 'specific_help'\n"
99
+ exe_cont << "help_file = File.join(ENV['HOME'],'.my_help','#{file}')\n"
100
+ exe_cont << "SpecificHelp::Command.run(help_file, ARGV)\n"
101
+ [file, short_name(file)].each{|name|
102
+ p target=File.join('exe',name)
103
+ File.open(target,'w'){|file| file.print exe_cont}
104
+ FileUtils.chmod('a+x', target, :verbose => true)
105
+ }
106
+ }
107
+ install_local
108
+ end
109
+
110
+ def clean_exe
111
+ local_help_entries.each{|file|
112
+ next if file.include?('emacs_help') or file.include?('e_h')
113
+ next if file.include?('template_help') or file.include?('t_h')
114
+ [file, short_name(file)].each{|name|
115
+ p target=File.join('exe',name)
116
+ FileUtils::Verbose.rm(target)
117
+ }
118
+ }
119
+ end
120
+
121
+ def init_help(file)
122
+ p target_help=File.join(@local_help_dir,file)
123
+ if File::exists?(target_help)
124
+ puts "File exists. rm it first to initialize it."
125
+ exit
126
+ end
127
+ p template = File.join(@default_help_dir,'template_help')
128
+ FileUtils::Verbose.cp(template,target_help)
129
+ end
130
+
131
+ def edit_help(file)
132
+ p target_help=File.join(@local_help_dir,file)
133
+ system "emacs #{target_help}"
134
+ end
135
+
136
+ def local_help_entries
137
+ entries= []
138
+ Dir.entries(@local_help_dir).each{|file|
139
+ next unless file.include?('_')
140
+ next if file[0]=='#' or file[-1]=='~'
141
+ entries << file
142
+ }
143
+ return entries
144
+ end
145
+
146
+ def list_helps
147
+ print "Specific help file:\n"
148
+ local_help_entries.each{|file|
149
+ file_path=File.join(@local_help_dir,file)
150
+ help = YAML.load(File.read(file_path))
151
+ print " #{file}\t:#{help[:head][0]}\n"
152
+ }
153
+ end
154
+ end
155
+ end
data/lib/specific_help.rb CHANGED
@@ -3,7 +3,6 @@ require "optparse"
3
3
  require "yaml"
4
4
  require "my_help/version"
5
5
 
6
-
7
6
  module SpecificHelp
8
7
  class Command
9
8
 
@@ -15,13 +14,18 @@ module SpecificHelp
15
14
  @source_file = file
16
15
  @help_cont = YAML.load(File.read(file))
17
16
  @help_cont[:head].each{|line| print line.chomp+"\n" }
18
- @help_cont[:license].each{|line| print line } if @help_cont[:license] != nil
19
- print "---\n" #separater
17
+ @help_cont[:license].each{|line| print "#{line.chomp}\n" } if @help_cont[:license] != nil
20
18
  @argv = argv
21
19
  end
22
20
 
23
21
  def execute
24
- @argv << '--help' if @argv.size==0
22
+ if @argv.size==0
23
+ if @source_file.include?('todo')
24
+ @argv << '--all'
25
+ else
26
+ @argv << '--help'
27
+ end
28
+ end
25
29
  command_parser = OptionParser.new do |opt|
26
30
  opt.on('-v', '--version','show program Version.') { |v|
27
31
  opt.version = MyHelp::VERSION
@@ -30,10 +34,14 @@ module SpecificHelp
30
34
  @help_cont.each_pair{|key,val|
31
35
  next if key==:head or key==:license
32
36
  opts = val[:opts]
33
- opt.on(opts[:short],opts[:long],opts[:desc]) {disp_from_help_cont(key)}
37
+ opt.on(opts[:short],opts[:long],opts[:desc]) {disp_help(key)}
34
38
  }
35
39
  opt.on('--edit','edit help contents'){edit_help}
36
40
  opt.on('--to_hiki','convert to hikidoc format'){to_hiki}
41
+ opt.on('--all','display all helps'){all_help}
42
+ opt.on('--store [item]','store [item] in backfile'){|item| store(item)}
43
+ opt.on('--remove [item]','remove [item] and store in backfile'){|item| remove(item) }
44
+ opt.on('--add [item]','add new [item]'){|item| add(item) }
37
45
  end
38
46
  # begin
39
47
  command_parser.parse!(@argv)
@@ -43,34 +51,83 @@ module SpecificHelp
43
51
  exit
44
52
  end
45
53
 
54
+ def mk_backup_file(file)
55
+ path = File.dirname(file)
56
+ base = File.basename(file)
57
+ backup= File.join(path,"."+base)
58
+ FileUtils.touch(backup) unless File.exists?(backup)
59
+ return backup
60
+ end
61
+
62
+ def store(item)
63
+ backup=mk_backup_file(@source_file)
64
+ store_item = @help_cont[item.to_sym]
65
+ p store_name = item+"_"+Time.now.strftime("%Y%m%d_%H%M%S")
66
+ cont = {store_name.to_sym => store_item}
67
+ File.open(backup,'a'){|file| file.print(YAML.dump(cont))}
68
+ end
69
+
70
+ def add(item='new_item')
71
+ new_item={:opts=>{:short=>'-'+item[0], :long=>'--'+item, :desc=>item},
72
+ :title=>item, :cont=> [item]}
73
+ @help_cont[item.to_sym]=new_item
74
+ File.open(@source_file,'w'){|file| file.print YAML.dump(@help_cont)}
75
+ end
76
+
77
+ def remove(item)
78
+ store(item)
79
+ @help_cont.delete(item.to_sym)
80
+ File.open(@source_file,'w'){|file| file.print YAML.dump(@help_cont)}
81
+ end
82
+
46
83
  def edit_help
47
84
  system("emacs #{@source_file}")
48
85
  end
49
86
 
50
87
  def to_hiki
51
- puts '<<<'
52
88
  @help_cont.each_pair{|key,val|
53
89
  if key==:head or key==:license
54
- disp(val)
90
+ hiki_disp(val)
55
91
  else
56
- items =@help_cont[key]
57
- puts items[:title]
58
- disp(items[:cont])
92
+ hiki_help(key)
59
93
  end
60
94
  }
61
- puts '>>>'
62
95
  end
63
96
 
64
- def disp(lines)
65
- lines.each{|line|
66
- puts " #{line}"
97
+ def all_help
98
+ @help_cont.each_pair{|key,val|
99
+ if key==:head or key==:license
100
+ disp(val)
101
+ else
102
+ disp_help(key)
103
+ end
67
104
  }
68
105
  end
69
106
 
70
- def disp_from_help_cont(key_word)
107
+ def hiki_help(key_word)
108
+ items =@help_cont[key_word]
109
+ puts "\n!!"+items[:title]+"\n"
110
+ hiki_disp(items[:cont])
111
+ end
112
+
113
+ def hiki_disp(lines)
114
+ lines.each{|line| puts "*#{line}"}
115
+ end
116
+
117
+ def disp_help(key_word)
118
+ print_separater
71
119
  items =@help_cont[key_word]
72
120
  puts items[:title]
73
121
  disp(items[:cont])
122
+ print_separater
123
+ end
124
+
125
+ def disp(lines)
126
+ lines.each{|line| puts " *#{line}"}
127
+ end
128
+
129
+ def print_separater
130
+ print "---\n"
74
131
  end
75
132
  end
76
133
  end
data/my_help.wiki/Home.md CHANGED
@@ -30,6 +30,11 @@ commandや文法を覚えるのに苦労します.少しのkey(とっかかり
30
30
  hikiでやろうとしていることの半分くらいはこのあたりのことなの
31
31
  かもしれません.memoソフトでは,検索が必要となりますが,my_helpは
32
32
  key(記憶のとっかかり)を提供することが目的です.
33
+ RPGでレベル上げとかアイテムを貯めるようにして,
34
+ プログラミングでスキルを発展させてください.
35
+
36
+ 物覚えの悪い作者は,人の名前をitem分けして,こそっと使っています.
37
+
33
38
 
34
39
  # 使用法
35
40
  ## インストール
@@ -56,6 +61,7 @@ Usage: my_help [options]
56
61
  -m, --make make executables for all helps.
57
62
  -c, --clean clean up exe dir.
58
63
  --install_local install local after edit helps
64
+ --delete NAME delete NAME help
59
65
  ```
60
66
  です.まず,-lでdefaultで入っているリストを見てください.
61
67
 
@@ -65,9 +71,35 @@ bob% bundle exec exe/my_help -l
65
71
  ["-l"]
66
72
  Specific help file:
67
73
  emacs_help
68
- test_help
69
74
  ```
70
- これで,CUIでemacs_help, e_h, template_help, t_hが用意されています.少し振る舞いに慣れてください.
75
+ これで,CUIでemacs_help, e_hが用意されています.
76
+
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
+ 少し振る舞いに慣れてください.
71
103
 
72
104
  ## 独自のhelpを作る方法
73
105
  さて,独自のhelpを作る方法です.まずは,
@@ -78,7 +110,12 @@ bob% bundle exec exe/my_help -i new_help
78
110
  "/Users/bob/Github/my_help/lib/daddygongon/template_help"
79
111
  cp /Users/bob/Github/my_help/lib/daddygongon/template_help /Users/bob/.my_help/new_help
80
112
  ```
81
- で,new_helpというtemplateが用意されます.-e new_helpで編集してください.そのあと,-mすると自動でnew_helpがexeディレクトリーに追加されます.
113
+ で,new_helpというtemplateが用意されます.-e new_helpで編集してください.
114
+ YAML形式で,格納されています.サンプルが,
115
+ ```
116
+ my_help/lib/daddygongon
117
+ ```
118
+ にあります.このあと,-mすると自動でnew_helpがexeディレクトリーに追加されます.
82
119
 
83
120
  ## 独自helpを使えるように
84
121
  (これは,-mで自動的に行われるように修正されています)
@@ -98,8 +135,8 @@ cp /Users/bob/Github/my_help/lib/daddygongon/template_help /Users/bob/.my_help/n
98
135
  - @target dirをmy_help/lib/daddygongonからENV['HOME']/.my_helpに変更
99
136
 
100
137
  exe中のファイルをrakeで自動生成.
101
- @target_dirにそれらのdataを保存.以下ではその名前から
102
- exe中に実行ファイルを自動生成させている.
138
+ @target_dirにそれらのdataを保存.
139
+ その名前からexe中に実行ファイルを自動生成させている.
103
140
  ```
104
141
  lib/daddygongon/
105
142
  └── emacs_help
@@ -123,34 +160,32 @@ rake install:local
123
160
  gem uninstall my_help
124
161
  gem uninstall emacs_help
125
162
  ```
126
- でそのdirをcleanにしておくことが望ましい.
163
+ でそのdirをcleanにしておくことが望ましい.下のuninstallの項目を参照.
127
164
 
128
- 中身は以下の通り.
165
+ -mでやっている中身は以下の通り.
129
166
  ```ruby
130
- desc "make own help from lib/daddygongon/files"
131
- task :my_help do
132
- exe_cont="#!/usr/bin/env ruby\n"
133
- user_name = 'daddygongon'
134
- p entries=Dir.entries(File.join('.','lib',user_name))[2..-1]
135
- entries.each{|file|
136
- p file
137
- p file_name=file.split('_')
138
- target_files = [file, file_name[0][0]+"_"+file_name[1][0]]
139
- p cont_name = File.join('lib',user_name,file)
140
- exe_cont << "require 'my_help'\n"
141
- exe_cont << "help_file = File.expand_path(\"../../#{cont_name}\", __FILE__)\n"
142
- exe_cont << "MyHelp::Command.run(help_file, ARGV)\n"
143
- target_files.each{|name|
144
- p ''
145
- p target=File.join('exe',name)
146
- File.open(target,'w'){|file|
147
- print exe_cont
148
- file.print exe_cont
167
+ def make_help
168
+ Dir.entries(@target_dir)[2..-1].each{|file|
169
+ next if file[0]=='#' or file[-1]=='~'
170
+ exe_cont="#!/usr/bin/env ruby\nrequire 'specific_help'\n"
171
+ exe_cont << "help_file = File.join(ENV['HOME'],'.my_help','#{file}')\n"
172
+ exe_cont << "SpecificHelp::Command.run(help_file, ARGV)\n"
173
+ [file, short_name(file)].each{|name|
174
+ p target=File.join('exe',name)
175
+ File.open(target,'w'){|file| file.print exe_cont}
176
+ FileUtils.chmod('a+x', target, :verbose => true)
177
+ }
149
178
  }
150
- FileUtils.chmod('a+x', target, :verbose => true)
151
- }
152
- }
153
- end
179
+ install_local
180
+ end
181
+
182
+ def install_local
183
+ #中略
184
+ system "git add -A"
185
+ system "git commit -m 'update exe dirs'"
186
+ system "Rake install:local"
187
+ end
188
+
154
189
  ```
155
190
 
156
191
  実装方法は,emacs_helpに
@@ -162,10 +197,30 @@ end
162
197
  今の所,No.1の方を実装.No.2のためのhushデータは,
163
198
 
164
199
  ```ruby
200
+ # -*- coding: utf-8 -*-
165
201
  require 'yaml'
166
202
  require 'pp'
167
-
168
- pp YAML.load(File.read(ARGV[0]))
203
+ yaml =<<EOF
204
+ :file:
205
+ :opts:
206
+ :short: "-f"
207
+ :cont:
208
+ - c-x c-f, Find file, ファイルを開く
209
+ - c-x c-s, Save file, ファイルを保存
210
+ EOF
211
+ pp data=YAML.load(yaml)
212
+ print YAML.dump(data)
213
+
214
+
215
+ data0={:file=>
216
+ {:opts=>{:short=>"-f", :long=>"--ファイル", :desc=>"File操作"},
217
+ :title=>"ファイル操作file",
218
+ :cont=>
219
+ ["c-x c-f, Find file, ファイルを開く
220
+ c-x c-s, Save file, ファイルを保存
221
+ c-x c-w, Write file NAME, ファイルを別名で書き込む"]}}
222
+
223
+ print YAML.dump(data0)
169
224
  ```
170
225
 
171
226
  ```