hikiutils 0.2.3.7 → 0.2.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/hikiutils_bob/Rakefile +146 -38
  3. data/hikiutils_bob/figs/calphad_bob.pdf +0 -0
  4. data/hikiutils_bob/figs/hikiutils_bob.001.bb +5 -0
  5. data/hikiutils_bob/figs/hikiutils_bob.002.jpeg +0 -0
  6. data/hikiutils_bob/figs/hikiutils_bob.004.jpeg +0 -0
  7. data/hikiutils_bob/figs/hikiutils_bob.005.jpeg +0 -0
  8. data/hikiutils_bob/hikiutils_bob/hikiutils_bob.002.jpeg +0 -0
  9. data/hikiutils_bob/hikiutils_bob/hikiutils_bob.004.jpeg +0 -0
  10. data/hikiutils_bob/hikiutils_bob/hikiutils_bob.005.jpeg +0 -0
  11. data/hikiutils_bob/hikiutils_bob.hiki +3 -3
  12. data/hikiutils_bob/hikiutils_bob.key +0 -0
  13. data/hikiutils_bob/latex2hiki.hiki +3 -0
  14. data/hikiutils_bob/latex_all.hiki +51 -14
  15. data/hikiutils_bob/latex_dir/head.tex +2 -0
  16. data/hikiutils_bob/latex_dir/hikiutils_bob.aux +1 -0
  17. data/hikiutils_bob/latex_dir/hikiutils_bob.log +75 -35
  18. data/hikiutils_bob/latex_dir/hikiutils_bob.pdf +0 -0
  19. data/hikiutils_bob/latex_dir/hikiutils_bob.synctex.gz +0 -0
  20. data/hikiutils_bob/latex_dir/hikiutils_bob.tex +3 -0
  21. data/hikiutils_bob/latex_dir/hikiutils_bob.toc +34 -25
  22. data/hikiutils_bob/latex_dir/latex2hiki.aux +23 -0
  23. data/hikiutils_bob/latex_dir/latex2hiki.tex +4 -0
  24. data/hikiutils_bob/latex_dir/latex_all.aux +16 -13
  25. data/hikiutils_bob/latex_dir/latex_all.tex +51 -10
  26. data/hikiutils_bob/latex_dir/sync.aux +33 -27
  27. data/hikiutils_bob/latex_dir/sync.log +18 -188
  28. data/hikiutils_bob/latex_dir/sync.tex +54 -23
  29. data/hikiutils_bob/sync.hiki +49 -21
  30. data/hikiutils_bob/toc.hiki +28 -0
  31. data/hikiutils_yamane/Rakefile +67 -15
  32. data/hikiutils_yamane/abstract.hiki +7 -0
  33. data/hikiutils_yamane/clidescription.hiki +4 -4
  34. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.001.jpg +0 -0
  35. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.002.jpg +0 -0
  36. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.003.jpg +0 -0
  37. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.004.jpg +0 -0
  38. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.005.jpg +0 -0
  39. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.006.jpg +0 -0
  40. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.007.jpg +0 -0
  41. data/hikiutils_yamane/hikiutils_yamane.hiki +6 -7
  42. data/hikiutils_yamane/latex_dir/abstract.aux +2 -2
  43. data/hikiutils_yamane/latex_dir/abstract.tex +8 -0
  44. data/hikiutils_yamane/latex_dir/clidescription.aux +9 -10
  45. data/hikiutils_yamane/latex_dir/clidescription.tex +4 -5
  46. data/hikiutils_yamane/latex_dir/code.aux +25 -25
  47. data/hikiutils_yamane/latex_dir/code.tex +15 -15
  48. data/hikiutils_yamane/latex_dir/compare.tex +4 -4
  49. data/hikiutils_yamane/latex_dir/head.tex +1 -0
  50. data/hikiutils_yamane/latex_dir/hikiutils_yamane.aux +3 -6
  51. data/hikiutils_yamane/latex_dir/hikiutils_yamane.log +78 -117
  52. data/hikiutils_yamane/latex_dir/hikiutils_yamane.pdf +0 -0
  53. data/hikiutils_yamane/latex_dir/hikiutils_yamane.synctex.gz +0 -0
  54. data/hikiutils_yamane/latex_dir/hikiutils_yamane.tex +3 -6
  55. data/hikiutils_yamane/latex_dir/hikiutils_yamane.toc +22 -48
  56. data/hikiutils_yamane/latex_dir/method.aux +25 -0
  57. data/hikiutils_yamane/latex_dir/method.tex +14 -0
  58. data/hikiutils_yamane/latex_dir/purpose.aux +6 -9
  59. data/hikiutils_yamane/latex_dir/purpose.tex +1 -14
  60. data/hikiutils_yamane/latex_dir/results.aux +11 -19
  61. data/hikiutils_yamane/latex_dir/results.tex +22 -12
  62. data/hikiutils_yamane/method.hiki +12 -0
  63. data/hikiutils_yamane/purpose.hiki +1 -12
  64. data/hikiutils_yamane/results.hiki +15 -12
  65. data/hikiutils_yamane/toc.hiki +22 -0
  66. data/lib/hikiutils/version.rb +1 -1
  67. data/lib/templates/Rakefile_hiki_sync +102 -21
  68. metadata +14 -38
  69. data/hikiutils.gemspec~ +0 -43
  70. data/hikiutils_bob/latex_dir/hikiutils_bob +0 -243
  71. data/hikiutils_bob/latex_dir/hikiutils_bob.001.bb +0 -5
  72. data/hikiutils_bob/latex_dir/hikiutils_bob.001.jpeg +0 -0
  73. data/hikiutils_bob/latex_dir/hikiutils_bob.002.bb +0 -5
  74. data/hikiutils_bob/latex_dir/hikiutils_bob.002.jpeg +0 -0
  75. data/hikiutils_bob/latex_dir/hikiutils_bob.003.bb +0 -5
  76. data/hikiutils_bob/latex_dir/hikiutils_bob.003.jpeg +0 -0
  77. data/hikiutils_bob/latex_dir/latex_all).aux +0 -21
  78. data/hikiutils_bob/latex_dir/sync).aux +0 -21
  79. data/hikiutils_bob/latex_dir/sync.pdf +0 -0
  80. data/hikiutils_bob/latex_dir/sync.synctex.gz +0 -0
  81. data/hikiutils_bob/latex_dir/sync.toc +0 -17
  82. data/hikiutils_bob/latex_dir/to_latex.tex +0 -44
  83. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274.001.jpg +0 -0
  84. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274.002.jpg +0 -0
  85. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274.003.jpg +0 -0
  86. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274.004.jpg +0 -0
  87. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274.005.jpg +0 -0
  88. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274.006.jpg +0 -0
  89. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/222/343/202/232/343/203/274.007.jpg +0 -0
  90. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274.001.jpg +0 -0
  91. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274.002.jpg +0 -0
  92. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274.003.jpg +0 -0
  93. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274.004.jpg +0 -0
  94. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274.005.jpg +0 -0
  95. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274.006.jpg +0 -0
  96. data/hikiutils_yamane/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274/hikiutils_yamane_09 /343/201/256/343/202/263/343/203/224/343/203/274.007.jpg +0 -0
  97. data/hikiutils_yamane/hikiutils_yamane_09.key +0 -0
  98. data/hikiutils_yamane/latex_dir/command_table.aux +0 -4
  99. data/hikiutils_yamane/latex_dir/command_table.log +0 -152
  100. data/hikiutils_yamane/latex_dir/command_table.pdf +0 -0
  101. data/hikiutils_yamane/latex_dir/command_table.synctex.gz +0 -0
  102. data/hikiutils_yamane/latex_dir/compare.aux +0 -40
  103. data/hikiutils_yamane/latex_dir/introduction.aux +0 -26
  104. data/hikiutils_yamane/latex_dir/pre.tex +0 -36
