hikiutils 0.2.3.8 → 0.2.3.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/hikiutils_bob/Rakefile +16 -4
  3. data/hikiutils_bob/figs/hikiutils_bob.002.bb +5 -0
  4. data/hikiutils_bob/hikiutils_bob/hikiutils_bob.002.bb +5 -0
  5. data/hikiutils_bob/latex_all.hiki +3 -3
  6. data/hikiutils_bob/latex_dir/hikiutils_bob.log +59 -24
  7. data/hikiutils_bob/latex_dir/hikiutils_bob.pdf +0 -0
  8. data/hikiutils_bob/latex_dir/hikiutils_bob.synctex.gz +0 -0
  9. data/hikiutils_bob/latex_dir/latex_all.tex +3 -3
  10. data/hikiutils_bob/latex_dir/sync.aux +1 -1
  11. data/hikiutils_bob/latex_dir/sync.tex +17 -13
  12. data/hikiutils_bob/sync.hiki +9 -6
  13. data/hikiutils_bob/toc.hiki +19 -15
  14. data/hikiutils_yamane/{results.hiki → command.hiki} +11 -13
  15. data/hikiutils_yamane/compare.hiki +13 -297
  16. data/hikiutils_yamane/figs/hikiutils_yamane.001.jpg +0 -0
  17. data/hikiutils_yamane/figs/hikiutils_yamane.002.bb +5 -0
  18. data/hikiutils_yamane/figs/hikiutils_yamane.002.jpg +0 -0
  19. data/hikiutils_yamane/figs/hikiutils_yamane.003.jpg +0 -0
  20. data/hikiutils_yamane/figs/hikiutils_yamane.004.jpg +0 -0
  21. data/hikiutils_yamane/figs/hikiutils_yamane.005.jpg +0 -0
  22. data/hikiutils_yamane/hikiutils_yamane.hiki +8 -7
  23. data/hikiutils_yamane/introduction.hiki +9 -26
  24. data/hikiutils_yamane/latex_dir/command.aux +34 -0
  25. data/hikiutils_yamane/latex_dir/{results.tex → command.tex} +10 -22
  26. data/hikiutils_yamane/latex_dir/compare.aux +24 -0
  27. data/hikiutils_yamane/latex_dir/compare.tex +13 -333
  28. data/hikiutils_yamane/latex_dir/hikiutils_yamane.aux +8 -7
  29. data/hikiutils_yamane/latex_dir/hikiutils_yamane.log +126 -87
  30. data/hikiutils_yamane/latex_dir/hikiutils_yamane.pdf +0 -0
  31. data/hikiutils_yamane/latex_dir/hikiutils_yamane.synctex.gz +0 -0
  32. data/hikiutils_yamane/latex_dir/hikiutils_yamane.tex +6 -5
  33. data/hikiutils_yamane/latex_dir/hikiutils_yamane.toc +25 -21
  34. data/hikiutils_yamane/latex_dir/{purpose.aux → introduction.aux} +6 -4
  35. data/hikiutils_yamane/latex_dir/introduction.tex +7 -29
  36. data/hikiutils_yamane/latex_dir/optparse.aux +29 -0
  37. data/hikiutils_yamane/latex_dir/optparse.tex +116 -0
  38. data/hikiutils_yamane/latex_dir/thor.aux +32 -0
  39. data/hikiutils_yamane/latex_dir/thor.tex +112 -0
  40. data/hikiutils_yamane/optparse.hiki +113 -0
  41. data/hikiutils_yamane/thor.hiki +108 -0
  42. data/hikiutils_yamane/toc.hiki +15 -17
  43. data/lib/hikiutils/version.rb +1 -1
  44. data/lib/templates/Rakefile_hiki_sync +16 -4
  45. data/lib/templates/hiki_help.yml +2 -2
  46. metadata +61 -80
  47. data/hikiutils_yamane/clidescription.hiki +0 -35
  48. data/hikiutils_yamane/code.hiki +0 -285
  49. data/hikiutils_yamane/command_table.hiki +0 -19
  50. data/hikiutils_yamane/figs/hikiutils_yamane.001.jpeg +0 -0
  51. data/hikiutils_yamane/figs/hikiutils_yamane.002.jpeg +0 -0
  52. data/hikiutils_yamane/figs/hikiutils_yamane.003.jpeg +0 -0
  53. data/hikiutils_yamane/figs/hikiutils_yamane.004.jpeg +0 -0
  54. data/hikiutils_yamane/figs/hikiutils_yamane.005.jpeg +0 -0
  55. data/hikiutils_yamane/figs/hikiutils_yamane.006.jpeg +0 -0
  56. data/hikiutils_yamane/figs/hikiutils_yamane.007.jpeg +0 -0
  57. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.001.jpg +0 -0
  58. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.002.jpg +0 -0
  59. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.003.jpg +0 -0
  60. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.004.jpg +0 -0
  61. data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.005.jpg +0 -0
  62. data/hikiutils_yamane/hikiutils_yamane.key +0 -0
  63. data/hikiutils_yamane/latex_dir/clidescription.aux +0 -24
  64. data/hikiutils_yamane/latex_dir/clidescription.tex +0 -41
  65. data/hikiutils_yamane/latex_dir/code.aux +0 -41
  66. data/hikiutils_yamane/latex_dir/code.tex +0 -319
  67. data/hikiutils_yamane/latex_dir/command_table.tex +0 -29
  68. data/hikiutils_yamane/latex_dir/method.aux +0 -25
  69. data/hikiutils_yamane/latex_dir/method.tex +0 -14
  70. data/hikiutils_yamane/latex_dir/purpose.tex +0 -8
  71. data/hikiutils_yamane/latex_dir/results.aux +0 -28
  72. data/hikiutils_yamane/latex_dir/system.tex +0 -23
  73. data/hikiutils_yamane/method.hiki +0 -12
  74. data/hikiutils_yamane/mi +0 -0
  75. data/hikiutils_yamane/purpose.hiki +0 -7
  76. data/hikiutils_yamane/system.hiki +0 -18
  77. /data/hikiutils_yamane/figs/{hikiutils_yamane_09_copy.006.jpg → hikiutils_yamane.006.jpg} +0 -0
  78. /data/hikiutils_yamane/figs/{hikiutils_yamane_09_copy.007.jpg → hikiutils_yamane.007.jpg} +0 -0
  79. /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.001.jpg → hikiutils_yamane/hikiutils_yamane.001.jpg} +0 -0
  80. /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.002.jpg → hikiutils_yamane/hikiutils_yamane.002.jpg} +0 -0
  81. /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.003.jpg → hikiutils_yamane/hikiutils_yamane.003.jpg} +0 -0
  82. /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.004.jpg → hikiutils_yamane/hikiutils_yamane.004.jpg} +0 -0
  83. /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.005.jpg → hikiutils_yamane/hikiutils_yamane.005.jpg} +0 -0
  84. /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.006.jpg → hikiutils_yamane/hikiutils_yamane.006.jpg} +0 -0
  85. /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.007.jpg → hikiutils_yamane/hikiutils_yamane.007.jpg} +0 -0
  86. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
  87. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
  88. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_familychineseoahu_en_00317_2040x1360-96.jpeg +0 -0
  89. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_familychineseoahu_en_02016_981x654-97.jpeg +0 -0
  90. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_familychineseoahu_en_02390_2880x1921-94.jpeg +0 -0
  91. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_familychineseoahu_en_02390_2880x1921-small-95.jpg +0 -0
  92. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt0@2x-102.jpg +0 -0
  93. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt10@2x-112.jpg +0 -0
  94. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt1@2x-103.jpg +0 -0
  95. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt2@2x-104.jpg +0 -0
  96. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt3@2x-105.jpg +0 -0
  97. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt4@2x-106.jpg +0 -0
  98. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt5@2x-107.jpg +0 -0
  99. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt6@2x-108.jpg +0 -0
  100. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt7@2x-109.jpg +0 -0
  101. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt8@2x-110.jpg +0 -0
  102. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt9@2x-111.jpg +0 -0
  103. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/pasted-image-100.tiff +0 -0
  104. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/pasted-image-98.tiff +0 -0
  105. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/pasted-image-small-101.png +0 -0
  106. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/pasted-image-small-99.png +0 -0
  107. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st0-113.jpg +0 -0
  108. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st1-114.jpg +0 -0
  109. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st2-115.jpg +0 -0
  110. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st3-116.jpg +0 -0
  111. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st4-117.jpg +0 -0
  112. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st5-118.jpg +0 -0
  113. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st6-119.jpg +0 -0
  114. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/tile_paper_medgray-93.jpg +0 -0
  115. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Index.zip +0 -0
  116. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Metadata/BuildVersionHistory.plist +0 -0
  117. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Metadata/DocumentIdentifier +0 -0
  118. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Metadata/Properties.plist +0 -0
  119. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/preview-micro.jpg +0 -0
  120. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/preview-web.jpg +0 -0
  121. /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/preview.jpg +0 -0
