hikiutils 0.2.3.12 → 0.2.3.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/hikiutils_bob/Rakefile +3 -2
  3. data/hikiutils_yamane/Rakefile +148 -30
  4. data/hikiutils_yamane/Rakefile~ +477 -0
  5. data/hikiutils_yamane/command.hiki +13 -13
  6. data/hikiutils_yamane/compare.hiki +96 -5
  7. data/hikiutils_yamane/figs/hikiutils_yamane.001.jpg +0 -0
  8. data/hikiutils_yamane/figs/hikiutils_yamane.002.jpg +0 -0
  9. data/hikiutils_yamane/figs/hikiutils_yamane.003.jpg +0 -0
  10. data/hikiutils_yamane/figs/hikiutils_yamane.004.jpg +0 -0
  11. data/hikiutils_yamane/figs/hikiutils_yamane.005.jpg +0 -0
  12. data/hikiutils_yamane/figs/hikiutils_yamane.006.jpg +0 -0
  13. data/hikiutils_yamane/figs/hikiutils_yamane.007.jpg +0 -0
  14. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.001.jpeg +0 -0
  15. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.002.jpeg +0 -0
  16. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.003.jpeg +0 -0
  17. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.004.jpeg +0 -0
  18. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.005.jpeg +0 -0
  19. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.006.jpeg +0 -0
  20. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.007.jpeg +0 -0
  21. data/hikiutils_yamane/hikiutils_yamane.hiki +6 -10
  22. data/hikiutils_yamane/introduction.hiki +5 -5
  23. data/hikiutils_yamane/latex_dir/%CA%FD/313/241.aux +21 -0
  24. data/hikiutils_yamane/latex_dir/abstract.aux +2 -2
  25. data/hikiutils_yamane/latex_dir/command.aux +15 -14
  26. data/hikiutils_yamane/latex_dir/command.log +0 -0
  27. data/hikiutils_yamane/latex_dir/command.tex +15 -14
  28. data/hikiutils_yamane/latex_dir/compare.aux +11 -5
  29. data/hikiutils_yamane/latex_dir/compare.tex +97 -5
  30. data/hikiutils_yamane/latex_dir/hikiutils_yamane.aux +6 -3
  31. data/hikiutils_yamane/latex_dir/hikiutils_yamane.log +113 -162
  32. data/hikiutils_yamane/latex_dir/hikiutils_yamane.pdf +0 -0
  33. data/hikiutils_yamane/latex_dir/hikiutils_yamane.synctex.gz +0 -0
  34. data/hikiutils_yamane/latex_dir/hikiutils_yamane.tex +15 -18
  35. data/hikiutils_yamane/latex_dir/hikiutils_yamane.toc +31 -26
  36. data/hikiutils_yamane/latex_dir/introduction.aux +6 -4
  37. data/hikiutils_yamane/latex_dir/introduction.tex +5 -4
  38. data/hikiutils_yamane/latex_dir/jlisting.sty +216 -0
  39. data/hikiutils_yamane/latex_dir/optparse.aux +11 -9
  40. data/hikiutils_yamane/latex_dir/optparse.tex +11 -8
  41. data/hikiutils_yamane/latex_dir/pre.tex +36 -0
  42. data/hikiutils_yamane/latex_dir/thor.aux +13 -13
  43. data/hikiutils_yamane/latex_dir/thor.tex +9 -11
  44. data/hikiutils_yamane/optparse.hiki +7 -6
  45. data/hikiutils_yamane/test.rb +10 -0
  46. data/hikiutils_yamane/thor.hiki +4 -5
  47. data/lib/hikiutils/version.rb +1 -1
  48. data/lib/hikiutils_thor.rb +39 -39
  49. data/lib/hikiutils_thor.rb~ +3 -4
  50. data/lib/templates/Rakefile_hiki_sync +3 -2
  51. metadata +15 -9
  52. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.001.jpg +0 -0
  53. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.002.jpg +0 -0
  54. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.003.jpg +0 -0
  55. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.004.jpg +0 -0
  56. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.005.jpg +0 -0
  57. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.006.jpg +0 -0
  58. data/hikiutils_yamane/hikiutils_yamane/hikiutils_yamane.007.jpg +0 -0