@@ -13,22 +13,70 @@ $basename = (dirnames[-1]=='hikis')? dirnames[-2] : dirnames[-1]
13
13
  $latex_dir= 'latex_dir'
14
14
  $section_layer = {}
15
15
 
16
+ task :default do
17
+ system 'rake -T'
18
+ end
19
+
20
+ desc "Githubのdirをsafariでopen"
16
21
  task :github do
17
22
  status, stdout, stderr = systemu %q( git remote -v |grep origin )
18
23
  p github_dir=stdout.match(/(.+):(.+) \(push\)/)[2]
19
24
  system "open https://github.com/#{github_dir}"
20
25
  end
21
26
 
22
- task :default do
23
- system 'rake -T'
27
+ desc "latex_dirのゴミを掃除"
28
+ task :reset_latex_dir do
29
+ system "mv latex_dir/head.tex ."
30
+ system "rm -rf latex_dir"
31
+ system "mkdir latex_dir"
32
+ system "mv head.tex latex_dir/"
33
+ system "rake latex_all"
34
+ end
35
+
36
+ desc "toc.hikiの作成"
37
+ task :mk_toc do
38
+ p target = $basename+'.toc'
39
+ cont=""
40
+ File.readlines(File.join('latex_dir',target)).each{|line|
41
+ if m=line.match(/\\contentsline \{(.+)\}\{\\numberline \{([\d|\.]+)\}(.+)\}\{\d+\}/)
42
+ layer,sec_no,title=m[1],m[2],m[3]
43
+ d = case m[1]
44
+ when 'section'
45
+ 1
46
+ when 'subsection'
47
+ 2
48
+ when 'subsubsection'
49
+ 3
50
+ else
51
+ 4
52
+ end
53
+ layer = "!"*d
54
+ title.gsub!('\_','_')
55
+ cont << "#{layer}#{sec_no}:#{title}\n"
56
+ end
57
+ }
58
+ print cont
59
+ File.open("toc.hiki",'w'){|file| file.print cont}
60
+ end
61
+
62
+ desc "hikiシステムを最新状態に更新"
63
+ task :touch do
64
+ Dir.entries('.').each{|file|
65
+ file_split=file.split(".")
66
+ if file_split[1]=='hiki'
67
+ next if file_split[0]==$basename
68
+ p target = $basename+"_"+file_split[0]
69
+ system "hiki -u #{target}"
70
+ end
71
+ }
24
72
  end