@@ -0,0 +1,112 @@
1
+ \subsection{Thorによる実装}
2
+ 手法のところで概観した通り,thorを用いることで記述の簡略化が期待できる.ここでは,実際に書き換える前後,すなわちoptparse版とthor版の対応するコードを比較することで,以下の具体的な違い
3
+
4
+ \begin{itemize}
5
+ \item クラス初期化
6
+ \item コマンド定義
7
+ \item CLIの実行プロセス
8
+ \end{itemize}
9
+ について詳しく検討を行う.
10
+
11
+ \subsubsection{クラス初期化}\begin{quote}\begin{verbatim}
12
+
13
+ \end{verbatim}\end{quote}
14
+ \begin{figure}[htbp]\begin{center}
15
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.003.jpg}
16
+ \caption{Thorのinitializeでのコード}
17
+ \label{default}\end{center}\end{figure}
18
+ Thorのinitializeでのコードはつぎの通りである.
19
+
20
+ \begin{enumerate}
21
+ \item Hikithor::CLI.start(ARGV)が呼ばれる
22
+ \item initializeメソッドが呼ばれる
23
+ \item これではThorのinitializeメソッドが呼ばれない
24
+ \item superを書くことでThorのinitializeメソッドが呼ばれる
25
+ \end{enumerate}
26
+ optparseではrequireでoptparseを呼びoptparseのinitializeを定義する必要はないが,Thorはinitializeを定義する必要がある.Thorの定義方法はrequireでThorを呼びCLIクラスで継承し,initializeメソッドにsuperを書くことでThorのinitializeが呼ばれる.initializeメソッド内ではThorの初期設定がされていないため,スーパークラスのメソッドを読み出してくれるsuperを書き加えることで図のようにinitializeメソッド内でThorのinitilalizeメソッドが呼ばれ定義される.
27
+ \begin{lstlisting}[style=customRuby]
28
+
29
+ module Hikithor
30
+
31
+ DATA_FILE=File.join(ENV['HOME'],'.hikirc')
32
+ attr_accessor :src, :target, :editor_command, :browser, :data_name, :l_dir
33
+
34
+ class CLI < Thor
35
+ def initialize(*args)
36
+ super
37
+ @data_name=['nick_name','local_dir','local_uri','global_dir','global_uri']
38
+ data_path = File.join(ENV['HOME'], '.hikirc')
39
+ DataFiles.prepare(data_path)
40
+
41
+ ...以下略...
42
+ end
43
+ \end{lstlisting}
44
+ \subsubsection{コマンド定義}
45
+ \begin{figure}[htbp]\begin{center}
46
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.004.jpg}
47
+ \caption{thorにおけるコマンド記述のひな形.}
48
+ \label{default}\end{center}\end{figure}
49
+ thorではoptparseのような登録処理はない.図にある通りにコマンドが記述され,それらは以下のように構成される.
50
+
51
+ \begin{enumerate}
52
+ \item desc以降にコマンド名と,その説明が記述される.これらはコマンドhelpで一覧として表示させる
53
+ \item mapによって別のコマンド名でも実行できるように定義される.
54
+ \item defで定義されたメソッドの実行コード
55
+ \end{enumerate}
56
+ Thorではdescで一覧を表示されるコマンド名,コマンドの説明を登録する.しかし,ここで記述したコマンドは単に一覧で表示させるためのものであり,実際に実行される時に呼び出すコマンド名は,defで定義された名前である.Thorでは処理実行を行うメソッド名がコマンド名となり,コマンド名1つが対応する.
57
+
58
+ これに別名を与えるために利用されるキーワードがmapである.
59
+ \begin{quote}\begin{verbatim}
60
+ map A => B
61
+ \end{verbatim}\end{quote}
62
+ mapとはBと呼ばれるメソッドをAでも呼べるようにしてくれるものである.
63
+ よって,これを使うことでコマンドの別名を指定することができる.
64
+ \begin{lstlisting}[style=customRuby]
65
+ desc 'show,--show', 'show sources'
66
+ map "--show" => "show"
67
+ def show
68
+ printf("target_no:%i\n",@src[:target])
69
+ printf("editor_command:%s\n",@src[:editor_command])
70
+ ,,,以下略...
71
+ end
72
+ \end{lstlisting}
73
+ 以上より,Thorではコマンドの指定と処理にはdesc,map,処理メソッドだけで済む.optparseではコマンドを登録するためのメソッドと処理メソッドの両方が必要になっていた.一方Thorでは,処理メソッドが直接コマンド名となるため記述が簡潔になる.
74
+
75
+ \subsubsection{CLIの実行プロセス}
76
+ \begin{figure}[htbp]\begin{center}
77
+ \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.006.jpg}
78
+ \caption{CLIの実行プロセス.}
79
+ \label{default}\end{center}\end{figure}
80
+ Thorにおけるcliの実行プロセスは次の通りである.
81
+
82
+ \begin{enumerate}
83
+ \item hiki\_thorのHikithor::CLI.start(ARGV)でhikiutils\_thor.rbのCLIクラスを呼ぶ
84
+ \item hikiutils\_thor.rbのCLIクラスのメソッドを順に実行していく
85
+ \end{enumerate}
86
+ Thorではstart(ARGV)を呼び出すことでCLIを開始する.Hikithor::CLI.start(ARGV)を実行されることによりrequireで呼ばれているhikiutils\_thor.rbのCLIコマンドを順に実行する.そして,入力されたコマンドと一致するメソッドを探し,そのコマンドの処理が実行される.
87
+ \begin{lstlisting}[style=customRuby]
88
+ #!/usr/bin/env ruby
89
+
90
+ require "hikiutils_thor"
91
+
92
+ Hikithor::CLI.start(ARGV)
93
+ \end{lstlisting}\begin{quote}\begin{verbatim}
94
+
95
+ module Hikithor
96
+
97
+ DATA_FILE=File.join(ENV['HOME'],'.hikirc')
98
+ attr_accessor :src, :target, :editor_command, :browser, :data_name, :l_dir
99
+
100
+ class CLI < Thor
101
+ def initialize(*args)
102
+ super
103
+ @data_name=['nick_name','local_dir','local_uri','global_dir','global_uri']
104
+ data_path = File.join(ENV['HOME'], '.hikirc')
105
+ DataFiles.prepare(data_path)
106
+ ...以下略...
107
+ \end{verbatim}\end{quote}
108
+ Thorではクラスのメソッドを順に実行していくためrunメソッドとexecuteメソッドは必要ない.また,optparseでの実行手順はメソッドの移動回数が多く複雑であるが,Thorは単純で分かりやすいものとなっている.
109
+
110
+ \subsubsection{optparseとの全体的な比較}
111
+ コードからもThorのほうが短くなっていることが分かる.よって,Thorとoptparseでのコードの違いは以上の部分になるが全体的にもThorのほうがコードが短くなり,コマンドの定義も簡単に行うことができる.また,実行手順も分かりやすくコードが読みやすいため書き換えもすぐ行うことができるので,より直感的なコマンドを実装することも可能となった.
112
+
@@ -0,0 +1,113 @@
1
+ {{toc}}
2
+ !既存のhikiutilsのコマンド解説
3
+ 既存のhikiutilsはコマンド解析ライブラリのoptparseを用いて,コマンドの処理を行っている.
4
+ optparseの特徴は,「コマンドの登録,実行method」に分けて記述することが期待されている.
5
+ また,CLIの起動の仕方が特徴的である.この二つを取り出して,動作とコードを説明する.
6
+
7
+ !!コマンドの登録と実行メソッド
8
+
9
+ !!!caption:コマンドの登録と実行メソッドの対応
10
+ {{attach_view(hikiutils_yamane_09_copy.005.jpg,hikiutils_yamane)}}
11
+
12
+ optparseでは以下の通り,コマンドの登録と実行が行われる.
13
+ #OptionParserオブジェクトoptを生成
14
+ #optにコマンドを登録
15
+ #入力されたコマンドの処理のメソッドへ移動
16
+ optparseではOptionParserオブジェクトoptの生成を行い,コマンドをoptに登録することでコマンドを作成することができる.しかし,これはコマンドを登録しているだけでコマンドの一覧ではこれを表示することができるが,コマンドの実行を行うためには実行を行うためのメソッドを作成する必要がある.optparseでのコマンドの実行はoptで登録されたコマンドが入力されることでそれぞれのコマンドの処理を行うメソッドに移動し処理を行う.しかし,このコマンド登録はハイフンを付けたコマンドしか登録ができず,ハイフンなしのコマンド登録はまた別の手段でやらなくてはいけない.
17
+
18
+
19
+ <<< ruby
20
+ def execute
21
+ @argv << '--help' if @argv.size==0
22
+ command_parser = OptionParser.new do |opt|
23
+ opt.on('-v', '--version','show program Version.') { |v|
24
+ opt.version = HikiUtils::VERSION
25
+ puts opt.ver
26
+ }
27
+ opt.on('-s', '--show','show sources') {show_sources}
28
+ opt.on('-a', '--add','add sources info') {add_sources }
29
+ opt.on('-t', '--target VAL','set target id') {|val| set_target(val)}
30
+ opt.on('-e', '--edit FILE','open file') {|file| edit_file(file) }
31
+
32
+ ...省略...
33
+
34
+ end
35
+ begin
36
+ command_parser.parse!(@argv)
37
+ rescue=> eval
38
+ p eval
39
+ end
40
+ dump_sources
41
+ exit
42
+ end
43
+
44
+ def show_sources()
45
+ printf("target_no:%i\n",@src[:target])
46
+ printf("editor_command:%s\n",@src[:editor_command])
47
+
48
+ ...省略...
49
+
50
+ end
51
+
52
+ 以下略
53
+
54
+ >>>
55
+
56
+ !!CLIの実行プロセス
57
+ !!!caption:CLIの実行プロセス.
58
+ {{attach_view(hikiutils_yamane_09_copy.007.jpg,hikiutils_yamane)}}
59
+
60
+ optparseを用いた場合のCLIの実行プロセスは次の通りとなる.
61
+ #HikiのHikiUtils::Command.run(ARGV)でhikiutils.rbのrunメソッドを呼ぶ
62
+ #new(argv).executeでexecuteメソッドが実行される
63
+
64
+ optparseではHikiutils::Command.run(ARGV)を実行される.requireで呼び出されたhikiutils.rbでrunメソッドが実行される.そこでコマンドを登録しているexecuteメソッドへ移動し入力したコマンドと対応させる.そして,対応したコマンドの処理が行われるメソッドに移動することで実行される.このようにoptparseでは実行を行うためのメソッドが必要であるが,
65
+ !!コード
66
+
67
+ *optparse
68
+ <<< ruby
69
+ #!/usr/bin/env ruby
70
+
71
+ require "hikiutils"
72
+
73
+ HikiUtils::Command.run(ARGV)
74
+ >>>
75
+ <<< ruby
76
+ def self.run(argv=[])
77
+ print "hikiutils: provide utilities for helping hiki editing.\n"
78
+ new(argv).execute
79
+ end
80
+
81
+ def execute
82
+ @argv << '--help' if @argv.size==0
83
+ command_parser = OptionParser.new do |opt|
84
+ opt.on('-v', '--version','show program Version.') { |v|
85
+ opt.version = HikiUtils::VERSION
86
+ puts opt.ver
87
+ }
88
+ opt.on('-s', '--show','show sources') {show_sources}
89
+ opt.on('-a', '--add','add sources info') {add_sources }
90
+ opt.on('-t', '--target VAL','set target id') {|val| set_target(val) }
91
+ opt.on('-e', '--edit FILE','open file') {|file| edit_file(file) }
92
+ opt.on('-l', '--list [FILE]','list files') {|file| list_files(file) }
93
+ opt.on('-u', '--update FILE','update file') {|file| update_file(file) }
94
+ opt.on('-r', '--rsync','rsync files') {rsync_files}
95
+ opt.on('--database FILE','read database file') {|file| db_file(file)}
96
+ opt.on('--display FILE','display converted hikifile') {|file| display(f\
97
+ ile)}
98
+ opt.on('-c', '--checkdb','check database file') {check_db}
99
+ opt.on('--remove FILE','remove file') {|file| remove_file(file)}
100
+ opt.on('--move FILES','move file1,file2',Array) {|files| move_file(file\
101
+ s)}
102
+ opt.on('--euc FILE','translate file to euc') {|file| euc_file(file) }
103
+ opt.on('--initialize','initialize source directory') {dir_init() }
104
+ end
105
+ begin
106
+ command_parser.parse!(@argv)
107
+ rescue=> eval
108
+ p eval
109
+ end
110
+ dump_sources
111
+ exit
112
+ end
113
+ >>>
@@ -0,0 +1,108 @@
1
+ !Thorによる実装
2
+ 手法のところで概観した通り,thorを用いることで記述の簡略化が期待できる.ここでは,実際に書き換える前後,すなわちoptparse版とthor版の対応するコードを比較することで,以下の具体的な違い
3
+ *クラス初期化
4
+ *コマンド定義
5
+ *CLIの実行プロセス
6
+ について詳しく検討を行う.
7
+
8
+ !!クラス初期化
9
+
10
+ !!!caption:Thorのinitializeでのコード
11
+ {{attach_view(hikiutils_yamane_09_copy.003.jpg,hikiutils_yamane)}}
12
+
13
+ Thorのinitializeでのコードはつぎの通りである.
14
+ #Hikithor::CLI.start(ARGV)が呼ばれる
15
+ #initializeメソッドが呼ばれる
16
+ #これではThorのinitializeメソッドが呼ばれない
17
+ #superを書くことでThorのinitializeメソッドが呼ばれる
18
+ optparseではrequireでoptparseを呼びoptparseのinitializeを定義する必要はないが,Thorはinitializeを定義する必要がある.Thorの定義方法はrequireでThorを呼びCLIクラスで継承し,initializeメソッドにsuperを書くことでThorのinitializeが呼ばれる.initializeメソッド内ではThorの初期設定がされていないため,スーパークラスのメソッドを読み出してくれるsuperを書き加えることで図のようにinitializeメソッド内でThorのinitilalizeメソッドが呼ばれ定義される.
19
+
20
+ <<< ruby
21
+
22
+ module Hikithor
23
+
24
+ DATA_FILE=File.join(ENV['HOME'],'.hikirc')
25
+ attr_accessor :src, :target, :editor_command, :browser, :data_name, :l_dir
26
+
27
+ class CLI < Thor
28
+ def initialize(*args)
29
+ super
30
+ @data_name=['nick_name','local_dir','local_uri','global_dir','global_uri']
31
+ data_path = File.join(ENV['HOME'], '.hikirc')
32
+ DataFiles.prepare(data_path)
33
+
34
+ ...以下略...
35
+ end
36
+ >>>
37
+
38
+ !!コマンド定義
39
+
40
+ !!!caption:thorにおけるコマンド記述のひな形.
41
+ {{attach_view(hikiutils_yamane_09_copy.004.jpg,hikiutils_yamane)}}
42
+
43
+ thorではoptparseのような登録処理はない.図にある通りにコマンドが記述され,それらは以下のように構成される.
44
+ #desc以降にコマンド名と,その説明が記述される.これらはコマンドhelpで一覧として表示させる
45
+ #mapによって別のコマンド名でも実行できるように定義される.
46
+ #defで定義されたメソッドの実行コード
47
+
48
+ Thorではdescで一覧を表示されるコマンド名,コマンドの説明を登録する.しかし,ここで記述したコマンドは単に一覧で表示させるためのものであり,実際に実行される時に呼び出すコマンド名は,defで定義された名前である.Thorでは処理実行を行うメソッド名がコマンド名となり,コマンド名1つが対応する.
49
+
50
+ これに別名を与えるために利用されるキーワードがmapである.
51
+ <<<
52
+ map A => B
53
+ >>>
54
+ mapとはBと呼ばれるメソッドをAでも呼べるようにしてくれるものである.
55
+ よって,これを使うことでコマンドの別名を指定することができる.
56
+
57
+ <<< ruby
58
+ desc 'show,--show', 'show sources'
59
+ map "--show" => "show"
60
+ def show
61
+ printf("target_no:%i\n",@src[:target])
62
+ printf("editor_command:%s\n",@src[:editor_command])
63
+ ,,,以下略...
64
+ end
65
+ >>>
66
+
67
+ 以上より,Thorではコマンドの指定と処理にはdesc,map,処理メソッドだけで済む.optparseではコマンドを登録するためのメソッドと処理メソッドの両方が必要になっていた.一方Thorでは,処理メソッドが直接コマンド名となるため記述が簡潔になる.
68
+
69
+ !!CLIの実行プロセス
70
+
71
+
72
+ !!!caption:CLIの実行プロセス.
73
+ {{attach_view(hikiutils_yamane_09_copy.006.jpg,hikiutils_yamane)}}
74
+
75
+ Thorにおけるcliの実行プロセスは次の通りである.
76
+ #hiki_thorのHikithor::CLI.start(ARGV)でhikiutils_thor.rbのCLIクラスを呼ぶ
77
+ #hikiutils_thor.rbのCLIクラスのメソッドを順に実行していく
78
+
79
+ Thorではstart(ARGV)を呼び出すことでCLIを開始する.Hikithor::CLI.start(ARGV)を実行されることによりrequireで呼ばれているhikiutils_thor.rbのCLIコマンドを順に実行する.そして,入力されたコマンドと一致するメソッドを探し,そのコマンドの処理が実行される.
80
+
81
+ <<< ruby
82
+ #!/usr/bin/env ruby
83
+
84
+ require "hikiutils_thor"
85
+
86
+ Hikithor::CLI.start(ARGV)
87
+ >>>
88
+
89
+ <<<
90
+
91
+ module Hikithor
92
+
93
+ DATA_FILE=File.join(ENV['HOME'],'.hikirc')
94
+ attr_accessor :src, :target, :editor_command, :browser, :data_name, :l_dir
95
+
96
+ class CLI < Thor
97
+ def initialize(*args)
98
+ super
99
+ @data_name=['nick_name','local_dir','local_uri','global_dir','global_uri']
100
+ data_path = File.join(ENV['HOME'], '.hikirc')
101
+ DataFiles.prepare(data_path)
102
+ ...以下略...
103
+ >>>
104
+
105
+ Thorではクラスのメソッドを順に実行していくためrunメソッドとexecuteメソッドは必要ない.また,optparseでの実行手順はメソッドの移動回数が多く複雑であるが,Thorは単純で分かりやすいものとなっている.
106
+
107
+ !!optparseとの全体的な比較
108
+ コードからもThorのほうが短くなっていることが分かる.よって,Thorとoptparseでのコードの違いは以上の部分になるが全体的にもThorのほうがコードが短くなり,コマンドの定義も簡単に行うことができる.また,実行手順も分かりやすくコードが読みやすいため書き換えもすぐ行うことができるので,より直感的なコマンドを実装することも可能となった.
@@ -1,22 +1,20 @@
1
1
  !1:概要
