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.
- checksums.yaml +4 -4
- data/hikiutils_bob/Rakefile +16 -4
- data/hikiutils_bob/figs/hikiutils_bob.002.bb +5 -0
- data/hikiutils_bob/hikiutils_bob/hikiutils_bob.002.bb +5 -0
- data/hikiutils_bob/latex_all.hiki +3 -3
- data/hikiutils_bob/latex_dir/hikiutils_bob.log +59 -24
- data/hikiutils_bob/latex_dir/hikiutils_bob.pdf +0 -0
- data/hikiutils_bob/latex_dir/hikiutils_bob.synctex.gz +0 -0
- data/hikiutils_bob/latex_dir/latex_all.tex +3 -3
- data/hikiutils_bob/latex_dir/sync.aux +1 -1
- data/hikiutils_bob/latex_dir/sync.tex +17 -13
- data/hikiutils_bob/sync.hiki +9 -6
- data/hikiutils_bob/toc.hiki +19 -15
- data/hikiutils_yamane/{results.hiki → command.hiki} +11 -13
- data/hikiutils_yamane/compare.hiki +13 -297
- data/hikiutils_yamane/figs/hikiutils_yamane.001.jpg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane.002.bb +5 -0
- data/hikiutils_yamane/figs/hikiutils_yamane.002.jpg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane.003.jpg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane.004.jpg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane.005.jpg +0 -0
- data/hikiutils_yamane/hikiutils_yamane.hiki +8 -7
- data/hikiutils_yamane/introduction.hiki +9 -26
- data/hikiutils_yamane/latex_dir/command.aux +34 -0
- data/hikiutils_yamane/latex_dir/{results.tex → command.tex} +10 -22
- data/hikiutils_yamane/latex_dir/compare.aux +24 -0
- data/hikiutils_yamane/latex_dir/compare.tex +13 -333
- data/hikiutils_yamane/latex_dir/hikiutils_yamane.aux +8 -7
- data/hikiutils_yamane/latex_dir/hikiutils_yamane.log +126 -87
- data/hikiutils_yamane/latex_dir/hikiutils_yamane.pdf +0 -0
- data/hikiutils_yamane/latex_dir/hikiutils_yamane.synctex.gz +0 -0
- data/hikiutils_yamane/latex_dir/hikiutils_yamane.tex +6 -5
- data/hikiutils_yamane/latex_dir/hikiutils_yamane.toc +25 -21
- data/hikiutils_yamane/latex_dir/{purpose.aux → introduction.aux} +6 -4
- data/hikiutils_yamane/latex_dir/introduction.tex +7 -29
- data/hikiutils_yamane/latex_dir/optparse.aux +29 -0
- data/hikiutils_yamane/latex_dir/optparse.tex +116 -0
- data/hikiutils_yamane/latex_dir/thor.aux +32 -0
- data/hikiutils_yamane/latex_dir/thor.tex +112 -0
- data/hikiutils_yamane/optparse.hiki +113 -0
- data/hikiutils_yamane/thor.hiki +108 -0
- data/hikiutils_yamane/toc.hiki +15 -17
- data/lib/hikiutils/version.rb +1 -1
- data/lib/templates/Rakefile_hiki_sync +16 -4
- data/lib/templates/hiki_help.yml +2 -2
- metadata +61 -80
- data/hikiutils_yamane/clidescription.hiki +0 -35
- data/hikiutils_yamane/code.hiki +0 -285
- data/hikiutils_yamane/command_table.hiki +0 -19
- data/hikiutils_yamane/figs/hikiutils_yamane.001.jpeg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane.002.jpeg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane.003.jpeg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane.004.jpeg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane.005.jpeg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane.006.jpeg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane.007.jpeg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.001.jpg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.002.jpg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.003.jpg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.004.jpg +0 -0
- data/hikiutils_yamane/figs/hikiutils_yamane_09_copy.005.jpg +0 -0
- data/hikiutils_yamane/hikiutils_yamane.key +0 -0
- data/hikiutils_yamane/latex_dir/clidescription.aux +0 -24
- data/hikiutils_yamane/latex_dir/clidescription.tex +0 -41
- data/hikiutils_yamane/latex_dir/code.aux +0 -41
- data/hikiutils_yamane/latex_dir/code.tex +0 -319
- data/hikiutils_yamane/latex_dir/command_table.tex +0 -29
- data/hikiutils_yamane/latex_dir/method.aux +0 -25
- data/hikiutils_yamane/latex_dir/method.tex +0 -14
- data/hikiutils_yamane/latex_dir/purpose.tex +0 -8
- data/hikiutils_yamane/latex_dir/results.aux +0 -28
- data/hikiutils_yamane/latex_dir/system.tex +0 -23
- data/hikiutils_yamane/method.hiki +0 -12
- data/hikiutils_yamane/mi +0 -0
- data/hikiutils_yamane/purpose.hiki +0 -7
- data/hikiutils_yamane/system.hiki +0 -18
- /data/hikiutils_yamane/figs/{hikiutils_yamane_09_copy.006.jpg → hikiutils_yamane.006.jpg} +0 -0
- /data/hikiutils_yamane/figs/{hikiutils_yamane_09_copy.007.jpg → hikiutils_yamane.007.jpg} +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.001.jpg → hikiutils_yamane/hikiutils_yamane.001.jpg} +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.002.jpg → hikiutils_yamane/hikiutils_yamane.002.jpg} +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.003.jpg → hikiutils_yamane/hikiutils_yamane.003.jpg} +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.004.jpg → hikiutils_yamane/hikiutils_yamane.004.jpg} +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.005.jpg → hikiutils_yamane/hikiutils_yamane.005.jpg} +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.006.jpg → hikiutils_yamane/hikiutils_yamane.006.jpg} +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy/hikiutils_yamane_09_copy.007.jpg → hikiutils_yamane/hikiutils_yamane.007.jpg} +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_familychineseoahu_en_00317_2040x1360-96.jpeg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_familychineseoahu_en_02016_981x654-97.jpeg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_familychineseoahu_en_02390_2880x1921-94.jpeg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/110809_familychineseoahu_en_02390_2880x1921-small-95.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt0@2x-102.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt10@2x-112.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt1@2x-103.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt2@2x-104.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt3@2x-105.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt4@2x-106.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt5@2x-107.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt6@2x-108.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt7@2x-109.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt8@2x-110.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/mt9@2x-111.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/pasted-image-100.tiff +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/pasted-image-98.tiff +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/pasted-image-small-101.png +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/pasted-image-small-99.png +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st0-113.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st1-114.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st2-115.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st3-116.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st4-117.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st5-118.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/st6-119.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Data/tile_paper_medgray-93.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Index.zip +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Metadata/BuildVersionHistory.plist +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Metadata/DocumentIdentifier +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/Metadata/Properties.plist +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/preview-micro.jpg +0 -0
- /data/hikiutils_yamane/{hikiutils_yamane_09_copy.key → hikiutils_yamane.key}/preview-web.jpg +0 -0
- /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のほうがコードが短くなり,コマンドの定義も簡単に行うことができる.また,実行手順も分かりやすくコードが読みやすいため書き換えもすぐ行うことができるので,より直感的なコマンドを実装することも可能となった.
|
data/hikiutils_yamane/toc.hiki
CHANGED
@@ -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
|
-
|
8
|
-
|
9
|
-
!!4.
|
10
|
-
!!!4.
|
11
|
-
!!!4.
|
12
|
-
|
13
|
-
!!!4.
|
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:参考文献
|
data/lib/hikiutils/version.rb
CHANGED
@@ -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..-
|
35
|
+
p r_files = files.reverse[0..-4]
|
36
36
|
r_files.each{|file|
|
37
|
-
print "remove #{file}[
|
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=
|
230
|
+
p line="\\includegraphics\[width=10cm,bb=#{$bounding_box}\]\{../figs/#{m[1]}\}\n"
|
219
231
|
cont << line
|
220
232
|
else
|
221
233
|
cont << line
|
data/lib/templates/hiki_help.yml
CHANGED
@@ -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
|
23
|
+
- hikiでのurlはテキスト名とディレクトリーから自動生成される
|
24
|
+
- 例えば,hiki2latex_saki/introduciton.hikiはhiki2latex_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.
|
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-
|
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/
|
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.
|
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.
|
367
|
-
- hikiutils_yamane/figs/hikiutils_yamane.007.
|
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/
|
379
|
-
- hikiutils_yamane/
|
380
|
-
- hikiutils_yamane/
|
381
|
-
- hikiutils_yamane/
|
382
|
-
- hikiutils_yamane/
|
383
|
-
- hikiutils_yamane/
|
384
|
-
- hikiutils_yamane/
|
385
|
-
- hikiutils_yamane/
|
386
|
-
- hikiutils_yamane/
|
387
|
-
- hikiutils_yamane/
|
388
|
-
- hikiutils_yamane/
|
389
|
-
- hikiutils_yamane/
|
390
|
-
- hikiutils_yamane/
|
391
|
-
- hikiutils_yamane/
|
392
|
-
- hikiutils_yamane/
|
393
|
-
- hikiutils_yamane/
|
394
|
-
- hikiutils_yamane/
|
395
|
-
- hikiutils_yamane/
|
396
|
-
- hikiutils_yamane/
|
397
|
-
- hikiutils_yamane/
|
398
|
-
- hikiutils_yamane/
|
399
|
-
- hikiutils_yamane/
|
400
|
-
- hikiutils_yamane/
|
401
|
-
- hikiutils_yamane/
|
402
|
-
- hikiutils_yamane/
|
403
|
-
- hikiutils_yamane/
|
404
|
-
- hikiutils_yamane/
|
405
|
-
- hikiutils_yamane/
|
406
|
-
- hikiutils_yamane/
|
407
|
-
- hikiutils_yamane/
|
408
|
-
- hikiutils_yamane/
|
409
|
-
- hikiutils_yamane/
|
410
|
-
- hikiutils_yamane/
|
411
|
-
- hikiutils_yamane/
|
412
|
-
- hikiutils_yamane/
|
413
|
-
- hikiutils_yamane/
|
414
|
-
- hikiutils_yamane/
|
415
|
-
- hikiutils_yamane/
|
416
|
-
- hikiutils_yamane/
|
417
|
-
- hikiutils_yamane/
|
418
|
-
- hikiutils_yamane/
|
419
|
-
- hikiutils_yamane/
|
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/
|
425
|
-
- hikiutils_yamane/latex_dir/
|
426
|
-
- hikiutils_yamane/latex_dir/
|
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/
|
439
|
-
- hikiutils_yamane/latex_dir/
|
440
|
-
- hikiutils_yamane/latex_dir/
|
441
|
-
- hikiutils_yamane/latex_dir/
|
442
|
-
- hikiutils_yamane/
|
443
|
-
- hikiutils_yamane/
|
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~
|