25
73
 
26
- desc "latex conversion FILE1"
74
+ desc "FILE1をlatexに変換"
27
75
  task :latex => [:latex_base] do
28
76
  exit
29
77
  end
30
78
 
31
- desc "latex conversion FILE1 with wrap format"
79
+ desc "FILE1wrap formatでlatexに変換"
32
80
  task :latex_wrap => [:latex_base, :change_wrap] do
33
81
  exit
34
82
  end
@@ -38,6 +86,7 @@ def latex_loop(entries,opts={})
38
86
  entries.each{|file|
39
87
  options={:latex_all=>true}
40
88
  next unless file.split('.')[1]=='hiki'
89
+ next if file=='toc.hiki'
41
90
  next if file.include?('.hikirc')
42
91
  f_name =File.basename(file,'.hiki')
43
92
  if opts[:main]
@@ -71,14 +120,21 @@ def check_section_layers(lines)
71
120
  p $section_layer
72
121
  end
73
122
 
74
- desc "latex conversion whole hiki files in the current dir."
123
+ desc "すべてのhikiファイルをlatex変換"
75
124
  task :latex_all do
76
125
  p entries=Dir.entries('.')
77
126
  main_file = latex_loop(entries,opts={:main=>true})
78
127
  latex_loop(entries)
79
128
  cont=""
80
129
  p reg_exp = Regexp.new("#{$basename}_(.+)")
130
+ toc = false
81
131
  File.readlines(File.join($latex_dir,"#{main_file}.tex")).each{|line|
132
+ if line.match(/\\tableofcontents/)
133
+ p line
134
+ line = "" if toc== true
135
+ toc = true if toc == false
136
+ end
137
+
82
138
  if line.match(/section{(.+)}/)
83
139
  if m=line.match(/\\verb\|(.+)\((.+)\)\|/)
84
140
  p m
@@ -99,7 +155,6 @@ task :latex_all do
99
155
  exit
100
156
  end
101
157
 
102
- desc "latex conversion FILE1(hiki) to FILE2(latex)"
103
158
  task :latex_base do
104
159
  Dir.mkdir($latex_dir) unless Dir.exist?($latex_dir)
105
160
  convert_to_latex(ARGV[1])
@@ -115,11 +170,11 @@ def convert_to_latex(file_name, options={})
115
170
  lines = File.readlines(file_name)
116
171
  check_section_layers(lines) if options[:main]
117
172
  cont = ""
118
- lines.each{|line|
173
+ lines.each_with_index{|line,i|
119
174
  if m=line.match(/\{\{attach_view\((.*),(.*)\)\}\}/)
120
175
  p line="\{\{attach_view\(#{m[1]}\)\}\}\n"
121
- elsif options[:latex_all]
122
- line="" if line.match(/title:|author:|date:/)
176
+ elsif options[:latex_all] and i<5
177
+ line="" if line.match(/^!title:|^!author:|^!date:/)
123
178
  end
124
179
  cont << line
125
180
  }
@@ -131,7 +186,7 @@ def convert_to_latex(file_name, options={})
131
186
  cont = ""
132
187
  lines.each{|line|
133
188
  if m=line.match(/\\includegraphics\[width=6cm\]\{(.+)\}/)
134
- p line="\\includegraphics\[width=6cm,bb=0 0 442 500\]\{../figs/#{m[1]}\}\n"
189
+ p line="\\includegraphics\[width=6cm,bb=0 0 442 432\]\{../figs/#{m[1]}\}\n"
135
190
  cont << line
136
191
  else
137
192
  cont << line
@@ -140,7 +195,6 @@ def convert_to_latex(file_name, options={})
140
195
  File.open($save_name,'w'){|file| file.print cont }
141
196
  end
142
197
 
143
- desc "change latex figures to wrap format"
144
198
  task :change_wrap do
145
199
  lines = File.readlines($save_name)
146
200
 
@@ -222,14 +276,13 @@ task :convert do
222
276
  exit
223
277
  end
224
278
 
225
- desc "normal sync hikis and figs to hiki directory"
279
+ desc "hikiの同期"
226
280
  task :sync => [:check_previous,:sync0]
227
281
 
228
282
 
229
- desc "force_sync hikis and figs to hiki directory"
283
+ desc "hikiの強制同期"
230
284
  task :force_sync => [:sync0]
231
285
 
232
- desc "sync0 hikis and figs to hiki directory"
233
286
  task :sync0 do
234
287
  entries=Dir.entries('.')
235
288
  entries[2..-1].each{|source| #cp *.hiki
@@ -276,7 +329,6 @@ task :self_copy do
276
329
  }
277
330
  end
278
331
 
279
- desc "check previou and current sync"
280
332
  task :check_previous do
281
333
  current={}
282
334
  print "current hiki dir\n"
@@ -1 +1,8 @@
1
1
  !概要
2
+ 研究室内の内部文書,あるいは外部への宣伝資料,さらにwikipediaのように重要な研究成果の発信などに西谷研ではhiki systemを利用しています.
3
+ これは初心者にも覚えやすい直感的な操作であるが,慣れてくるとテキスト編集や画面更新にいちいちweb画面へ移行せねばならず,編集の思考が停止する.
4
+ そこで,編集操作がCUIで完結させるためにテキスト編集に優れたeditorとの連携や,terminal上のshell commandと連携しやすいhikiutilsが開発された.
5
+ しかし,そのユーザーインターフェースにはコマンドが直感的でないという問題がある.
6
+ そこで,本研究ではコマンドラインツール作成ライブラリを変更することでコマンドを実装し直し直感的なコマンドにすることを目的とした.
7
+ optparseで作成されているhikiutilsをthorで作成し,そして2つのコマンドラインツール作成ライブラリで作成されたhikiutilsを比較する.
8
+ 研究結果は,thorのほうがコマンドを簡単に定義することができ,またコードも短くできた.
@@ -1,10 +1,10 @@
1
1
  {{toc}}
2
- !CLIのコード
2
+ //!CLIのコード
3
3
  hikiutilsのコマンドライン解析ツールをoptparseからthorに換えることでコマンドの書き換えを行うことができた.
4
4
  また,thorで書かれたhikiutilsはoptparseで書かれたものよりもコードが短くなり,コマンドの解析も簡単に行えることができた.
5
5
  ここではthorとoptparseのコードを比較しthorの良さを確認する.
6
- !!CLIの解説
7
- !!!Thor
6
+ !CLIの解説
7
+ !!Thor
8
8
  Thorとは,コマンドラインツールの作成を支援するライブラリのことである.
9
9
  gitやbundlerのようにサブコマンドを含むコマンドラインツールを簡単に作成することができる[1-2].
10
10
 
@@ -16,7 +16,7 @@ Thorの基本的な流れとしては
16
16
 
17
17
  startに渡す引数が空の場合,Thorはクラスのヘルプリストを出力する.
18
18
  また,Thorはサブコマンドやサブサブコマンドも作ることができる.
19
- !!!optparse
19
+ !!optparse
20
20
  optparseとは,getoptよりも簡便で,柔軟性に富み,かつ強力なコマンドライン解析ライブラリである.
21
21
  optparseでは,より宣言的なスタイルのコマンドライン解析手法,すなわちOptionParserのインスタンスでコマンドラインを解析するという手法をとっている.
22
22
  これを使うと,GNU/POSIX構文でオプションを指定できるだけでなく,使用法やヘルプメッセージの生成も行える[1-3].
@@ -3,15 +3,14 @@
3
3
  !author:関西学院大学理工学部情報科学科 27013554 山根亮太
4
4
 
5
5
  ![[概要|hikiutils_yamane_abstract]]
6
- !序論
7
- ![[hikiutils_yamane_introduction]]
8
- !![[hikiutils_yamane_purpose]]
9
- !方法
6
+ ![[序論|hikiutils_yamane_purpose]]
7
+ ![[方法|hikiutils_yamane_method]]
10
8
  !結果
11
9
  !![[hikiutils_yamane_results]]
12
- !![[hikiutils_yamane_compare]]
13
- !!![[hikiutils_yamane_clidescription]]
14
- !!![[hikiutils_yamane_code]]
10
+ //!![[hikiutils_yamane_compare]]
11
+ //!本論
12
+ !![[hikiutils_yamane_clidescription]]
13
+ !![[hikiutils_yamane_code]]
15
14
 
16
15
  !参考文献
17
16
  [1-1] hikidoc, https://rubygems.org/gems/hikidoc/versions/0.1.0, https://github.com/hiki/hikidoc,2017/1/30 アクセス.
@@ -1,7 +1,7 @@
1
1
  \relax
2
- \@writefile{toc}{\contentsline {section}{\numberline {1}概要}{4}}
2
+ \@writefile{toc}{\contentsline {section}{\numberline {1}概要}{3}}
3
3
  \@setckpt{abstract}{
4
- \setcounter{page}{5}
4
+ \setcounter{page}{4}
5
5
  \setcounter{equation}{0}
6
6
  \setcounter{enumi}{0}
7
7
  \setcounter{enumii}{0}
@@ -1 +1,9 @@
1
1
  \section{概要}
2
+ 研究室内の内部文書,あるいは外部への宣伝資料,さらにwikipediaのように重要な研究成果の発信などに西谷研ではhiki systemを利用しています.
3
+ これは初心者にも覚えやすい直感的な操作であるが,慣れてくるとテキスト編集や画面更新にいちいちweb画面へ移行せねばならず,編集の思考が停止する.
4
+ そこで,編集操作がCUIで完結させるためにテキスト編集に優れたeditorとの連携や,terminal上のshell commandと連携しやすいhikiutilsが開発された.
5
+ しかし,そのユーザーインターフェースにはコマンドが直感的でないという問題がある.
6
+ そこで,本研究ではコマンドラインツール作成ライブラリを変更することでコマンドを実装し直し直感的なコマンドにすることを目的とした.
7
+ optparseで作成されているhikiutilsをthorで作成し,そして2つのコマンドラインツール作成ライブラリで作成されたhikiutilsを比較する.
8
+ 研究結果は,thorのほうがコマンドを簡単に定義することができ,またコードも短くできた.
9
+
@@ -1,10 +1,9 @@
1
1
  \relax
2
- \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.3}CLIのコード}{26}}
3
- \@writefile{toc}{\contentsline {paragraph}{CLIの解説}{26}}
4
- \@writefile{toc}{\contentsline {paragraph}{Thor}{26}}
5
- \@writefile{toc}{\contentsline {paragraph}{optparse}{26}}
2
+ \@writefile{toc}{\contentsline {subsection}{\numberline {4.4}CLIの解説}{12}}
3
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1}Thor}{12}}
4
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.2}optparse}{12}}
6
5
  \@setckpt{clidescription}{
7
- \setcounter{page}{28}
6
+ \setcounter{page}{14}
8
7
  \setcounter{equation}{0}
9
8
  \setcounter{enumi}{3}
10
9
  \setcounter{enumii}{0}
@@ -13,13 +12,13 @@
13
12
  \setcounter{footnote}{0}
14
13
  \setcounter{mpfootnote}{0}
15
14
  \setcounter{part}{0}
16
- \setcounter{section}{5}
17
- \setcounter{subsection}{1}
18
- \setcounter{subsubsection}{3}
15
+ \setcounter{section}{4}
16
+ \setcounter{subsection}{4}
17
+ \setcounter{subsubsection}{2}
19
18
  \setcounter{paragraph}{0}
20
19
  \setcounter{subparagraph}{0}
21
- \setcounter{figure}{6}
20
+ \setcounter{figure}{2}
22
21
  \setcounter{table}{1}
23
- \setcounter{lstnumber}{61}
22
+ \setcounter{lstnumber}{12}
24
23
  \setcounter{lstlisting}{0}
25
24
  }