2
- !2:目的
2
+ !2:序論
3
3
  !3:方法
4
- !!3.1:既存システムの説明
4
+ !!3.1:optparseとthorの比較
5
+ !!!3.1.1:optparse
6
+ !!!3.1.2:Thor
7
+ !!3.2:既存のhikiutilsのコマンド解説
8
+ !!!3.2.1:コマンドの登録と実行メソッド
9
+ !!!3.2.2:CLIの実行プロセス
10
+ !!!3.2.3:コード
5
11
  !4:結果
6
12
  !!4.1:コマンドの命名原則
7
- !!4.2:hikiutilsがあらかじめ想定している利用形態
8
- !!4.3:コメンド名と振る舞いの詳細
9
- !!4.4:CLIの解説
10
- !!!4.4.1:Thor
11
- !!!4.4.2:optparse
12
- !!4.5:Thorの初期化
13
- !!!4.5.1:コード
14
- !!4.6:コマンド表示と処理
15
- !!!4.6.1:Thor
16
- !!!4.6.2:optparse
17
- !!!4.6.3:コード
18
- !!4.7:CLIの実行
19
- !!!4.7.1:Thor
20
- !!!4.7.2:optparse
21
- !!!4.7.3:コード
13
+ !!!4.1.1:hikiutilsの想定利用形態
14
+ !!!4.1.2:コメンド名と振る舞いの詳細
15
+ !!4.2:Thorによる実装
16
+ !!!4.2.1:クラス初期化
17
+ !!!4.2.2:コマンド定義
18
+ !!!4.2.3:CLIの実行プロセス
19
+ !!!4.2.4:optparseとの全体的な比較
22
20
  !5:参考文献