@@ -0,0 +1,216 @@
1
+ \NeedsTeXFormat{LaTeX2e}
2
+ \def\filedate{2006/02/20}
3
+ \def\fileversion{0.2}
4
+ \ProvidesPackage{jlisting}[\filedate\space\fileversion\space(Thor)]
5
+ %
6
+ \newcount\lst@nextchar
7
+ \let\lst@@ProcessSpace\lst@ProcessSpace
8
+ \def\lst@ProcessSpace#1{%
9
+ \lst@check@chartype{#1}%
10
+ \lst@@ProcessSpace
11
+ \lst@whitespacetrue}
12
+ \let\lst@@ProcessLetter\lst@ProcessLetter
13
+ \def\lst@ProcessLetter#1#2{%
14
+ \lst@check@chartype{#2}%
15
+ {\lst@@ProcessLetter{#1}}%
16
+ \relax}
17
+ \let\lst@@ProcessDigit\lst@ProcessDigit
18
+ \def\lst@ProcessDigit#1#2{%
19
+ \lst@check@chartype{#2}%
20
+ {\lst@@ProcessDigit{#1}}%
21
+ \relax}
22
+ \let\lst@@ProcessOther\lst@ProcessOther
23
+ \def\lst@ProcessOther#1#2{%
24
+ \lst@check@chartype{#2}%
25
+ {\lst@@ProcessOther{#1}}%
26
+ \relax}
27
+ \let\lst@@ProcessTabulator\lst@ProcessTabulator
28
+ \def\lst@ProcessTabulator#1{%
29
+ \lst@check@chartype{#1}%
30
+ \lst@@ProcessTabulator
31
+ \relax}
32
+ \def\lst@check@chartype#1#2#3{%
33
+ \edef\@tempa{\lst@nextchar=`\string#1\relax}%
34
+ \afterassignment\remove@to@nnil
35
+ \@tempa\@nnil
36
+ #2%
37
+ \ifnum\lst@nextchar<\@cclvi
38
+ #3%
39
+ \else
40
+ \lst@ifletter \else \lst@OutputOther \fi
41
+ \lst@whitespacefalse
42
+ \expandafter\lst@AppendJchar
43
+ \fi
44
+ #1}
45
+ \def\lst@AppendJchar#1#2{%
46
+ \lst@check@chartype{#2}%
47
+ {\advance\lst@length\@ne\lst@Append{#1}}%
48
+ \relax}
49
+ \def\lst@check@chartype@BOL#1{%
50
+ \edef\@tempa{\lst@nextchar=`\string#1\relax}%
51
+ \afterassignment\remove@to@nnil
52
+ \@tempa\@nnil
53
+ \ifnum\lst@nextchar<\@cclvi\else
54
+ \lst@whitespacefalse
55
+ \expandafter\lst@AppendJchar
56
+ \fi
57
+ #1}
58
+ \def\lst@InputListing#1{%
59
+ \begingroup
60
+ \lsthk@PreSet \gdef\lst@intname{#1}%
61
+ \expandafter\lstset\expandafter{\lst@set}%
62
+ \lsthk@DisplayStyle
63
+ \catcode\active=\active
64
+ \lst@Init\relax \let\lst@gobble\z@
65
+ \lst@SkipToFirst
66
+ \lst@ifprint \def\lst@next{\lst@get@filecontents{#1}}%
67
+ \else \let\lst@next\@empty
68
+ \fi
69
+ \lst@next
70
+ \lst@DeInit
71
+ \endgroup}
72
+ \newread\lst@inputfile
73
+ \def\lst@get@filecontents#1{%
74
+ \let\lst@filecontents\@empty
75
+ \openin\lst@inputfile=#1\relax
76
+ \let\@lst@get@filecontents@prevline\relax
77
+ \lst@get@filecontents@loop
78
+ \closein\lst@inputfile
79
+ \lst@filecontents\empty}
80
+ \def\lst@get@filecontents@loop{%
81
+ \read\lst@inputfile to\@lst@get@filecontents@currline
82
+ \ifx\@lst@get@filecontents@prevline\relax\else
83
+ \expandafter\expandafter\expandafter\def
84
+ \expandafter\expandafter\expandafter\lst@filecontents
85
+ \expandafter\expandafter\expandafter{%
86
+ \expandafter\lst@filecontents\@lst@get@filecontents@prevline}%
87
+ \fi
88
+ \let\@lst@get@filecontents@prevline\@lst@get@filecontents@currline
89
+ \ifeof\lst@inputfile\else
90
+ \expandafter\lst@get@filecontents@loop
91
+ \fi}
92
+ %%% [$B$3$N=hM}$b!$AjEv6/0z$G$9!%(B]
93
+ \def\lst@BOLGobble{%
94
+ \ifnum\lst@gobble>\z@
95
+ \@tempcnta\lst@gobble\relax
96
+ \expandafter\lst@BOLGobble@
97
+ \else
98
+ \expandafter\lst@check@chartype@BOL
99
+ \fi}
100
+ \def\lst@BOLGobble@#1{%
101
+ \let\lst@next#1%
102
+ \ifx \lst@next\relax\else
103
+ \ifx \lst@next\lst@MProcessListing\else
104
+ \ifx \lst@next\lst@ProcessFormFeed\else
105
+ \ifx \lst@next\lstenv@backslash
106
+ \let\lst@next\lstenv@BOLGobble@@
107
+ \else
108
+ \let\lst@next\lst@BOLGobble@@
109
+ \ifx #1\lst@ProcessTabulator
110
+ \advance\@tempcnta-\lst@tabsize\relax
111
+ \ifnum\@tempcnta<\z@
112
+ \lst@length-\@tempcnta \lst@PreGotoTabStop
113
+ \fi
114
+ \else
115
+ \edef\@tempa{\lst@nextchar=`\string#1\relax}%
116
+ \@tempa
117
+ \ifnum\lst@nextchar<\@cclvi\else
118
+ \advance\@tempcnta\m@ne
119
+ \fi
120
+ \advance\@tempcnta\m@ne
121
+ \fi
122
+ \fi \fi \fi \fi
123
+ \lst@next}
124
+ \def\lst@BOLGobble@@{%
125
+ \ifnum\@tempcnta>\z@
126
+ \expandafter\lst@BOLGobble@
127
+ \else
128
+ \expandafter\lst@check@chartype@BOL
129
+ \fi
130
+ }
131
+ %
132
+ % \begin{$B=$@5;v9`(B}{1.3}
133
+ % $B$A$g$C$H$7$?=$@5(B
134
+ \gdef\lst@breakProcessOther#1{\lst@ProcessOther#1}
135
+ % $B%=!<%9%3!<%IL\<!$K$*$1$kJ8;z$HHV9f$N6u$-(B
136
+ \let \l@lstlisting = \l@figure
137
+ % $B%-%c%W%7%g%s$H%=!<%9%3!<%IL\<!$KBP$9$kF|K\8lBP1~(B
138
+ \def\lstlistingname{$B%=!<%9%3!<%I(B}
139
+ \def\lstlistlistingname{$B%=!<%9%3!<%IL\<!(B}
140
+ % \end{$B=$@5;v9`(B}
141
+ \endinput
142
+ %
143
+ %#!platex
144
+ \documentclass[papersize]{jsarticle}
145
+ % Macros
146
+ \IfFileExists{dvipdfmx.def}{%
147
+ \usepackage[dvipdfmx]{color,graphicx}%
148
+ }{%
149
+ \usepackage[dvipdfm]{color,graphicx}%
150
+ }
151
+ \usepackage{listings}[2004/09/07]
152
+ \usepackage{jlisting}[2006/02/20]
153
+ \usepackage{url}
154
+ \usepackage{verbatim}
155
+
156
+ \makeatletter
157
+ % Original Macros
158
+ \def\email#1{\gdef\@email{\texttt{#1}}}
159
+ \def\homepage#1{\gdef\@homepage{\texttt{#1}}}
160
+ \def\mac#1{\textsf{#1}}
161
+ \def\URL#1{\texttt{#1}}
162
+ \def\src#1{\texttt{#1}}
163
+
164
+ % Dvipdfmx.def
165
+ \def\dvipdfmxDefi{http://tex.dante.jp/ok/dvipdfmx/}
166
+ \def\dvipdfmxDefii{http://ftp.ktug.or.kr/KTUG/dvipdfmx/contrib/latex/}
167
+
168
+ \IfFileExists{dvipdfmx.def}{%
169
+ \let \IfDvipdfmxDef = \empty \relax}{%
170
+ \typeout{^^Jget dvipdfmx.def at \dvipdfmxDefi^^J
171
+ or \dvipdfmxDefii^^J}%
172
+ \def\IfDvipdfmxDef{Get \src{dvipdfmx.def} at \URL \dvipdfmxDefii \\
173
+ or \URL \dvipdfmxDefi.}%
174
+ }
175
+
176
+ % Author Info
177
+ \author {Th\'or Watanabe\thanks \@email \space \thanks \@homepage}
178
+ \title {\mac{jlisting.sty}\\
179
+ ---Japanese Localized Patch File of \mac{listings}---}
180
+ \email {thor@tex.dante.jp}
181
+ \homepage {http://tex.dante.jp/typo/}
182
+ \date {2006/02/20}
183
+
184
+ \makeatother
185
+
186
+ \begin{document}
187
+ \maketitle
188
+ %\IfDvipdfmxDef
189
+
190
+ \section{$B$A$g$C$H$7$?@bL@(B}% Short Description
191
+
192
+ $B1|B<@2I';a$N7G<(HD$N!VHFMQE*$JIbF0BN!W$H$$$&0lO"$N=q$-9~$_$+$i(B
193
+ $BE>:\$7$^$7$?!#(B
194
+
195
+ \begin{quote}
196
+ \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21172.html}\\
197
+ \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21184.html}\\
198
+ \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21189.html}\\
199
+ \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21197.html}
200
+ \end{quote}
201
+
202
+ Copyright $B$O5H1JE/H~;a$K$"$k$N$@$H;W$$$^$9!%(B
203
+
204
+ \section{$B99?7MzNr(B}% ChageLogs
205
+
206
+ \begin{description}
207
+ \item[ver.~0.1 (2004/03/24)]
208
+ $B$H$j$"$($:8x3+!%(B
209
+ \item[ver.~0.2 (2006/02/20)]
210
+ \verb|\lst@breakProcessOther| $BL?Na$NDj5A$NDI2C!%(B
211
+ \end{description}
212
+
213
+ \section{$B%=!<%9%3!<%I(B}
214
+ \par\narrowbaselines
215
+ \verbatiminput{jlisting.sty}
216
+ \end{document}
@@ -1,14 +1,16 @@
1
1
  \relax
2
- \@writefile{toc}{\contentsline {subsection}{\numberline {3.2}既存のhikiutilsのコマンド解説}{9}}
3
- \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}コマンドの登録と実行メソッド}{9}}
4
- \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces コマンドの登録と実行メソッドの対応}}{9}}
5
- \newlabel{default}{{2}{9}}
6
- \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}CLIの実行プロセス}{10}}
7
- \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces CLIの実行プロセス.}}{11}}
8
- \newlabel{default}{{3}{11}}
9
- \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.3}コード}{11}}
2
+ \@writefile{toc}{\contentsline {subsection}{\numberline {3.2}既存のhikiutilsのコマンド解説}{11}}
3
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}コマンドの登録と実行メソッド}{11}}
4
+ \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces コマンドの登録と実行メソッドの対応.}}{11}}
5
+ \newlabel{fig:005}{{2}{11}}
6
+ \newlabel{default}{{2}{11}}
7
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}CLIの実行プロセス}{12}}
8
+ \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces CLIの実行プロセス.}}{13}}
9
+ \newlabel{fig:007}{{3}{13}}
10
+ \newlabel{default}{{3}{13}}
11
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.3}コード}{13}}
10
12
  \@setckpt{optparse}{
11
- \setcounter{page}{13}
13
+ \setcounter{page}{15}
12
14
  \setcounter{equation}{0}
13
15
  \setcounter{enumi}{2}
14
16
  \setcounter{enumii}{0}
@@ -6,8 +6,9 @@ optparseの特徴は,「コマンドの登録,実行method」に分けて記
6
6
 
7
7
  \subsubsection{コマンドの登録と実行メソッド}
8
8
  \begin{figure}[htbp]\begin{center}
9
- \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.005.jpg}
10
- \caption{コマンドの登録と実行メソッドの対応}
9
+ \includegraphics[width=10cm,bb= 0 0 737 553]{../figs/./hikiutils_yamane.005.jpg}
10
+ \caption{コマンドの登録と実行メソッドの対応.}
11
+ \label{fig:005}
11
12
  \label{default}\end{center}\end{figure}
12
13
  optparseでは以下の通り,コマンドの登録と実行が行われる.
13
14
 
@@ -17,7 +18,7 @@ optparseでは以下の通り,コマンドの登録と実行が行われる.
17
18
  \item 入力されたコマンドの処理のメソッドへ移動
18
19
  \end{enumerate}
19
20
  optparseではOptionParserオブジェクトoptの生成を行い,コマンドをoptに登録することでコマンドを作成することができる.しかし,これはコマンドを登録しているだけでコマンドの一覧ではこれを表示することができるが,コマンドの実行を行うためには実行を行うためのメソッドを作成する必要がある.optparseでのコマンドの実行はoptで登録されたコマンドが入力されることでそれぞれのコマンドの処理を行うメソッドに移動し処理を行う.しかし,このコマンド登録はハイフンを付けたコマンドしか登録ができず,ハイフンなしのコマンド登録はまた別の手段でやらなくてはいけない.
20
- \begin{lstlisting}[style=customRuby]
21
+ \begin{lstlisting}[style=customRuby,basicstyle={\scriptsize\ttfamily}]
21
22
  def execute
22
23
  @argv << '--help' if @argv.size==0
23
24
  command_parser = OptionParser.new do |opt|
@@ -55,8 +56,9 @@ optparseではOptionParserオブジェクトoptの生成を行い,コマンド
55
56
  \end{lstlisting}
56
57
  \subsubsection{CLIの実行プロセス}
57
58
  \begin{figure}[htbp]\begin{center}
58
- \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.007.jpg}
59
+ \includegraphics[width=10cm,bb= 0 0 737 553]{../figs/./hikiutils_yamane.007.jpg}
59
60
  \caption{CLIの実行プロセス.}
61
+ \label{fig:007}
60
62
  \label{default}\end{center}\end{figure}
61
63
  optparseを用いた場合のCLIの実行プロセスは次の通りとなる.
62
64
 
@@ -67,15 +69,16 @@ optparseを用いた場合のCLIの実行プロセスは次の通りとなる.
67
69
  optparseではHikiutils::Command.run(ARGV)を実行される.requireで呼び出されたhikiutils.rbでrunメソッドが実行される.そこでコマンドを登録しているexecuteメソッドへ移動し入力したコマンドと対応させる.そして,対応したコマンドの処理が行われるメソッドに移動することで実行される.このようにoptparseでは実行を行うためのメソッドが必要であるが,
68
70
 
69
71
  \subsubsection{コード}
70
- \begin{itemize}
71
- \item optparse
72
- \end{itemize}\begin{lstlisting}[style=customRuby]
72
+ optparseの呼び出し側のexe/hikiのコードは次の通りである.
73
+ \begin{lstlisting}[style=customRuby,basicstyle={\scriptsize\ttfamily}]
73
74
  #!/usr/bin/env ruby
74
75
 
75
76
  require "hikiutils"
76
77
 
77
78
  HikiUtils::Command.run(ARGV)
78
- \end{lstlisting}\begin{lstlisting}[style=customRuby]
79
+ \end{lstlisting}
80
+ また呼び出される側のlib/hikiutils.rbのrunおよびexecute部のコードは次の通りとなる.
81
+ \begin{lstlisting}[style=customRuby,basicstyle={\scriptsize\ttfamily}]
79
82
  def self.run(argv=[])
80
83
  print "hikiutils: provide utilities for helping hiki editing.\n"
81
84
  new(argv).execute
@@ -0,0 +1,36 @@
1
+ \documentclass[10pt,a4j]{article}
2
+
3
+ \def\Vec#1{\mbox{\boldmath $#1$}}
4
+ \usepackage[dvipdfmx]{graphicx}
5
+
6
+ \setlength{\textheight}{275mm}
7
+ \headheight 5mm
8
+ \topmargin -20mm
9
+ \textwidth 160mm
10
+ \textheight 250mm
11
+ \oddsidemargin -0mm
12
+ \evensidemargin -5mm
13
+
14
+ \pagestyle{empty}
15
+ \makeatletter
16
+ \def\@maketitle{%
17
+ \newpage\null
18
+ \vskip 2em%
19
+ \begin{center}%
20
+ \let\footnote\thanks
21
+ {\large\bf \@title \par}%
22
+ \vskip 1.5em%
23
+ {\large\bf \@author \par}%
24
+ \vskip 1.5em%
25
+ {\small \@date}%
26
+ \end{center}%
27
+ }
28
+ \makeatother
29
+
30
+ %\documentclass[10pt, a4j]{article}
31
+ %%\usepackage{citesort}
32
+ \usepackage{amssymb}
33
+ \usepackage[dvipdfmx]{graphicx}% 図を入れるときに使用
34
+ \usepackage{wrapfig}% 図の周りに本文を流し込みたいときに使用
35
+ \usepackage{subfigure}
36
+ \usepackage{here}
@@ -1,17 +1,17 @@
1
1
  \relax
2
- \@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Thorによる実装}{18}}
3
- \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}クラス初期化}{18}}
4
- \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Thorのinitializeでのコード}}{18}}
5
- \newlabel{default}{{5}{18}}
6
- \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}コマンド定義}{19}}
7
- \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces thorにおけるコマンド記述のひな形.}}{20}}
8
- \newlabel{default}{{6}{20}}
9
- \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}CLIの実行プロセス}{20}}
10
- \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces CLIの実行プロセス.}}{21}}
11
- \newlabel{default}{{7}{21}}
12
- \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.4}optparseとの全体的な比較}{22}}
2
+ \@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Thorによる実装}{20}}
3
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}クラス初期化}{20}}
4
+ \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Thorのinitializeでのコード}}{20}}
5
+ \newlabel{default}{{5}{20}}
6
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}コマンド定義}{21}}
7
+ \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces thorにおけるコマンド記述のひな形.}}{22}}
8
+ \newlabel{default}{{6}{22}}
9
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}CLIの実行プロセス}{22}}
10
+ \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces CLIの実行プロセス.}}{23}}
11
+ \newlabel{default}{{7}{23}}
12
+ \@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.4}optparseとの全体的な比較}{24}}
13
13
  \@setckpt{thor}{
14
- \setcounter{page}{23}
14
+ \setcounter{page}{25}
15
15
  \setcounter{equation}{0}
16
16
  \setcounter{enumi}{2}
17
17
  \setcounter{enumii}{0}
@@ -27,6 +27,6 @@
27
27
  \setcounter{subparagraph}{0}
28
28
  \setcounter{figure}{7}
29
29
  \setcounter{table}{1}
30
- \setcounter{lstnumber}{6}
30
+ \setcounter{lstnumber}{14}
31
31
  \setcounter{lstlisting}{0}
32
32
  }
@@ -8,11 +8,9 @@
8
8
  \end{itemize}
9
9
  について詳しく検討を行う.
10
10
 
11
- \subsubsection{クラス初期化}\begin{quote}\begin{verbatim}
12
-
13
- \end{verbatim}\end{quote}
11
+ \subsubsection{クラス初期化}
14
12
  \begin{figure}[htbp]\begin{center}
15
- \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.003.jpg}
13
+ \includegraphics[width=10cm,bb= 0 0 737 553]{../figs/./hikiutils_yamane.003.jpg}
16
14
  \caption{Thorのinitializeでのコード}
17
15
  \label{default}\end{center}\end{figure}
18
16
  Thorのinitializeでのコードはつぎの通りである.
@@ -24,7 +22,7 @@ Thorのinitializeでのコードはつぎの通りである.
24
22
  \item superを書くことでThorのinitializeメソッドが呼ばれる
25
23
  \end{enumerate}
26
24
  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]
25
+ \begin{lstlisting}[style=customRuby,basicstyle={\scriptsize\ttfamily}]
28
26
 
29
27
  module Hikithor
30
28
 
@@ -43,7 +41,7 @@ module Hikithor
43
41
  \end{lstlisting}
44
42
  \subsubsection{コマンド定義}
45
43
  \begin{figure}[htbp]\begin{center}
46
- \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.004.jpg}
44
+ \includegraphics[width=10cm,bb= 0 0 737 553]{../figs/./hikiutils_yamane.004.jpg}
47
45
  \caption{thorにおけるコマンド記述のひな形.}
48
46
  \label{default}\end{center}\end{figure}
49
47
  thorではoptparseのような登録処理はない.図にある通りにコマンドが記述され,それらは以下のように構成される.
@@ -61,7 +59,7 @@ map A => B
61
59
  \end{verbatim}\end{quote}
62
60
  mapとはBと呼ばれるメソッドをAでも呼べるようにしてくれるものである.
63
61
  よって,これを使うことでコマンドの別名を指定することができる.
64
- \begin{lstlisting}[style=customRuby]
62
+ \begin{lstlisting}[style=customRuby,basicstyle={\scriptsize\ttfamily}]
65
63
  desc 'show,--show', 'show sources'
66
64
  map "--show" => "show"
67
65
  def show
@@ -74,7 +72,7 @@ mapとはBと呼ばれるメソッドをAでも呼べるようにしてくれる
74
72
 
75
73
  \subsubsection{CLIの実行プロセス}
76
74
  \begin{figure}[htbp]\begin{center}
77
- \includegraphics[width=6cm,bb=0 0 442 432]{../figs/./hikiutils_yamane_09_copy.006.jpg}
75
+ \includegraphics[width=10cm,bb= 0 0 737 553]{../figs/./hikiutils_yamane.006.jpg}
78
76
  \caption{CLIの実行プロセス.}
79
77
  \label{default}\end{center}\end{figure}
80
78
  Thorにおけるcliの実行プロセスは次の通りである.
@@ -84,13 +82,13 @@ Thorにおけるcliの実行プロセスは次の通りである.
84
82
  \item hikiutils\_thor.rbのCLIクラスのメソッドを順に実行していく
85
83
  \end{enumerate}
86
84
  Thorではstart(ARGV)を呼び出すことでCLIを開始する.Hikithor::CLI.start(ARGV)を実行されることによりrequireで呼ばれているhikiutils\_thor.rbのCLIコマンドを順に実行する.そして,入力されたコマンドと一致するメソッドを探し,そのコマンドの処理が実行される.
87
- \begin{lstlisting}[style=customRuby]
85
+ \begin{lstlisting}[style=customRuby,basicstyle={\scriptsize\ttfamily}]
88
86
  #!/usr/bin/env ruby
89
87
 
90
88
  require "hikiutils_thor"
91
89
 
92
90
  Hikithor::CLI.start(ARGV)
93
- \end{lstlisting}\begin{quote}\begin{verbatim}
91
+ \end{lstlisting}\begin{lstlisting}[style=customRuby,basicstyle={\scriptsize\ttfamily}]
94
92
 
95
93
  module Hikithor
96
94
 
@@ -104,7 +102,7 @@ module Hikithor
104
102
  data_path = File.join(ENV['HOME'], '.hikirc')
105
103
  DataFiles.prepare(data_path)
106
104
  ...以下略...
107
- \end{verbatim}\end{quote}
105
+ \end{lstlisting}
108
106
  Thorではクラスのメソッドを順に実行していくためrunメソッドとexecuteメソッドは必要ない.また,optparseでの実行手順はメソッドの移動回数が多く複雑であるが,Thorは単純で分かりやすいものとなっている.
109
107
 
110
108
  \subsubsection{optparseとの全体的な比較}
@@ -6,8 +6,8 @@ optparseの特徴は,「コマンドの登録,実行method」に分けて記
6
6
 
7
7
  !!コマンドの登録と実行メソッド
8
8
 
9
- !!!caption:コマンドの登録と実行メソッドの対応
10
- {{attach_view(hikiutils_yamane_09_copy.005.jpg,hikiutils_yamane)}}
9
+ !!!caption:(fig:005)コマンドの登録と実行メソッドの対応.
10
+ {{attach_view(hikiutils_yamane.005.jpg,hikiutils_yamane)}}
11
11
 
12
12
  optparseでは以下の通り,コマンドの登録と実行が行われる.
13
13
  #OptionParserオブジェクトoptを生成
@@ -15,7 +15,6 @@ optparseでは以下の通り,コマンドの登録と実行が行われる.
15
15
  #入力されたコマンドの処理のメソッドへ移動
16
16
  optparseではOptionParserオブジェクトoptの生成を行い,コマンドをoptに登録することでコマンドを作成することができる.しかし,これはコマンドを登録しているだけでコマンドの一覧ではこれを表示することができるが,コマンドの実行を行うためには実行を行うためのメソッドを作成する必要がある.optparseでのコマンドの実行はoptで登録されたコマンドが入力されることでそれぞれのコマンドの処理を行うメソッドに移動し処理を行う.しかし,このコマンド登録はハイフンを付けたコマンドしか登録ができず,ハイフンなしのコマンド登録はまた別の手段でやらなくてはいけない.
17
17
 
18
-
19
18
  <<< ruby
20
19
  def execute
21
20
  @argv << '--help' if @argv.size==0
@@ -54,8 +53,8 @@ optparseではOptionParserオブジェクトoptの生成を行い,コマンド
54
53
  >>>
55
54
 
56
55
  !!CLIの実行プロセス
57
- !!!caption:CLIの実行プロセス.
58
- {{attach_view(hikiutils_yamane_09_copy.007.jpg,hikiutils_yamane)}}
56
+ !!!caption:(fig:007)CLIの実行プロセス.
57
+ {{attach_view(hikiutils_yamane.007.jpg,hikiutils_yamane)}}
59
58
 
60
59
  optparseを用いた場合のCLIの実行プロセスは次の通りとなる.
61
60
  #HikiのHikiUtils::Command.run(ARGV)でhikiutils.rbのrunメソッドを呼ぶ
@@ -64,7 +63,7 @@ optparseを用いた場合のCLIの実行プロセスは次の通りとなる.
64
63
  optparseではHikiutils::Command.run(ARGV)を実行される.requireで呼び出されたhikiutils.rbでrunメソッドが実行される.そこでコマンドを登録しているexecuteメソッドへ移動し入力したコマンドと対応させる.そして,対応したコマンドの処理が行われるメソッドに移動することで実行される.このようにoptparseでは実行を行うためのメソッドが必要であるが,
65
64
  !!コード
66
65
 
67
- *optparse
66
+ optparseの呼び出し側のexe/hikiのコードは次の通りである.
68
67
  <<< ruby
69
68
  #!/usr/bin/env ruby
70
69
 
@@ -72,6 +71,8 @@ require "hikiutils"
72
71
 
73
72
  HikiUtils::Command.run(ARGV)
74
73
  >>>
74
+
75
+ また呼び出される側のlib/hikiutils.rbのrunおよびexecute部のコードは次の通りとなる.
75
76
  <<< ruby
76
77
  def self.run(argv=[])
77
78
  print "hikiutils: provide utilities for helping hiki editing.\n"
@@ -0,0 +1,10 @@
1
+ require 'fileutils'
2
+ entries = Dir.entries('figs')
3
+ entries.each{|file|
4
+ sp=file.split('.')
5
+ if sp[2]=='jpq'
6
+ target=sp[0]+'.'+sp[1]+'.jpg'
7
+ p command = "mv figs/#{file} figs/#{target}"
8
+ system command
9
+ end
10
+ }
@@ -6,9 +6,8 @@
6
6
  について詳しく検討を行う.
7
7
 
8
8
  !!クラス初期化
9
-
10
9
  !!!caption:Thorのinitializeでのコード
11
- {{attach_view(hikiutils_yamane_09_copy.003.jpg,hikiutils_yamane)}}
10
+ {{attach_view(hikiutils_yamane.003.jpg,hikiutils_yamane)}}
12
11
 
13
12
  Thorのinitializeでのコードはつぎの通りである.
14
13
  #Hikithor::CLI.start(ARGV)が呼ばれる
@@ -38,7 +37,7 @@ module Hikithor
38
37
  !!コマンド定義
39
38
 
40
39
  !!!caption:thorにおけるコマンド記述のひな形.
41
- {{attach_view(hikiutils_yamane_09_copy.004.jpg,hikiutils_yamane)}}
40
+ {{attach_view(hikiutils_yamane.004.jpg,hikiutils_yamane)}}
42
41
 
43
42
  thorではoptparseのような登録処理はない.図にある通りにコマンドが記述され,それらは以下のように構成される.
44
43
  #desc以降にコマンド名と,その説明が記述される.これらはコマンドhelpで一覧として表示させる
@@ -70,7 +69,7 @@ mapとはBと呼ばれるメソッドをAでも呼べるようにしてくれる
70
69
 
71
70
 
72
71
  !!!caption:CLIの実行プロセス.
73
- {{attach_view(hikiutils_yamane_09_copy.006.jpg,hikiutils_yamane)}}
72
+ {{attach_view(hikiutils_yamane.006.jpg,hikiutils_yamane)}}
74
73
 
75
74
  Thorにおけるcliの実行プロセスは次の通りである.
76
75
  #hiki_thorのHikithor::CLI.start(ARGV)でhikiutils_thor.rbのCLIクラスを呼ぶ
@@ -86,7 +85,7 @@ require "hikiutils_thor"
86
85
  Hikithor::CLI.start(ARGV)
87
86
  >>>
88
87
 
89
- <<<
88
+ <<< ruby
90
89
 
91
90
  module Hikithor
92
91
 
@@ -1,3 +1,3 @@
1
1
  module HikiUtils
2
- VERSION = "0.2.3.12"
2
+ VERSION = "0.2.3.13"
3
3
  end