@@ -1,11 +1,10 @@
1
-
2
- \subsubsection{CLIのコード}
1
+ \verb|{{toc}}|
3
2
  hikiutilsのコマンドライン解析ツールをoptparseからthorに換えることでコマンドの書き換えを行うことができた.
4
3
  また,thorで書かれたhikiutilsはoptparseで書かれたものよりもコードが短くなり,コマンドの解析も簡単に行えることができた.
5
4
  ここではthorとoptparseのコードを比較しthorの良さを確認する.
6
5
 
7
- \paragraph{CLIの解説}
8
- \paragraph{Thor}
6
+ \subsection{CLIの解説}
7
+ \subsubsection{Thor}
9
8
  Thorとは,コマンドラインツールの作成を支援するライブラリのことである.
10
9
  gitやbundlerのようにサブコマンドを含むコマンドラインツールを簡単に作成することができる[1-2].
11
10
 
@@ -20,7 +19,7 @@ Thorの基本的な流れとしては
20
19
  startに渡す引数が空の場合,Thorはクラスのヘルプリストを出力する.
21
20
  また,Thorはサブコマンドやサブサブコマンドも作ることができる.
22
21
 
23
- \paragraph{optparse}
22
+ \subsubsection{optparse}
24
23
  optparseとは,getoptよりも簡便で,柔軟性に富み,かつ強力なコマンドライン解析ライブラリである.