@@ -1,3 +1,3 @@
1
1
  module HikiUtils
2
- VERSION = "0.2.3.8"
2
+ VERSION = "0.2.3.9"
3
3
  end
@@ -32,9 +32,9 @@ task :reset_hiki do
32
32
  stdout.split("\n").each{|line|
33
33
  files << line.split(/\s+/)[-1]
34
34
  }
35
- r_files = files.reverse[0..-5]
35
+ p r_files = files.reverse[0..-4]
36
36
  r_files.each{|file|
37
- print "remove #{file}[ynql]?"
37
+ print "remove #{file}[ynqlA]?"
38
38
  input=STDIN.gets.chomp
39
39
  case input
40
40
  when 'y'
@@ -46,6 +46,17 @@ task :reset_hiki do
46
46
  system command
47
47
  when 'q'
48
48
  exit
49
+ when 'A'
50
+ print "\nAre you sure?[Yn]"
51
+ input2 = STDIN.gets.chomp
52
+ case input2
53
+ when 'Y'
54
+ r_files.each{|file| system "hiki --remove #{file}"}
55
+ p target = File.join($hiki_dir,'cache','attach',$basename)
56
+ exit
57
+ when 'n'
58
+ exit
59
+ end
49
60
  end
50
61
  }
51
62
  end