25
24
  optparseでは,より宣言的なスタイルのコマンドライン解析手法,すなわちOptionParserのインスタンスでコマンドラインを解析するという手法をとっている.
26
25
  これを使うと,GNU/POSIX構文でオプションを指定できるだけでなく,使用法やヘルプメッセージの生成も行える[1-3].
@@ -1,26 +1,26 @@
1
1
  \relax
2
- \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.4}Thorの初期化}{28}}
3
- \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces }}{28}}
4
- \newlabel{default}{{7}{28}}
5
- \@writefile{toc}{\contentsline {paragraph}{コード}{28}}
6
- \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.5}コマンド表示と処理}{29}}
7
- \@writefile{toc}{\contentsline {paragraph}{Thor}{29}}
8
- \@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces }}{30}}
9
- \newlabel{default}{{8}{30}}
10
- \@writefile{toc}{\contentsline {paragraph}{optparse}{30}}
11
- \@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces }}{31}}
12
- \newlabel{default}{{9}{31}}
13
- \@writefile{toc}{\contentsline {paragraph}{コード}{31}}
14
- \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.6}CLIの実行}{34}}
15
- \@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces }}{34}}
16
- \newlabel{default}{{10}{34}}
17
- \@writefile{toc}{\contentsline {paragraph}{Thor}{34}}
18
- \@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces }}{35}}
19
- \newlabel{default}{{11}{35}}
20
- \@writefile{toc}{\contentsline {paragraph}{optparse}{35}}
21
- \@writefile{toc}{\contentsline {paragraph}{コード}{35}}
2
+ \@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Thorの初期化}{14}}
3
+ \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces }}{14}}
4
+ \newlabel{default}{{3}{14}}
5
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.1}コード}{14}}
6
+ \@writefile{toc}{\contentsline {subsection}{\numberline {4.6}コマンド表示と処理}{15}}
7
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.1}Thor}{15}}
8
+ \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces }}{16}}
9
+ \newlabel{default}{{4}{16}}
10
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.2}optparse}{16}}
11
+ \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces }}{17}}
12
+ \newlabel{default}{{5}{17}}
13
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.3}コード}{17}}
14
+ \@writefile{toc}{\contentsline {subsection}{\numberline {4.7}CLIの実行}{20}}
15
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.7.1}Thor}{20}}
16
+ \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces }}{20}}
17
+ \newlabel{default}{{6}{20}}
18
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.7.2}optparse}{20}}
19
+ \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces }}{21}}
20
+ \newlabel{default}{{7}{21}}
21
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.7.3}コード}{21}}
22
22
  \@setckpt{code}{
23
- \setcounter{page}{39}
23
+ \setcounter{page}{25}
24
24
  \setcounter{equation}{0}
25
25
  \setcounter{enumi}{2}
26
26
  \setcounter{enumii}{0}
@@ -29,12 +29,12 @@
29
29
  \setcounter{footnote}{0}
30
30
  \setcounter{mpfootnote}{0}
31
31
  \setcounter{part}{0}
32
- \setcounter{section}{5}
33
- \setcounter{subsection}{1}
34
- \setcounter{subsubsection}{6}
32
+ \setcounter{section}{4}
33
+ \setcounter{subsection}{7}
34
+ \setcounter{subsubsection}{3}
35
35
  \setcounter{paragraph}{0}
36
36
  \setcounter{subparagraph}{0}
37
- \setcounter{figure}{11}
37
+ \setcounter{figure}{7}
38
38
  \setcounter{table}{1}
39
39
  \setcounter{lstnumber}{38}
40
40
  \setcounter{lstlisting}{0}
@@ -1,7 +1,7 @@
1
1
 
2
- \subsubsection{Thorの初期化}
2
+ \subsection{Thorの初期化}
3
3
  \begin{figure}[htbp]\begin{center}
4
- \includegraphics[width=6cm,bb=0 0 442 500]{../figs/./hikiutils_yamane_09_copy.003.jpg}
4
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.003.jpg}
5
5
  \caption{}
6
6
  \label{default}\end{center}\end{figure}
7
7
  \begin{itemize}
@@ -18,7 +18,7 @@ Thorの定義方法はrequireでThorを呼びCLIクラスで継承し,initiali
18
18
  initializeメソッド内ではThorの初期設定がされていないため,スーパークラスのメソッドを読み出してくれるsuperを書き加えることで図のようにinitializeメソッド内でThorのinitilalizeメソッドが
19
19
  呼ばれ定義される.
20
20
 
21
- \paragraph{コード}\begin{lstlisting}[style=customRuby]
21
+ \subsubsection{コード}\begin{lstlisting}[style=customRuby]
22
22
  # -*- coding: utf-8 -*-
23
23
  require 'thor'
24
24
  require 'kconv'
@@ -55,10 +55,10 @@ module Hikithor
55
55
  @editor_command = (editor_command==nil) ? 'open -a mi' : editor_command
56
56
  end
57
57
  \end{lstlisting}
58
- \subsubsection{コマンド表示と処理}
59
- \paragraph{Thor}
58
+ \subsection{コマンド表示と処理}
59
+ \subsubsection{Thor}
60
60
  \begin{figure}[htbp]\begin{center}
61
- \includegraphics[width=6cm,bb=0 0 442 500]{../figs/./hikiutils_yamane_09_copy.004.jpg}
61
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.004.jpg}
62
62
  \caption{}