@@ -149,7 +160,8 @@ def check_section_layers(lines)
149
160
  end
150
161
 
151
162
  def check_bounding_box
152
- $bounding_box="0 0 442 432"
163
+ # $bounding_box="0 0 442 432"
164
+ $bounding_box=" 0 0 737 453"
153
165
  end
154
166
 
155
167
  desc "すべてのhikiファイルをlatex変換"
@@ -215,7 +227,7 @@ def convert_to_latex(file_name, options={})
215
227
  cont = ""
216
228
  lines.each{|line|
217
229
  if m=line.match(/\\includegraphics\[width=6cm\]\{(.+)\}/)
218
- p line="\\includegraphics\[width=6cm,bb=#{$bounding_box}\]\{../figs/#{m[1]}\}\n"
230
+ p line="\\includegraphics\[width=10cm,bb=#{$bounding_box}\]\{../figs/#{m[1]}\}\n"
219
231
  cont << line
220
232
  else
221
233
  cont << line
@@ -20,8 +20,8 @@
20
20
  - rake syncによってhikiディレクトリーと同期が取られる
21
21
  - hiki -u TARGETによってブラウザー表示される
22
22
  - テキストの拡張子は'.hiki'
23
- - hikiでのurlはテキスト前とディレクトリーから自動生成される
24
- - 例えば,hiki2latex_saki/introduciton.hikiとするとhiki2latex_saki_introducitonと変換される
23
+ - hikiでのurlはテキスト名とディレクトリーから自動生成される
24
+ - 例えば,hiki2latex_saki/introduciton.hikihiki2latex_saki_introducitonと変換される
25
25
  :error:
26
26
  :opts:
27
27
  :short: "-e"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hikiutils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3.8
4
+ version: 0.2.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shigeto R. Nishitani
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-06 00:00:00.000000000 Z
11
+ date: 2017-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -305,6 +305,7 @@ files:
305
305
  - hikiutils_bob/figs/calphad_bob.pdf
306
306
  - hikiutils_bob/figs/hikiutils_bob.001.bb
307
307
  - hikiutils_bob/figs/hikiutils_bob.001.jpeg
308
+ - hikiutils_bob/figs/hikiutils_bob.002.bb
308
309
  - hikiutils_bob/figs/hikiutils_bob.002.jpeg
309
310
  - hikiutils_bob/figs/hikiutils_bob.003.jpeg
310
311
  - hikiutils_bob/figs/hikiutils_bob.004.jpeg
@@ -316,6 +317,7 @@ files:
316
317
  - hikiutils_bob/hikiutils_bob.hiki
317
318
  - hikiutils_bob/hikiutils_bob.key
318
319
  - hikiutils_bob/hikiutils_bob/hikiutils_bob.001.jpeg
320
+ - hikiutils_bob/hikiutils_bob/hikiutils_bob.002.bb
319
321
  - hikiutils_bob/hikiutils_bob/hikiutils_bob.002.jpeg
320
322
  - hikiutils_bob/hikiutils_bob/hikiutils_bob.003.jpeg
321
323
  - hikiutils_bob/hikiutils_bob/hikiutils_bob.004.jpeg
@@ -349,83 +351,67 @@ files:
349
351
  - hikiutils_yamane/backup/hikiutils_yamane_#hikiutils_yamane
350
352
  - hikiutils_yamane/backup/hikiutils_yamane_command_table
351
353
  - hikiutils_yamane/backup/hikiutils_yamane_introduction
352
- - hikiutils_yamane/clidescription.hiki
353
- - hikiutils_yamane/code.hiki
354
- - hikiutils_yamane/command_table.hiki
354
+ - hikiutils_yamane/command.hiki
355
355
  - hikiutils_yamane/compare.hiki
356
- - hikiutils_yamane/figs/hikiutils_yamane.001.jpeg
357
356
  - hikiutils_yamane/figs/hikiutils_yamane.001.jpg
358
- - hikiutils_yamane/figs/hikiutils_yamane.002.jpeg
357
+ - hikiutils_yamane/figs/hikiutils_yamane.002.bb
359
358
  - hikiutils_yamane/figs/hikiutils_yamane.002.jpg
360
- - hikiutils_yamane/figs/hikiutils_yamane.003.jpeg
361
359
  - hikiutils_yamane/figs/hikiutils_yamane.003.jpg
362
- - hikiutils_yamane/figs/hikiutils_yamane.004.jpeg
363
360
  - hikiutils_yamane/figs/hikiutils_yamane.004.jpg
364
- - hikiutils_yamane/figs/hikiutils_yamane.005.jpeg
365
361
  - hikiutils_yamane/figs/hikiutils_yamane.005.jpg
366
- - hikiutils_yamane/figs/hikiutils_yamane.006.jpeg
367
- - hikiutils_yamane/figs/hikiutils_yamane.007.jpeg
368
- - hikiutils_yamane/figs/hikiutils_yamane_09_copy.001.jpg
369
- - hikiutils_yamane/figs/hikiutils_yamane_09_copy.002.jpg
370
- - hikiutils_yamane/figs/hikiutils_yamane_09_copy.003.jpg
371
- - hikiutils_yamane/figs/hikiutils_yamane_09_copy.004.jpg
372
- - hikiutils_yamane/figs/hikiutils_yamane_09_copy.005.jpg
373
- - hikiutils_yamane/figs/hikiutils_yamane_09_copy.006.jpg
374
- - hikiutils_yamane/figs/hikiutils_yamane_09_copy.007.jpg
362
+ - hikiutils_yamane/figs/hikiutils_yamane.006.jpg
363
+ - hikiutils_yamane/figs/hikiutils_yamane.007.jpg
375
364
  - hikiutils_yamane/hiki_help.yml
376
365
  - hikiutils_yamane/hikiutils_yamane.hiki
377
- - hikiutils_yamane/hikiutils_yamane.key
378
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg
379
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg
380
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/110809_familychineseoahu_en_00317_2040x1360-96.jpeg
381
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/110809_familychineseoahu_en_02016_981x654-97.jpeg
382
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/110809_familychineseoahu_en_02390_2880x1921-94.jpeg
383
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/110809_familychineseoahu_en_02390_2880x1921-small-95.jpg
384
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/mt0@2x-102.jpg
385
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/mt10@2x-112.jpg
386
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/mt1@2x-103.jpg
387
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/mt2@2x-104.jpg
388
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/mt3@2x-105.jpg
389
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/mt4@2x-106.jpg
390
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/mt5@2x-107.jpg
391
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/mt6@2x-108.jpg
392
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/mt7@2x-109.jpg
393
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/mt8@2x-110.jpg
394
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/mt9@2x-111.jpg
395
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/pasted-image-100.tiff
396
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/pasted-image-98.tiff
397
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/pasted-image-small-101.png
398
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/pasted-image-small-99.png
399
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/st0-113.jpg
400
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/st1-114.jpg
401
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/st2-115.jpg
402
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/st3-116.jpg
403
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/st4-117.jpg
404
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/st5-118.jpg
405
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/st6-119.jpg
406
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Data/tile_paper_medgray-93.jpg
407
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Index.zip
408
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Metadata/BuildVersionHistory.plist
409
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Metadata/DocumentIdentifier
410
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/Metadata/Properties.plist
411
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/preview-micro.jpg
412
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/preview-web.jpg
413
- - hikiutils_yamane/hikiutils_yamane_09_copy.key/preview.jpg
414
- - hikiutils_yamane/hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.001.jpg
415
- - hikiutils_yamane/hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.002.jpg
416
- - hikiutils_yamane/hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.003.jpg
417
- - hikiutils_yamane/hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.004.jpg
418
- - hikiutils_yamane/hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.005.jpg
419
- - hikiutils_yamane/hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.006.jpg
420
- - hikiutils_yamane/hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.007.jpg
366
+ - hikiutils_yamane/hikiutils_yamane.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg
367
+ - hikiutils_yamane/hikiutils_yamane.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg
368
+ - hikiutils_yamane/hikiutils_yamane.key/Data/110809_familychineseoahu_en_00317_2040x1360-96.jpeg
369
+ - hikiutils_yamane/hikiutils_yamane.key/Data/110809_familychineseoahu_en_02016_981x654-97.jpeg
370
+ - hikiutils_yamane/hikiutils_yamane.key/Data/110809_familychineseoahu_en_02390_2880x1921-94.jpeg
371
+ - hikiutils_yamane/hikiutils_yamane.key/Data/110809_familychineseoahu_en_02390_2880x1921-small-95.jpg
372
+ - hikiutils_yamane/hikiutils_yamane.key/Data/mt0@2x-102.jpg
373
+ - hikiutils_yamane/hikiutils_yamane.key/Data/mt10@2x-112.jpg
374
+ - hikiutils_yamane/hikiutils_yamane.key/Data/mt1@2x-103.jpg
375
+ - hikiutils_yamane/hikiutils_yamane.key/Data/mt2@2x-104.jpg
376
+ - hikiutils_yamane/hikiutils_yamane.key/Data/mt3@2x-105.jpg
377
+ - hikiutils_yamane/hikiutils_yamane.key/Data/mt4@2x-106.jpg
378
+ - hikiutils_yamane/hikiutils_yamane.key/Data/mt5@2x-107.jpg
379
+ - hikiutils_yamane/hikiutils_yamane.key/Data/mt6@2x-108.jpg
380
+ - hikiutils_yamane/hikiutils_yamane.key/Data/mt7@2x-109.jpg
381
+ - hikiutils_yamane/hikiutils_yamane.key/Data/mt8@2x-110.jpg
382
+ - hikiutils_yamane/hikiutils_yamane.key/Data/mt9@2x-111.jpg
383
+ - hikiutils_yamane/hikiutils_yamane.key/Data/pasted-image-100.tiff
384
+ - hikiutils_yamane/hikiutils_yamane.key/Data/pasted-image-98.tiff
385
+ - hikiutils_yamane/hikiutils_yamane.key/Data/pasted-image-small-101.png
386
+ - hikiutils_yamane/hikiutils_yamane.key/Data/pasted-image-small-99.png
387
+ - hikiutils_yamane/hikiutils_yamane.key/Data/st0-113.jpg
388
+ - hikiutils_yamane/hikiutils_yamane.key/Data/st1-114.jpg
389
+ - hikiutils_yamane/hikiutils_yamane.key/Data/st2-115.jpg
390
+ - hikiutils_yamane/hikiutils_yamane.key/Data/st3-116.jpg
391
+ - hikiutils_yamane/hikiutils_yamane.key/Data/st4-117.jpg
392
+ - hikiutils_yamane/hikiutils_yamane.key/Data/st5-118.jpg
393
+ - hikiutils_yamane/hikiutils_yamane.key/Data/st6-119.jpg
394
+ - hikiutils_yamane/hikiutils_yamane.key/Data/tile_paper_medgray-93.jpg
395
+ - hikiutils_yamane/hikiutils_yamane.key/Index.zip
396
+ - hikiutils_yamane/hikiutils_yamane.key/Metadata/BuildVersionHistory.plist
397
+ - hikiutils_yamane/hikiutils_yamane.key/Metadata/DocumentIdentifier
398
+ - hikiutils_yamane/hikiutils_yamane.key/Metadata/Properties.plist
399
+ - hikiutils_yamane/hikiutils_yamane.key/preview-micro.jpg
400
+ - hikiutils_yamane/hikiutils_yamane.key/preview-web.jpg
401
+ - hikiutils_yamane/hikiutils_yamane.key/preview.jpg
402
+ - hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.001.jpg
403
+ - hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.002.jpg
404
+ - hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.003.jpg
405
+ - hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.004.jpg
406
+ - hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.005.jpg
407
+ - hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.006.jpg
408
+ - hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.007.jpg
421
409
  - hikiutils_yamane/introduction.hiki
422
410
  - hikiutils_yamane/latex_dir/abstract.aux
423
411
  - hikiutils_yamane/latex_dir/abstract.tex
424
- - hikiutils_yamane/latex_dir/clidescription.aux
425
- - hikiutils_yamane/latex_dir/clidescription.tex
426
- - hikiutils_yamane/latex_dir/code.aux
427
- - hikiutils_yamane/latex_dir/code.tex
428
- - hikiutils_yamane/latex_dir/command_table.tex
412
+ - hikiutils_yamane/latex_dir/command.aux
413
+ - hikiutils_yamane/latex_dir/command.tex
414
+ - hikiutils_yamane/latex_dir/compare.aux
429
415
  - hikiutils_yamane/latex_dir/compare.tex
430
416
  - hikiutils_yamane/latex_dir/head.tex
431
417
  - hikiutils_yamane/latex_dir/hikiutils_yamane.aux
@@ -434,19 +420,14 @@ files:
434
420
  - hikiutils_yamane/latex_dir/hikiutils_yamane.synctex.gz
435
421
  - hikiutils_yamane/latex_dir/hikiutils_yamane.tex
436
422
  - hikiutils_yamane/latex_dir/hikiutils_yamane.toc
423
+ - hikiutils_yamane/latex_dir/introduction.aux
437
424
  - hikiutils_yamane/latex_dir/introduction.tex
438
- - hikiutils_yamane/latex_dir/method.aux
439
- - hikiutils_yamane/latex_dir/method.tex
440
- - hikiutils_yamane/latex_dir/purpose.aux
441
- - hikiutils_yamane/latex_dir/purpose.tex
442
- - hikiutils_yamane/latex_dir/results.aux
443
- - hikiutils_yamane/latex_dir/results.tex
444
- - hikiutils_yamane/latex_dir/system.tex
445
- - hikiutils_yamane/method.hiki
446
- - hikiutils_yamane/mi
447
- - hikiutils_yamane/purpose.hiki
448
- - hikiutils_yamane/results.hiki
449
- - hikiutils_yamane/system.hiki
425
+ - hikiutils_yamane/latex_dir/optparse.aux
426
+ - hikiutils_yamane/latex_dir/optparse.tex
427
+ - hikiutils_yamane/latex_dir/thor.aux
428
+ - hikiutils_yamane/latex_dir/thor.tex
429
+ - hikiutils_yamane/optparse.hiki
430
+ - hikiutils_yamane/thor.hiki
450
431
  - hikiutils_yamane/toc.hiki
451
432
  - lib/hikiutils.rb
452
433
  - lib/hikiutils.rb~