63
63
  \label{default}\end{center}\end{figure}
64
64
  \begin{enumerate}
@@ -75,9 +75,9 @@ map A => B
75
75
  mapとはBでしか読めないものをAでも読めるようにしてくれるものである.
76
76
  よって,これを使うことで別のコマンドも指定することができる.
77
77
 
78
- \paragraph{optparse}
78
+ \subsubsection{optparse}
79
79
  \begin{figure}[htbp]\begin{center}
80
- \includegraphics[width=6cm,bb=0 0 442 500]{../figs/./hikiutils_yamane_09_copy.005.jpg}
80
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.005.jpg}
81
81
  \caption{}
82
82
  \label{default}\end{center}\end{figure}
83
83
  \begin{enumerate}
@@ -92,7 +92,7 @@ optparseではOptionParserオブジェクトoptの生成を行い,コマンド
92
92
  以上より,Thorではコマンドの指定と処理にはdesc,map,処理メソッドだけで済むが,optparseではコマンドを登録するためのメソッドと処理メソッドが必要になってくる.
93
93
  また,コマンドはThorでは処理メソッドがコマンド名になるが,optparseではコマンドを登録するための処理も必要となってくる.
94
94
 
95
- \paragraph{コード}
95
+ \subsubsection{コード}
96
96
  \begin{itemize}
97
97
  \item Thor
98
98
  \end{itemize}\begin{lstlisting}[style=customRuby]
@@ -188,10 +188,10 @@ optparseではOptionParserオブジェクトoptの生成を行い,コマンド
188
188
  show_sources
189
189
  end
190
190
  \end{lstlisting}
191
- \subsubsection{CLIの実行}
192
- \paragraph{Thor}
191
+ \subsection{CLIの実行}
192
+ \subsubsection{Thor}
193
193
  \begin{figure}[htbp]\begin{center}
194
- \includegraphics[width=6cm,bb=0 0 442 500]{../figs/./hikiutils_yamane_09_copy.006.jpg}
194
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.006.jpg}
195
195
  \caption{}
196
196
  \label{default}\end{center}\end{figure}
197
197
  \begin{itemize}
@@ -204,9 +204,9 @@ optparseではOptionParserオブジェクトoptの生成を行い,コマンド
204
204
  Thorではstart(ARGV)を呼び出すことでCLIを開始する.Hikithor::CLI.start(ARGV)を実行されることによりrequireで呼ばれているhikiutils\_thor.rbのCLIコマンドを順に実行する.
205
205
  そして,入力されたコマンドと一致するメソッドを探し,そのコマンドの処理が実行される.
206
206
 
207
- \paragraph{optparse}
207
+ \subsubsection{optparse}
208
208
  \begin{figure}[htbp]\begin{center}
209
- \includegraphics[width=6cm,bb=0 0 442 500]{../figs/./hikiutils_yamane_09_copy.007.jpg}
209
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.007.jpg}
210
210
  \caption{}
211
211
  \label{default}\end{center}\end{figure}
212
212
  \begin{itemize}
@@ -221,7 +221,7 @@ Thorではstart(ARGV)を呼び出すことでCLIを開始する.Hikithor::CLI.
221
221
  このようにoptparseでは実行を行うためのメソッドが必要であるが,Thorではクラスのメソッドを順に実行していくため
222
222
  runメソッドとexecuteメソッドは必要ない.また,optparseでの実行手順はメソッドの移動回数が多く複雑であるが,Thorは単純で分かりやすいものとなっている.
223
223
 
224
- \paragraph{コード}
224
+ \subsubsection{コード}
225
225
  \begin{itemize}
226
226
  \item Thor
227
227
  \end{itemize}\begin{lstlisting}[style=customRuby]
@@ -98,7 +98,7 @@ module Hikithor
98
98
  \item Thor
99
99
  \end{itemize}
100
100
  \begin{figure}[htbp]\begin{center}
101
- \includegraphics[width=6cm,bb=0 0 442 500]{../figs/./hikiutils_yamane.004.jpg}
101
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane.004.jpg}
102
102
  \caption{}
103
103
  \label{default}\end{center}\end{figure}
104
104
  \begin{enumerate}
@@ -111,7 +111,7 @@ module Hikithor
111
111
  \item optparse
112
112
  \end{itemize}
113
113
  \begin{figure}[htbp]\begin{center}
114
- \includegraphics[width=6cm,bb=0 0 442 500]{../figs/./hikiutils_yamane.001.jpg}
114
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane.001.jpg}
115
115
  \caption{}
116
116
  \label{default}\end{center}\end{figure}
117
117
  \begin{enumerate}
@@ -217,7 +217,7 @@ s)}
217
217
  \item Thor
218
218
  \end{itemize}
219
219
  \begin{figure}[htbp]\begin{center}
220
- \includegraphics[width=6cm,bb=0 0 442 500]{../figs/./hikiutils_yamane.002.jpg}
220
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane.002.jpg}
221
221
  \caption{}
222
222
  \label{default}\end{center}\end{figure}
223
223
  \begin{enumerate}
@@ -233,7 +233,7 @@ Thorでは処理実行を行うメソッドがコマンドとなる.しかし
233
233
  \item optparse
234
234
  \end{itemize}
235
235
  \begin{figure}[htbp]\begin{center}
236
- \includegraphics[width=6cm,bb=0 0 442 500]{../figs/./hikiutils_yamane.005.jpg}
236
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane.005.jpg}
237
237
  \caption{}
238
238
  \label{default}\end{center}\end{figure}
239
239
  \begin{enumerate}
@@ -5,5 +5,6 @@
5
5
  \vspace{3cm} 指導教員  西谷 滋人 教授}
6
6
  \maketitle
7
7
  \setcounter{tocdepth}{4}
8
+
8
9
  \tableofcontents
9
10
 
@@ -1,12 +1,9 @@
1
1
  \relax
2
2
  \@input{abstract.aux}
3
- \@writefile{toc}{\contentsline {section}{\numberline {2}序論}{5}}
4
- \@input{introduction.aux}
5
3
  \@input{purpose.aux}
6
- \@writefile{toc}{\contentsline {section}{\numberline {4}方法}{10}}
7
- \@writefile{toc}{\contentsline {section}{\numberline {5}結果}{10}}
4
+ \@input{method.aux}
5
+ \@writefile{toc}{\contentsline {section}{\numberline {4}結果}{7}}
8
6
  \@input{results.aux}
9
- \@input{compare.aux}
10
7
  \@input{clidescription.aux}
11
8
  \@input{code.aux}
12
- \@writefile{toc}{\contentsline {section}{\numberline {6}参考文献}{39}}
9
+ \@writefile{toc}{\contentsline {section}{\numberline {5}参考文献}{25}}