my_help 0.4.5 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +2 -0
  3. data/.gitignore +29 -2
  4. data/.ipynb_checkpoints/README-checkpoint.ipynb +511 -0
  5. data/.ipynb_checkpoints/Untitled-checkpoint.ipynb +6 -0
  6. data/.ruby-version +1 -0
  7. data/Dockerfile.template +13 -0
  8. data/README.md +341 -256
  9. data/README.org +480 -0
  10. data/Rakefile +9 -31
  11. data/docs/.ipynb_checkpoints/README-checkpoint.ipynb +112 -0
  12. data/docs/.ipynb_checkpoints/Untitled-checkpoint.ipynb +219 -0
  13. data/docs/README.ipynb +112 -0
  14. data/docs/bob/README_en.ipynb +219 -0
  15. data/docs/bob/diff_against_org_mode.ipynb +119 -0
  16. data/docs/bob/emacs_help.ipynb +133 -0
  17. data/docs/bob/template_help.ipynb +136 -0
  18. data/{my_help_nasu → docs/nasu}/.gitignore +0 -0
  19. data/{my_help_nasu → docs/nasu}/Rakefile +91 -20
  20. data/docs/nasu/abstract.hiki +17 -0
  21. data/{my_help_nasu → docs/nasu}/code.hiki +25 -21
  22. data/docs/nasu/discussion.hiki +38 -0
  23. data/docs/nasu/features/add.feature +12 -0
  24. data/docs/nasu/features/all_help.feature +10 -0
  25. data/docs/nasu/features/backup_list.feature +10 -0
  26. data/docs/nasu/features/edit_help.feature +9 -0
  27. data/docs/nasu/features/my_todo.feature +16 -0
  28. data/docs/nasu/features/remove.feature +10 -0
  29. data/docs/nasu/features/sample_e.feature +6 -0
  30. data/docs/nasu/features/step_definitions/add_spec.rb +18 -0
  31. data/docs/nasu/features/step_definitions/all_help_spec.rb +18 -0
  32. data/docs/nasu/features/step_definitions/backup_list_spec.rb +18 -0
  33. data/docs/nasu/features/step_definitions/edit_help_spec.rb +19 -0
  34. data/docs/nasu/features/step_definitions/my_todo_spec.rb +25 -0
  35. data/docs/nasu/features/step_definitions/remove_spec.rb +18 -0
  36. data/docs/nasu/features/step_definitions/store_spec.rb +18 -0
  37. data/docs/nasu/features/step_definitions/to_hiki_spec.rb +18 -0
  38. data/docs/nasu/features/store.feature +10 -0
  39. data/docs/nasu/features/support/env.rb +2 -0
  40. data/docs/nasu/features/test.feature +10 -0
  41. data/docs/nasu/features/to_hiki.feature +10 -0
  42. data/{my_help_nasu → docs/nasu}/features.hiki +80 -70
  43. data/docs/nasu/figs/cucumber01.001.jpg +0 -0
  44. data/docs/nasu/figs/cucumber02.001.jpg +0 -0
  45. data/docs/nasu/figs/cucumber03.001.jpg +0 -0
  46. data/docs/nasu/figs/cucumber04.001.jpg +0 -0
  47. data/docs/nasu/figs/cucumber05.001.jpg +0 -0
  48. data/docs/nasu/figs/cucumber1.jpg +0 -0
  49. data/docs/nasu/figs/cucumber2.jpg +0 -0
  50. data/docs/nasu/figs/cucumber3.jpg +0 -0
  51. data/docs/nasu/figs/cucumber4.jpg +0 -0
  52. data/docs/nasu/figs/my_help_nasu.001.jpeg +0 -0
  53. data/docs/nasu/figs/my_help_nasu.002.jpeg +0 -0
  54. data/docs/nasu/figs/my_help_nasu.003.jpeg +0 -0
  55. data/docs/nasu/figs/my_help_nasu.004.jpeg +0 -0
  56. data/docs/nasu/figs/my_help_nasu.005.jpeg +0 -0
  57. data/docs/nasu/figs/my_help_nasu.006.jpeg +0 -0
  58. data/docs/nasu/figs/my_help_nasu.007.jpeg +0 -0
  59. data/docs/nasu/figs/my_help_nasu.008.jpeg +0 -0
  60. data/docs/nasu/figs/my_help_nasu.pdf +0 -0
  61. data/docs/nasu/figs/my_help_nasu.png +0 -0
  62. data/docs/nasu/figs/my_help_nasu1.001.jpg +0 -0
  63. data/docs/nasu/figs/rspec01.001.jpg +0 -0
  64. data/docs/nasu/figs/rspec1.jpg +0 -0
  65. data/docs/nasu/figs/rspec2.jpg +0 -0
  66. data/{my_help_nasu → docs/nasu}/head2.tex +0 -0
  67. data/{my_help_nasu → docs/nasu}/hiki_help.yml +0 -0
  68. data/{my_help_nasu → docs/nasu}/introduction.hiki +15 -16
  69. data/{my_help_nasu → docs/nasu}/key_bind_mi +0 -0
  70. data/docs/nasu/keynote/cucumber01.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
  71. data/docs/nasu/keynote/cucumber01.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
  72. data/docs/nasu/keynote/cucumber01.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
  73. data/docs/nasu/keynote/cucumber01.key/Data/mt10@2x-87.jpg +0 -0
  74. data/docs/nasu/keynote/cucumber01.key/Data/mt1@2x-78.jpg +0 -0
  75. data/docs/nasu/keynote/cucumber01.key/Data/mt2@2x-79.jpg +0 -0
  76. data/docs/nasu/keynote/cucumber01.key/Data/mt3@2x-80.jpg +0 -0
  77. data/docs/nasu/keynote/cucumber01.key/Data/mt4@2x-81.jpg +0 -0
  78. data/docs/nasu/keynote/cucumber01.key/Data/mt5@2x-82.jpg +0 -0
  79. data/docs/nasu/keynote/cucumber01.key/Data/mt6@2x-83.jpg +0 -0
  80. data/docs/nasu/keynote/cucumber01.key/Data/mt7@2x-84.jpg +0 -0
  81. data/docs/nasu/keynote/cucumber01.key/Data/mt8@2x-85.jpg +0 -0
  82. data/docs/nasu/keynote/cucumber01.key/Data/mt9@2x-86.jpg +0 -0
  83. data/docs/nasu/keynote/cucumber01.key/Data/pasted-image-89.png +0 -0
  84. data/docs/nasu/keynote/cucumber01.key/Data/pasted-image-small-90.png +0 -0
  85. data/docs/nasu/keynote/cucumber01.key/Data/st0-104.jpg +0 -0
  86. data/docs/nasu/keynote/cucumber01.key/Index.zip +0 -0
  87. data/docs/nasu/keynote/cucumber01.key/Metadata/BuildVersionHistory.plist +8 -0
  88. data/docs/nasu/keynote/cucumber01.key/Metadata/DocumentIdentifier +1 -0
  89. data/docs/nasu/keynote/cucumber01.key/Metadata/Properties.plist +0 -0
  90. data/docs/nasu/keynote/cucumber01.key/preview-micro.jpg +0 -0
  91. data/docs/nasu/keynote/cucumber01.key/preview-web.jpg +0 -0
  92. data/docs/nasu/keynote/cucumber01.key/preview.jpg +0 -0
  93. data/docs/nasu/keynote/cucumber02.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
  94. data/docs/nasu/keynote/cucumber02.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
  95. data/docs/nasu/keynote/cucumber02.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
  96. data/docs/nasu/keynote/cucumber02.key/Data/mt10@2x-87.jpg +0 -0
  97. data/docs/nasu/keynote/cucumber02.key/Data/mt1@2x-78.jpg +0 -0
  98. data/docs/nasu/keynote/cucumber02.key/Data/mt2@2x-79.jpg +0 -0
  99. data/docs/nasu/keynote/cucumber02.key/Data/mt3@2x-80.jpg +0 -0
  100. data/docs/nasu/keynote/cucumber02.key/Data/mt4@2x-81.jpg +0 -0
  101. data/docs/nasu/keynote/cucumber02.key/Data/mt5@2x-82.jpg +0 -0
  102. data/docs/nasu/keynote/cucumber02.key/Data/mt6@2x-83.jpg +0 -0
  103. data/docs/nasu/keynote/cucumber02.key/Data/mt7@2x-84.jpg +0 -0
  104. data/docs/nasu/keynote/cucumber02.key/Data/mt8@2x-85.jpg +0 -0
  105. data/docs/nasu/keynote/cucumber02.key/Data/mt9@2x-86.jpg +0 -0
  106. data/docs/nasu/keynote/cucumber02.key/Data/pasted-image-89.png +0 -0
  107. data/docs/nasu/keynote/cucumber02.key/Data/pasted-image-small-90.png +0 -0
  108. data/docs/nasu/keynote/cucumber02.key/Data/st0-96.jpg +0 -0
  109. data/docs/nasu/keynote/cucumber02.key/Index.zip +0 -0
  110. data/docs/nasu/keynote/cucumber02.key/Metadata/BuildVersionHistory.plist +8 -0
  111. data/docs/nasu/keynote/cucumber02.key/Metadata/DocumentIdentifier +1 -0
  112. data/docs/nasu/keynote/cucumber02.key/Metadata/Properties.plist +0 -0
  113. data/docs/nasu/keynote/cucumber02.key/preview-micro.jpg +0 -0
  114. data/docs/nasu/keynote/cucumber02.key/preview-web.jpg +0 -0
  115. data/docs/nasu/keynote/cucumber02.key/preview.jpg +0 -0
  116. data/docs/nasu/keynote/cucumber03.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
  117. data/docs/nasu/keynote/cucumber03.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
  118. data/docs/nasu/keynote/cucumber03.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
  119. data/docs/nasu/keynote/cucumber03.key/Data/mt10@2x-87.jpg +0 -0
  120. data/docs/nasu/keynote/cucumber03.key/Data/mt1@2x-78.jpg +0 -0
  121. data/docs/nasu/keynote/cucumber03.key/Data/mt2@2x-79.jpg +0 -0
  122. data/docs/nasu/keynote/cucumber03.key/Data/mt3@2x-80.jpg +0 -0
  123. data/docs/nasu/keynote/cucumber03.key/Data/mt4@2x-81.jpg +0 -0
  124. data/docs/nasu/keynote/cucumber03.key/Data/mt5@2x-82.jpg +0 -0
  125. data/docs/nasu/keynote/cucumber03.key/Data/mt6@2x-83.jpg +0 -0
  126. data/docs/nasu/keynote/cucumber03.key/Data/mt7@2x-84.jpg +0 -0
  127. data/docs/nasu/keynote/cucumber03.key/Data/mt8@2x-85.jpg +0 -0
  128. data/docs/nasu/keynote/cucumber03.key/Data/mt9@2x-86.jpg +0 -0
  129. data/docs/nasu/keynote/cucumber03.key/Data/pasted-image-89.png +0 -0
  130. data/docs/nasu/keynote/cucumber03.key/Data/pasted-image-small-90.png +0 -0
  131. data/docs/nasu/keynote/cucumber03.key/Data/st0-100.jpg +0 -0
  132. data/docs/nasu/keynote/cucumber03.key/Index.zip +0 -0
  133. data/docs/nasu/keynote/cucumber03.key/Metadata/BuildVersionHistory.plist +8 -0
  134. data/docs/nasu/keynote/cucumber03.key/Metadata/DocumentIdentifier +1 -0
  135. data/docs/nasu/keynote/cucumber03.key/Metadata/Properties.plist +0 -0
  136. data/docs/nasu/keynote/cucumber03.key/preview-micro.jpg +0 -0
  137. data/docs/nasu/keynote/cucumber03.key/preview-web.jpg +0 -0
  138. data/docs/nasu/keynote/cucumber03.key/preview.jpg +0 -0
  139. data/docs/nasu/keynote/cucumber04.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
  140. data/docs/nasu/keynote/cucumber04.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
  141. data/docs/nasu/keynote/cucumber04.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
  142. data/docs/nasu/keynote/cucumber04.key/Data/mt10@2x-87.jpg +0 -0
  143. data/docs/nasu/keynote/cucumber04.key/Data/mt1@2x-78.jpg +0 -0
  144. data/docs/nasu/keynote/cucumber04.key/Data/mt2@2x-79.jpg +0 -0
  145. data/docs/nasu/keynote/cucumber04.key/Data/mt3@2x-80.jpg +0 -0
  146. data/docs/nasu/keynote/cucumber04.key/Data/mt4@2x-81.jpg +0 -0
  147. data/docs/nasu/keynote/cucumber04.key/Data/mt5@2x-82.jpg +0 -0
  148. data/docs/nasu/keynote/cucumber04.key/Data/mt6@2x-83.jpg +0 -0
  149. data/docs/nasu/keynote/cucumber04.key/Data/mt7@2x-84.jpg +0 -0
  150. data/docs/nasu/keynote/cucumber04.key/Data/mt8@2x-85.jpg +0 -0
  151. data/docs/nasu/keynote/cucumber04.key/Data/mt9@2x-86.jpg +0 -0
  152. data/docs/nasu/keynote/cucumber04.key/Data/pasted-image-106.png +0 -0
  153. data/docs/nasu/keynote/cucumber04.key/Data/pasted-image-small-107.png +0 -0
  154. data/docs/nasu/keynote/cucumber04.key/Data/st0-115.jpg +0 -0
  155. data/docs/nasu/keynote/cucumber04.key/Index.zip +0 -0
  156. data/docs/nasu/keynote/cucumber04.key/Metadata/BuildVersionHistory.plist +8 -0
  157. data/docs/nasu/keynote/cucumber04.key/Metadata/DocumentIdentifier +1 -0
  158. data/docs/nasu/keynote/cucumber04.key/Metadata/Properties.plist +0 -0
  159. data/docs/nasu/keynote/cucumber04.key/preview-micro.jpg +0 -0
  160. data/docs/nasu/keynote/cucumber04.key/preview-web.jpg +0 -0
  161. data/docs/nasu/keynote/cucumber04.key/preview.jpg +0 -0
  162. data/docs/nasu/keynote/cucumber05.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
  163. data/docs/nasu/keynote/cucumber05.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
  164. data/docs/nasu/keynote/cucumber05.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
  165. data/docs/nasu/keynote/cucumber05.key/Data/mt10@2x-87.jpg +0 -0
  166. data/docs/nasu/keynote/cucumber05.key/Data/mt1@2x-78.jpg +0 -0
  167. data/docs/nasu/keynote/cucumber05.key/Data/mt2@2x-79.jpg +0 -0
  168. data/docs/nasu/keynote/cucumber05.key/Data/mt3@2x-80.jpg +0 -0
  169. data/docs/nasu/keynote/cucumber05.key/Data/mt4@2x-81.jpg +0 -0
  170. data/docs/nasu/keynote/cucumber05.key/Data/mt5@2x-82.jpg +0 -0
  171. data/docs/nasu/keynote/cucumber05.key/Data/mt6@2x-83.jpg +0 -0
  172. data/docs/nasu/keynote/cucumber05.key/Data/mt7@2x-84.jpg +0 -0
  173. data/docs/nasu/keynote/cucumber05.key/Data/mt8@2x-85.jpg +0 -0
  174. data/docs/nasu/keynote/cucumber05.key/Data/mt9@2x-86.jpg +0 -0
  175. data/docs/nasu/keynote/cucumber05.key/Data/pasted-image-89.png +0 -0
  176. data/docs/nasu/keynote/cucumber05.key/Data/pasted-image-small-90.png +0 -0
  177. data/docs/nasu/keynote/cucumber05.key/Data/st0-97.jpg +0 -0
  178. data/docs/nasu/keynote/cucumber05.key/Index.zip +0 -0
  179. data/docs/nasu/keynote/cucumber05.key/Metadata/BuildVersionHistory.plist +8 -0
  180. data/docs/nasu/keynote/cucumber05.key/Metadata/DocumentIdentifier +1 -0
  181. data/docs/nasu/keynote/cucumber05.key/Metadata/Properties.plist +0 -0
  182. data/docs/nasu/keynote/cucumber05.key/preview-micro.jpg +0 -0
  183. data/docs/nasu/keynote/cucumber05.key/preview-web.jpg +0 -0
  184. data/docs/nasu/keynote/cucumber05.key/preview.jpg +0 -0
  185. data/docs/nasu/keynote/my_help_nasu1.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
  186. data/docs/nasu/keynote/my_help_nasu1.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
  187. data/docs/nasu/keynote/my_help_nasu1.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
  188. data/docs/nasu/keynote/my_help_nasu1.key/Data/mt10@2x-87.jpg +0 -0
  189. data/docs/nasu/keynote/my_help_nasu1.key/Data/mt1@2x-78.jpg +0 -0
  190. data/docs/nasu/keynote/my_help_nasu1.key/Data/mt2@2x-79.jpg +0 -0
  191. data/docs/nasu/keynote/my_help_nasu1.key/Data/mt3@2x-80.jpg +0 -0
  192. data/docs/nasu/keynote/my_help_nasu1.key/Data/mt4@2x-81.jpg +0 -0
  193. data/docs/nasu/keynote/my_help_nasu1.key/Data/mt5@2x-82.jpg +0 -0
  194. data/docs/nasu/keynote/my_help_nasu1.key/Data/mt6@2x-83.jpg +0 -0
  195. data/docs/nasu/keynote/my_help_nasu1.key/Data/mt7@2x-84.jpg +0 -0
  196. data/docs/nasu/keynote/my_help_nasu1.key/Data/mt8@2x-85.jpg +0 -0
  197. data/docs/nasu/keynote/my_help_nasu1.key/Data/mt9@2x-86.jpg +0 -0
  198. data/docs/nasu/keynote/my_help_nasu1.key/Data/st0-299.jpg +0 -0
  199. data/docs/nasu/keynote/my_help_nasu1.key/Index.zip +0 -0
  200. data/docs/nasu/keynote/my_help_nasu1.key/Metadata/BuildVersionHistory.plist +8 -0
  201. data/docs/nasu/keynote/my_help_nasu1.key/Metadata/DocumentIdentifier +1 -0
  202. data/docs/nasu/keynote/my_help_nasu1.key/Metadata/Properties.plist +0 -0
  203. data/docs/nasu/keynote/my_help_nasu1.key/preview-micro.jpg +0 -0
  204. data/docs/nasu/keynote/my_help_nasu1.key/preview-web.jpg +0 -0
  205. data/docs/nasu/keynote/my_help_nasu1.key/preview.jpg +0 -0
  206. data/docs/nasu/keynote/rspec01.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
  207. data/docs/nasu/keynote/rspec01.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
  208. data/docs/nasu/keynote/rspec01.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
  209. data/docs/nasu/keynote/rspec01.key/Data/mt10@2x-87.jpg +0 -0
  210. data/docs/nasu/keynote/rspec01.key/Data/mt1@2x-78.jpg +0 -0
  211. data/docs/nasu/keynote/rspec01.key/Data/mt2@2x-79.jpg +0 -0
  212. data/docs/nasu/keynote/rspec01.key/Data/mt3@2x-80.jpg +0 -0
  213. data/docs/nasu/keynote/rspec01.key/Data/mt4@2x-81.jpg +0 -0
  214. data/docs/nasu/keynote/rspec01.key/Data/mt5@2x-82.jpg +0 -0
  215. data/docs/nasu/keynote/rspec01.key/Data/mt6@2x-83.jpg +0 -0
  216. data/docs/nasu/keynote/rspec01.key/Data/mt7@2x-84.jpg +0 -0
  217. data/docs/nasu/keynote/rspec01.key/Data/mt8@2x-85.jpg +0 -0
  218. data/docs/nasu/keynote/rspec01.key/Data/mt9@2x-86.jpg +0 -0
  219. data/docs/nasu/keynote/rspec01.key/Data/pasted-image-89.png +0 -0
  220. data/docs/nasu/keynote/rspec01.key/Data/pasted-image-small-90.png +0 -0
  221. data/docs/nasu/keynote/rspec01.key/Data/st0-96.jpg +0 -0
  222. data/docs/nasu/keynote/rspec01.key/Index.zip +0 -0
  223. data/docs/nasu/keynote/rspec01.key/Metadata/BuildVersionHistory.plist +8 -0
  224. data/docs/nasu/keynote/rspec01.key/Metadata/DocumentIdentifier +1 -0
  225. data/docs/nasu/keynote/rspec01.key/Metadata/Properties.plist +0 -0
  226. data/docs/nasu/keynote/rspec01.key/preview-micro.jpg +0 -0
  227. data/docs/nasu/keynote/rspec01.key/preview-web.jpg +0 -0
  228. data/docs/nasu/keynote/rspec01.key/preview.jpg +0 -0
  229. data/docs/nasu/latex_dir/abstract.tex +18 -0
  230. data/{my_help_nasu → docs/nasu}/latex_dir/code.tex +9 -21
  231. data/docs/nasu/latex_dir/discussion.aux +28 -0
  232. data/docs/nasu/latex_dir/discussion.tex +19 -0
  233. data/docs/nasu/latex_dir/features.aux +30 -0
  234. data/docs/nasu/latex_dir/features.tex +186 -0
  235. data/{my_help_nasu → docs/nasu}/latex_dir/head.tex +1 -1
  236. data/{my_help_nasu → docs/nasu}/latex_dir/introduction.aux +3 -3
  237. data/{my_help_nasu → docs/nasu}/latex_dir/introduction.tex +15 -16
  238. data/{my_help_nasu → docs/nasu}/latex_dir/jlisting.sty +0 -0
  239. data/{my_help_nasu/latex_dir/consideration.aux → docs/nasu/latex_dir/method.aux} +7 -8
  240. data/docs/nasu/latex_dir/method.tex +6 -0
  241. data/{my_help_nasu → docs/nasu}/latex_dir/method_bdd.aux +10 -7
  242. data/{my_help_nasu → docs/nasu}/latex_dir/method_bdd.tex +14 -5
  243. data/{my_help_nasu → docs/nasu}/latex_dir/method_cucumber.aux +10 -9
  244. data/{my_help_nasu → docs/nasu}/latex_dir/method_cucumber.tex +15 -18
  245. data/{my_help_nasu → docs/nasu}/latex_dir/method_usage.aux +11 -11
  246. data/{my_help_nasu → docs/nasu}/latex_dir/method_usage.tex +35 -29
  247. data/{my_help_nasu → docs/nasu}/latex_dir/my_help_nasu.aux +6 -5
  248. data/docs/nasu/latex_dir/my_help_nasu.log +363 -0
  249. data/docs/nasu/latex_dir/my_help_nasu.pdf +0 -0
  250. data/docs/nasu/latex_dir/my_help_nasu.synctex.gz +0 -0
  251. data/{my_help_nasu → docs/nasu}/latex_dir/my_help_nasu.tex +12 -18
  252. data/docs/nasu/latex_dir/my_help_nasu.toc +35 -0
  253. data/docs/nasu/latex_dir/new_code.aux +44 -0
  254. data/docs/nasu/latex_dir/new_code.tex +237 -0
  255. data/{my_help_nasu → docs/nasu}/latex_dir/overview.aux +2 -2
  256. data/{my_help_nasu/latex_dir → docs/nasu}/latex_dir/pre.tex +0 -0
  257. data/docs/nasu/method.hiki +5 -0
  258. data/{my_help_nasu → docs/nasu}/method_bdd.hiki +14 -8
  259. data/{my_help_nasu → docs/nasu}/method_cucumber.hiki +14 -17
  260. data/{my_help_nasu → docs/nasu}/method_usage.hiki +25 -24
  261. data/docs/nasu/my_help_nasu/my_help_nasu.001.bb +5 -0
  262. data/{my_help_nasu → docs/nasu}/my_help_nasu/my_help_nasu.001.jpeg +0 -0
  263. data/docs/nasu/my_help_nasu/my_help_nasu.002.bb +5 -0
  264. data/docs/nasu/my_help_nasu/my_help_nasu.002.jpeg +0 -0
  265. data/docs/nasu/my_help_nasu/my_help_nasu.003.bb +5 -0
  266. data/docs/nasu/my_help_nasu/my_help_nasu.003.jpeg +0 -0
  267. data/docs/nasu/my_help_nasu/my_help_nasu.004.bb +5 -0
  268. data/docs/nasu/my_help_nasu/my_help_nasu.004.jpeg +0 -0
  269. data/docs/nasu/my_help_nasu/my_help_nasu.005.bb +5 -0
  270. data/docs/nasu/my_help_nasu/my_help_nasu.005.jpeg +0 -0
  271. data/docs/nasu/my_help_nasu/my_help_nasu.006.bb +5 -0
  272. data/docs/nasu/my_help_nasu/my_help_nasu.006.jpeg +0 -0
  273. data/docs/nasu/my_help_nasu/my_help_nasu.007.bb +5 -0
  274. data/docs/nasu/my_help_nasu/my_help_nasu.007.jpeg +0 -0
  275. data/docs/nasu/my_help_nasu/my_help_nasu.008.bb +5 -0
  276. data/docs/nasu/my_help_nasu/my_help_nasu.008.jpeg +0 -0
  277. data/docs/nasu/my_help_nasu.hiki +28 -0
  278. data/docs/nasu/my_help_nasu.key +0 -0
  279. data/docs/nasu/my_help_nasu09.key +0 -0
  280. data/docs/nasu/my_help_nasu1/my_help_nasu1.001.jpg +0 -0
  281. data/docs/nasu/nasu_abst/abst_fig.bb +5 -0
  282. data/docs/nasu/nasu_abst/abst_fig.png +0 -0
  283. data/docs/nasu/nasu_abst/my_help_nasu.001.bb +5 -0
  284. data/docs/nasu/nasu_abst/my_help_nasu.001.jpg +0 -0
  285. data/docs/nasu/nasu_abst/my_help_nasu.001.png +0 -0
  286. data/docs/nasu/nasu_abst/nasu_abst.aux +10 -0
  287. data/docs/nasu/nasu_abst/nasu_abst.log +179 -0
  288. data/docs/nasu/nasu_abst/nasu_abst.pdf +0 -0
  289. data/docs/nasu/nasu_abst/nasu_abst.synctex.gz +0 -0
  290. data/docs/nasu/nasu_abst/nasu_abst.tex +63 -0
  291. data/docs/nasu/new_code.hiki +246 -0
  292. data/docs/nasu/spec/.rspec +2 -0
  293. data/docs/nasu/spec/my_help_spec.rb +75 -0
  294. data/docs/nasu/spec/my_todo/todo_spec.rb +15 -0
  295. data/docs/nasu/spec/spec_helper.rb +11 -0
  296. data/docs/nasu/spec/support/aruba.rb +1 -0
  297. data/docs/nasu/spec/thor_spec.rb +81 -0
  298. data/docs/nasu/test/my_help_test.rb +11 -0
  299. data/docs/nasu/test/test_helper.rb +4 -0
  300. data/{hikis → docs}/tmp.org +0 -0
  301. data/docs/yagi/bachelor_thesis/final/figs/opt_thor.jpeg +0 -0
  302. data/docs/yagi/bachelor_thesis/final/handout/handout.aux +14 -0
  303. data/{my_help_nasu/latex_dir/my_help_nasu.log → docs/yagi/bachelor_thesis/final/handout/handout.log} +46 -175
  304. data/docs/yagi/bachelor_thesis/final/handout/handout.pdf +0 -0
  305. data/docs/yagi/bachelor_thesis/final/handout/handout.synctex.gz +0 -0
  306. data/docs/yagi/bachelor_thesis/final/handout/handout.tex +123 -0
  307. data/docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.aux +46 -0
  308. data/docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.dvi +0 -0
  309. data/{lor → docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.lof} +0 -0
  310. data/docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.lot +0 -0
  311. data/docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.synctex.gz +0 -0
  312. data/docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.toc +0 -0
  313. data/docs/yagi/bachelor_thesis/final/thesis/figs/opt_thor.png +0 -0
  314. data/docs/yagi/bachelor_thesis/final/thesis/final_thesis.ipynb +449 -0
  315. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/latex/final_thesis.tex +718 -0
  316. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter1/chapter1.tex +8 -0
  317. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter2/chapter2.log +28 -0
  318. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter2/chapter2.tex +127 -0
  319. data/{my_help_nasu/latex_dir/method_cucumber.log → docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter3/chapter3.log} +11 -11
  320. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter3/chapter3.tex +328 -0
  321. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter4/chapter4.tex +13 -0
  322. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter5/chapter5.tex +5 -0
  323. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter6/chapter6.log +38 -0
  324. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter6/chapter6.tex +28 -0
  325. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/informations/informations.aux +1 -0
  326. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/informations/informations.log +55 -0
  327. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/informations/informations.tex +6 -0
  328. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/tmp/tmp.tex +1 -0
  329. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/.splits_location.tex +6 -0
  330. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.aux +114 -0
  331. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.lof +4 -0
  332. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.log +699 -0
  333. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.lot +5 -0
  334. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.out.ps +98 -0
  335. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.pdf +0 -0
  336. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.synctex.gz +0 -0
  337. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.tex +30 -0
  338. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.toc +22 -0
  339. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis_checked_180213_1433.pdf +0 -0
  340. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis_pieces/form00_style.tex +25 -0
  341. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis_pieces/tightlist_setting.tex +2 -0
  342. data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis_pieces/usepackage.tex +25 -0
  343. data/docs/yagi/bachelor_thesis/translation/awesome_chapter2.ipynb +84 -0
  344. data/docs/yagi/bachelor_thesis/translation/awesome_introduction.ipynb +328 -0
  345. data/docs/yagi/comparisons/.ipynb_checkpoints/Untitled-checkpoint.ipynb +6 -0
  346. data/docs/yagi/comparisons/.ipynb_checkpoints/comp-checkpoint.ipynb +230 -0
  347. data/docs/yagi/comparisons/comp.ipynb +178 -0
  348. data/docs/yagi/comparisons/hanami.rb +25 -0
  349. data/docs/yagi/comparisons/optparse.rb +21 -0
  350. data/docs/yagi/comparisons/thor.rb +11 -0
  351. data/docs/yagi/midterm_presentation/.ipynb_checkpoints/abst-checkpoint.ipynb +87 -0
  352. data/docs/yagi/midterm_presentation/abst.aux +16 -0
  353. data/docs/yagi/midterm_presentation/abst.ipynb +87 -0
  354. data/docs/yagi/midterm_presentation/abst.log +222 -0
  355. data/docs/yagi/midterm_presentation/abst.pdf +0 -0
  356. data/docs/yagi/midterm_presentation/abst.synctex.gz +0 -0
  357. data/docs/yagi/midterm_presentation/abst.tex +133 -0
  358. data/{my_help_nasu/latex_dir/jlisting.tex → docs/yagi/midterm_presentation/jlisting.sty} +0 -0
  359. data/docs/yagi/midterm_presentation/mid_keynote/mid_keynote.001.png +0 -0
  360. data/docs/yagi/midterm_presentation/mid_keynote/mid_keynote.002.png +0 -0
  361. data/docs/yagi/midterm_presentation/mid_keynote/mid_keynote.003.png +0 -0
  362. data/docs/yagi/midterm_presentation/mid_keynote/mid_keynote.004.png +0 -0
  363. data/docs/yagi/midterm_presentation/mid_keynote/mid_keynote.005.png +0 -0
  364. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
  365. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
  366. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
  367. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt10@2x-92.jpg +0 -0
  368. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt1@2x-83.jpg +0 -0
  369. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt2@2x-84.jpg +0 -0
  370. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt3@2x-85.jpg +0 -0
  371. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt4@2x-86.jpg +0 -0
  372. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt5@2x-87.jpg +0 -0
  373. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt6@2x-88.jpg +0 -0
  374. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt7@2x-89.jpg +0 -0
  375. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt8@2x-90.jpg +0 -0
  376. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt9@2x-91.jpg +0 -0
  377. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/st0-438.jpg +0 -0
  378. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/st1-598.jpg +0 -0
  379. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/st2-648.jpg +0 -0
  380. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/st3-652.jpg +0 -0
  381. data/docs/yagi/midterm_presentation/mid_keynote.key/Data/st4-671.jpg +0 -0
  382. data/docs/yagi/midterm_presentation/mid_keynote.key/Index.zip +0 -0
  383. data/docs/yagi/midterm_presentation/mid_keynote.key/Metadata/BuildVersionHistory.plist +8 -0
  384. data/docs/yagi/midterm_presentation/mid_keynote.key/Metadata/DocumentIdentifier +1 -0
  385. data/docs/yagi/midterm_presentation/mid_keynote.key/Metadata/Properties.plist +0 -0
  386. data/docs/yagi/midterm_presentation/mid_keynote.key/preview-micro.jpg +0 -0
  387. data/docs/yagi/midterm_presentation/mid_keynote.key/preview-web.jpg +0 -0
  388. data/docs/yagi/midterm_presentation/mid_keynote.key/preview.jpg +0 -0
  389. data/docs/yagi/thor_spec.ipynb +192 -0
  390. data/docs/yagi/thor_task.ipynb +98 -0
  391. data/exe/my_help +3 -1
  392. data/lib/my_help/org2yml.rb +46 -0
  393. data/lib/my_help/version.rb +1 -1
  394. data/lib/my_help/yml2org.rb +36 -0
  395. data/lib/my_help.rb +76 -30
  396. data/lib/my_help_thor.rb +170 -0
  397. data/lib/my_todo/my_todo.rb +5 -2
  398. data/lib/specific_help.rb +52 -25
  399. data/lib/{specific_help.rb~ → specific_help_bu.rb} +129 -89
  400. data/lib/specific_help_opt.rb +71 -0
  401. data/lib/specific_help_thor.rb +172 -0
  402. data/lib/templates/emacs_help.org +47 -0
  403. data/lib/templates/emacs_help_e.org +49 -0
  404. data/lib/templates/my_todo.org +11 -0
  405. data/lib/templates/template_help.org +8 -0
  406. data/make_docker.sh +5 -0
  407. data/my_help.gemspec +3 -2
  408. metadata +406 -92
  409. data/.DS_Store +0 -0
  410. data/CODE_OF_CONDUCT.md +0 -49
  411. data/README_en.md +0 -132
  412. data/exe/e_h +0 -4
  413. data/exe/emacs_help +0 -4
  414. data/exe/my_todo +0 -4
  415. data/hikis/README_en.hiki +0 -130
  416. data/hikis/README_ja.hiki +0 -316
  417. data/hikis/diff_against_org-mode.hiki +0 -34
  418. data/hikis/emacs_help.hiki +0 -47
  419. data/hikis/template_help.hiki +0 -51
  420. data/latexes/handout_pre.tex +0 -11
  421. data/lib/.emacs_help.rb.swp +0 -0
  422. data/lib/daddygongon/emacs_help.yml +0 -89
  423. data/lib/daddygongon/my_todo.yml +0 -31
  424. data/lib/daddygongon/template_help.yml +0 -33
  425. data/lib/emacs_help.rb~ +0 -137
  426. data/lib/my_todo/my_todo.rb~ +0 -7
  427. data/lib/todo.rb~ +0 -1
  428. data/my_help.wiki/Home.md +0 -330
  429. data/my_help.wiki/README_en.md +0 -132
  430. data/my_help.wiki/README_ja.md +0 -330
  431. data/my_help.wiki/emacs_help.md +0 -46
  432. data/my_help.wiki/template_help.md +0 -51
  433. data/my_help_nasu/.DS_Store +0 -0
  434. data/my_help_nasu/consideration.hiki +0 -8
  435. data/my_help_nasu/figs/my_help_nasu.001.jpeg +0 -0
  436. data/my_help_nasu/figs/my_help_nasu.001.jpg +0 -0
  437. data/my_help_nasu/figs/my_help_nasu1.001.jpg +0 -0
  438. data/my_help_nasu/latex_dir/.gitignore +0 -1
  439. data/my_help_nasu/latex_dir/Rakefile +0 -420
  440. data/my_help_nasu/latex_dir/code.aux +0 -25
  441. data/my_help_nasu/latex_dir/consideration.tex +0 -9
  442. data/my_help_nasu/latex_dir/features.aux +0 -31
  443. data/my_help_nasu/latex_dir/features.tex +0 -173
  444. data/my_help_nasu/latex_dir/hiki_help.yml +0 -53
  445. data/my_help_nasu/latex_dir/latex_dir/head.tex +0 -9
  446. data/my_help_nasu/latex_dir/latex_dir/jlisting.tex +0 -216
  447. data/my_help_nasu/latex_dir/my_help_nasu.pdf +0 -0
  448. data/my_help_nasu/latex_dir/my_help_nasu.synctex.gz +0 -0
  449. data/my_help_nasu/latex_dir/my_help_nasu.toc +0 -32
  450. data/my_help_nasu/latex_dir/overview.tex +0 -12
  451. data/my_help_nasu/latex_dir/pre.tex +0 -36
  452. data/my_help_nasu/my_help_nasu/.DS_Store +0 -0
  453. data/my_help_nasu/my_help_nasu.hiki +0 -32
  454. data/my_help_nasu/my_help_nasu.key +0 -0
  455. data/my_help_nasu/overview.hiki +0 -11
@@ -0,0 +1,8 @@
1
+ \chapter{はじめに}\label{ux306fux3058ux3081ux306b}
2
+
3
+ \section{目的}\label{ux76eeux7684}
4
+
5
+ 西谷研究室で使われているユーザメモソフト,my\_helpの振る舞いを制御しているサブコマンドは,マイナスを付した省略記法が取られている.プログラミング初心者にとってこの省略記法は,覚えにくかったりわかりにくかったりするという問題があり,現在はフルワードを使った自然言語に近い記述法が多く用いられている.
6
+ そこで,本研究ではコマンドラインツール作成ライブラリを自然言語に近いサブコマンド体系を実装しやすいライブラリであるThorに変更する.rubyの標準ライブラリであるoptparseで作成されているmy\_helpをThorによって書き直し,異なった2つライブラリで作成されたmy\_helpの使用感を比較検討することを目的とする.
7
+
8
+
@@ -0,0 +1,28 @@
1
+ This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017) (preloaded format=pdflatex 2017.12.7) 13 FEB 2018 16:41
2
+ entering extended mode
3
+ restricted \write18 enabled.
4
+ file:line:error style messages enabled.
5
+ %&-line parsing enabled.
6
+ **chapter2.tex
7
+ (./chapter2.tex
8
+ LaTeX2e <2017-04-15>
9
+ Babel <3.15> and hyphenation patterns for 84 language(s) loaded.
10
+ ./chapter2.tex:1: Undefined control sequence.
11
+ l.1 \chapter
12
+ {基本的事項}\label{ux57faux672cux7684ux4e8bux9805}
13
+ ?
14
+ ./chapter2.tex:1: Emergency stop.
15
+ l.1 \chapter
16
+ {基本的事項}\label{ux57faux672cux7684ux4e8bux9805}
17
+ End of file on the terminal!
18
+
19
+
20
+ Here is how much of TeX's memory you used:
21
+ 5 strings out of 492985
22
+ 131 string characters out of 6132586
23
+ 54187 words of memory out of 5000000
24
+ 3668 multiletter control sequences out of 15000+600000
25
+ 3640 words of font info for 14 fonts, out of 8000000 for 9000
26
+ 1141 hyphenation exceptions out of 8191
27
+ 5i,0n,1p,78b,8s stack positions out of 5000i,500n,10000p,200000b,80000s
28
+ ./chapter2.tex:1: ==> Fatal error occurred, no output PDF file produced!
@@ -0,0 +1,127 @@
1
+ \chapter{基本的事項}\label{ux57faux672cux7684ux4e8bux9805}
2
+
3
+ \section{my\_help}\label{my_help}
4
+
5
+ \subsection{my\_helpの目的}\label{my_helpux306eux76eeux7684}
6
+
7
+ my\_helpとは,ユーザー独自のマニュアルを作成することができるユーザメモソフトである.これは,terminalだけを用いて簡単に起動,編集,削除などをすることができるため,非常に便利である.さらに,そのマニュアルは自分ですぐに編集,参照することができるので,メモとしての機能も果たし
8
+ ている.これにより,プログラミング初心者が,頻繁に使うコマンドやキーバインドなどをいちいちweb
9
+ browserを立ち上げて調べるのではなく,terminal上で即座に取得できるため,プログラム開発を集中することが期待される.
10
+
11
+ メモやtodoリストの作成が行えることや,保存場所を共通化することでどこでも立ち上げることができることなど,emacsのorg-modeと類似している点がいくつか存在する.しかし,明確な相違点も存在する.org-modeはemacsを起動させなければならないが,my\_helpはemacsを起動させる必要がなくterminalで編集することが可能である.また,org-modeを使用するとなるとorg-mode独自のコマンドを学ぶ必要があり,学習コストがかかってしまう.my\_helpにはその必要がなく,非常に単純な操作でアプリを使用することができるので,org-modeの使い方を理解していない初心者にとって使いやすいものとなっている.
12
+
13
+ また,アプリやプログラミング言語などの正式なマニュアルは英語で書かれていることが多く,初心者には理解するのが困難である.my\_helpを使用すれば,自分なりのマニュアルを作成することができるので,仕様を噛み砕いて理解することが可能である.tarminal上でいつでもメモを参照できるため,どこにメモをしたかを忘れるリスクも軽減される.
14
+
15
+ \subsection{使用法}\label{ux4f7fux7528ux6cd5}
16
+
17
+ インストールする方法だが,gemの標準とは少し方法が異なっている.
18
+ まず,githubにあるmy\_helpのリポジトリをフォーク,クローンすることでローカル(ネットワークに繋がれていない環境)でもmy\_helpを操作することができるようになる.
19
+
20
+ \begin{quote}
21
+ git clone git@github.com:daddygongon/my\_help.git
22
+ \end{quote}
23
+ これ以降の作業はbundleにて行っていく.
24
+
25
+ \begin{quote}
26
+ bundle update
27
+ \end{quote}
28
+ を実行することでmy\_help.gemspecに記述されている必要なgemsがbundleされる.ここでCould
29
+ not locate
30
+ Gemfileとエラーが出た場合は、Gemfileのある場所を探し、その配下に移動してから再びコマンドを入力する.
31
+
32
+ \begin{quote}
33
+ bundle exec exe/my\_help
34
+ \end{quote}
35
+ でmy\_helpに用意されているコマンドを参照することができる.デフォルトでemacs\_helpというemacsのヘルプが用意されている.これはemacs\_helpの他に,省略形のe\_hでも表示されるようになっている.
36
+
37
+ 次に,独自のヘルプを作成する方法であるが,まず,
38
+
39
+ \begin{quote}
40
+ bundle exec exe/my\_help -i new\_help
41
+ \end{quote}
42
+ とすることでnew\_helpという名前のヘルプが作成され,そこにテンプレートが格納される.また,
43
+
44
+ \begin{quote}
45
+ bundle exec exe/my\_help -e new\_help
46
+ \end{quote}
47
+ で,自分の好きなように編集することができる.ヘルプが完成したら,
48
+
49
+ \begin{quote}
50
+ bundle exec exe/my\_help -m
51
+ \end{quote}
52
+ とすることでexeディレクトリにnew helpが追加され,new
53
+ help,n\_hが使用可能になるという手順である.
54
+
55
+ \section{option}\label{option}
56
+
57
+ 今日,複雑な機能を持つコマンドが増加している.そのようなコマンドは,オプション(サブコマンド)を使用することで適切な動作を実行することが可能になる.例えばgitコマンドはオプションなしでは意味をなさない.オプションでどのような動作をするかが決まるので,オプションを入力することで正常に動作するのである.
58
+
59
+ \subsection{optionの種類}\label{}
60
+
61
+ optionの種類については以下のように述べられている.
62
+
63
+ \begin{quote}
64
+ そもそも,オプションにはショートオプションとロングオプションの2種類がある.ショートオプションはハイフンの後に英字1字を付けた形式のもので,-aや-vなどといったものがショートオプションである.また,ショートオプションは2つ以上のオプションを1つにまとめて実行することもできる.例えば,-l,-a,-tの3つのオプションを1つにまとめて-latとして実行することが可能である.それに対してロングオプションは,ハイフン2つの後に英字2字以上を付けることができる形式である.例えば-\/-allや-\/-versionなどである.ロングオプションは英字を2字以上使用することができるので,どのようなオプションであるかを明確にするために一般的にフルワードが採用されている.-\/-no-の形にすることで否定形のオプションを作成することも可能である.ロングオプションはショートオプションのように複数のオプションを1つにまとめることは不可能であり,1つ1つをスペースで区切る必要がある\cite{awesome}pp.14-5.
65
+ \end{quote}
66
+
67
+ ショートオプションを設定する際,英字1文字しか使用することができないので基本的には対応づけられたロングオプション(そのオプションがどのような動作を行うのかを表す単語)の頭文字であることが多く,慣れている人であればショートオプションを使うことで素早くアプリケーションを動かすことが可能である.しかし,用いるアプリが1つであるとは限らないし,全てのアプリのショートオプションを統一するのも困難である.またinitialとinstallなど,頭文字が重複してしまう2つのオプションがある場合,-iというショートオプションがinitialを意味するのかinstallを意味するのかを判断するのは,初心者には容易ではなく,混乱を引き起こしかねない.そのため,ヒューマンエラーを引き起こしてしまったり,学習コストがかかってしまったりすることがある.
68
+
69
+ ショートオプションの場合,複数のオプションを一つにまとめることができると記述したが,これは引数を必要としないオプションの場合である.引数を必要とするオプションの場合,2文字目以降の英字は引数扱いになってしまう.例えば上に示した-latにおいて,-lが引数を必要とするオプションであれば,-latはatという引数が与えられた-lという風に解釈されてしまうので注意が必要である.そういった点においてもショートオプションは初心者にとって扱いにくい形式であると言える.
70
+
71
+ Command Line Applicationのオプションの記述方法には幾つもの流儀があるようで
72
+ 何らかの標準があるわけではない.
73
+ しかし,それら全てに対応することはできず,なんらかの
74
+ 基準に従ってオプション記法を解釈する必要がある.
75
+
76
+ ここでは, "Build awesome command-line application in ruby 2"に従って
77
+ オプション記法と用語をまとめておく.
78
+
79
+ コマンドラインの基本形は,
80
+
81
+ \begin{quote}
82
+ ls -lat dir\_name
83
+ \end{quote}
84
+ というように
85
+
86
+ \begin{quote}
87
+ executabel options arguments
88
+ \end{quote}
89
+ での形であった.これは,GNU標準に基本構造が記載されている.
90
+
91
+ その後,幾つかのswitchやflagを組み合わせて,複雑な
92
+ 命令を解釈できるようにするに従って,
93
+
94
+ \begin{quote}
95
+ grep -\/-igonre-case -C 4 "some string" /tmp
96
+ \end{quote}
97
+ などとほぼ呪文のような形態となってきた.
98
+
99
+ その後,command line suiteと呼ばれる一群のcommand line
100
+ applicationが登場した.典型的なのはgitである\cite{awesome}pp.14-5.
101
+
102
+ gitはlinuxのバックアップを分散処理するために, Linus
103
+ Torvaldsが開発したものであるが,いくつもの
104
+ 機能に従ってそれぞれ個別のコマンドが用意されていた.
105
+ それぞれ,git-commitとかgit-fetchなどであった.
106
+ それがある時,すべてをまとめてsuiteとして
107
+ パッケージし直され,1つのまとまったcommandとして提供された.
108
+ すなわち,git commitやgit fetchなどである\cite{awesome}p.16.
109
+
110
+ \subsection{Command Line Interface}\label{}
111
+
112
+ Graphical User Interface(GUI)はコンピュータグラフィックスとポインティングデバイスを用いて操作を行う方法である.
113
+ それに対しCommand Line Interface(CLI)はCharacter User Interface(CUI)とも呼ばれ,キーボードからの入力と文字による情報の表示だけを用いて操作を行う方法である.
114
+
115
+ "Build awesome command-line application in ruby 2"の中で,
116
+
117
+ \begin{quote}
118
+ グラフィカルユーザーインターフェース(GUI)はいろんな点で素晴らしいものです. 冷たくまたたくカーソルの殺伐とした輝きよりも, GUIはとりわけ初心者にとても優しいものです. でも,それには犠牲が伴います.GUIの熟練者になるには,奥義のようなキーボードショートカットを学ぶ必要があります. そうだとしても,あなたは生産性と効率の限界にぶち当たります. GUIはスクリプトして自動化しにくいことで悪名高いし,それができたとしても,あなたのスクリプトは移植しにくい傾向にあります\cite{awesome}pp.3-4.
119
+ \end{quote}
120
+
121
+ と述べられており,GUIの限界について示唆している.また,
122
+
123
+ \begin{quote}
124
+ あなたのアプリをインストールした後,それを用いたユーザーが最初に体験するのは実際のコマンドラインインターフェイスでしょう.もしそのインターフェイスが難しく,直感的でなく,もしくは,とても醜いならば,たくさんの自信を呼び起こすことはできないし,ユーザーはそれを使って明確で簡潔な目的を達成するのに苦労するでしょう.逆に,使いやすければ,あなたのインターフェイスはアプリケーションに観衆と鋭さを与えてくれるでしょう\cite{awesome}pp.3-4.
125
+ \end{quote}
126
+
127
+ とも述べられている.
@@ -1,28 +1,28 @@
1
- This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.1.26) 8 FEB 2017 06:33
1
+ This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.1.26) 14 FEB 2018 18:49
2
2
  entering extended mode
3
3
  restricted \write18 enabled.
4
4
  file:line:error style messages enabled.
5
5
  %&-line parsing enabled.
6
- **method_cucumber.tex
7
- (./method_cucumber.tex
6
+ **chapter3.tex
7
+ (./chapter3.tex
8
8
  pLaTeX2e <2016/11/29> (based on LaTeX2e <2017/01/01>)
9
9
  Babel <3.9r> and hyphenation patterns for 83 language(s) loaded.
10
- ./method_cucumber.tex:2: Undefined control sequence.
11
- l.2 \subsection
12
- {Cucumberについて}
10
+ ./chapter3.tex:1: Undefined control sequence.
11
+ l.1 \chapter
12
+ {研究内容}\label{ux7814ux7a76ux5185ux5bb9}
13
13
  ?
14
- ./method_cucumber.tex:2: Emergency stop.
15
- l.2 \subsection
16
- {Cucumberについて}
14
+ ./chapter3.tex:1: Emergency stop.
15
+ l.1 \chapter
16
+ {研究内容}\label{ux7814ux7a76ux5185ux5bb9}
17
17
  End of file on the terminal!
18
18
 
19
19
 
20
20
  Here is how much of TeX's memory you used:
21
21
  4 strings out of 493683
22
- 74 string characters out of 6149653
22
+ 46 string characters out of 6149653
23
23
  53892 words of memory out of 5000000
24
24
  3671 multiletter control sequences out of 15000+600000
25
25
  7511 words of font info for 31 fonts, out of 8000000 for 9000
26
26
  929 hyphenation exceptions out of 8191
27
- 5i,0n,3p,51b,8s stack positions out of 5000i,500n,10000p,200000b,80000s
27
+ 5i,0n,3p,65b,8s stack positions out of 5000i,500n,10000p,200000b,80000s
28
28
  No pages of output.
@@ -0,0 +1,328 @@
1
+ \chapter{研究内容}\label{ux7814ux7a76ux5185ux5bb9}
2
+
3
+ \section{optparseとThorの比較}\label{}
4
+
5
+ \subsection{optparse}\label{optparse}
6
+
7
+ 今回の研究対象のmy\_helpは,optparseで実装されている.optparseはrubyの標準ライブラリであり,rubyでコマンドラインのオプションを操作するためのライブラリである\cite{opt1}.optparseが操作するオプションは,下記のonメソッドで設定する.
8
+
9
+ \begin{screen}
10
+ {\small
11
+ \begin{verbatim}
12
+ def execute
13
+ @argv << ’--help’ if @argv.size==0
14
+ command_parser = OptionParser.new do |opt|
15
+ opt.on(’-v’, ’--version’,’show program Version.’ ) { |v|
16
+ opt.version = MyHelp::VERSION
17
+ puts opt.ver
18
+ }
19
+ opt.on(’-l’, ’--list’, ’list specific helps’){list_helps}
20
+ #中略
21
+ end
22
+ #中略
23
+ end
24
+
25
+ def list_helps
26
+ #中略
27
+ end
28
+ #後略
29
+ \end{verbatim}}
30
+ \end{screen}
31
+
32
+
33
+ 上記のコードはoptparse版my\_helpの一部である.第1引数はショートオプションで,-aや-dのような形で設定する.同様にして,第2引数はロングオプションを表し,-\/-addや-\/-deleteのように,第3引数はそのオプションの説明文で,helpで表示される説明文を設定する.後ろのブロックには,そのオプションが指定された場合に実行されるコードを記述する
34
+ \cite{opt2}.しかしこのライブラリでは自然言語に近い,ハイフンなしのサブコマンドを実装するには相当な書き換えが必要となる.
35
+
36
+ メソッドの引数でオプションを定義し,引数が指定された時の処理をブロックで記述する.ブロックの引数にはオプションが指定されたことを示すtrueが渡される.onメソッドが呼ばれた時点ではオプションは実行されず,定義されるだけである.parseが呼ばれた際,コマンドラインにオプションが登録されていれば実行される.
37
+
38
+ オプション定義の際,スペースの後に任意の文字を追加すると,そのオプションは引数を受け取るオプションになる.その文字に{[}{]}をつけることで引数は必須でなくなる.また引数がハイフンで始まる場合,オプションとの間にハイフンを2つ挟むことで引数として認識される.
39
+
40
+ helpとversionのサブコマンドはデフォルトで作成される.
41
+
42
+ \subsection{Thor}\label{thor}
43
+
44
+ 本研究ではoptparseの代わりのライブラリとしてThorの採用を検討する.Thorは,コマンドラインツールの作成を支援するライブラリであり,gitやbundlerのようにサブコマンドを含むコマンドラインツールを簡単に作成することができる
45
+ \cite{koichiro}.Thorには以下のような特徴がある.
46
+
47
+ \begin{itemize}
48
+ \item コマンドラインオプションのパーズやサブコマンドごとのヘルプを作るなどの面倒な作業を簡単にこなすことができ,手早くビルドツールや実行可能なコマンドを作成できる
49
+ \cite{hibariya}.
50
+
51
+ \item 特殊なDSL(Domain Specific
52
+ Language)を使わずにメソッドを定義することで処理を記述するため,テストを行いやすい
53
+ \cite{hibariya}.
54
+
55
+ \item optparseでは作成することが困難な,マイナスを伴わない(自然言語に近い)サブコマンドを実装することが可能である.下記はThor版my\_helpの一部である.
56
+ \end{itemize}
57
+
58
+ \begin{screen}
59
+ {\small
60
+ \begin{verbatim}
61
+ desc 'list, --list', 'list specific helps'
62
+ map "--list" => "list"
63
+ def list
64
+ print "Specific help file:\n"
65
+ local_help_entries.each{|file|
66
+ file_path=File.join(@local_help_dir,file)
67
+ help = YAML.load(File.read(file_path))
68
+ print " #{file}\t:#{help[:head][0]}\n"
69
+ }
70
+ end
71
+ end
72
+ \end{verbatim}}
73
+ \end{screen}
74
+
75
+ 表\ref{opt_thor}にoptparseとThorの比較をまとめた.
76
+ optparseではonメソッドでコマンドの登録を行い,その後のdefでコマンドの振る舞いを定義している.それに対してThorは登録と定義を同時に行うことが可能である.また,Thorを継承したクラスのパブリックメソッドがそのままコマンドになるので非常に簡単にコマンドを作成することが可能である.Thorはコマンドを作成した時点で自動的にヘルプを生成し,コマンドを指定せずにコマンドラインアプリを実行するとヘルプを表示する.
77
+ \begin{table}[H]
78
+ \centering
79
+ \begin{center}
80
+ \caption{optparse とThor の比較. \label{opt_thor}}
81
+ \includegraphics[width=150mm]{../.././figs/opt_thor.png}
82
+ \end{center}
83
+
84
+
85
+ \label{fig:This}
86
+ \end{table}
87
+
88
+ \subsection{比較}\label{}
89
+
90
+ 書き換えの前に,単純なCLIを例にoptparseとThorの比較を行った.今回はコマンドに続けてnameを入力すると,Hello nameと出力するCLIをoptparseとThor,それぞれを用いて作成し,コード量や使用感を比較する.1つめのソースコードがoptparseを用いたもの(optparse.rb),2つめのソースコードがThorを用いたもの(thor.rb)である.
91
+
92
+ \begin{screen}
93
+ {\small
94
+ \begin{verbatim}
95
+
96
+ options = {:name => nil}
97
+
98
+ parser = OptionParser.new do|opts|
99
+ opts.on('-n', '--name name', 'Give your own name') do |name|
100
+ options[:name] = name;
101
+ end
102
+
103
+ opts.on('-h', '--help', 'Displays Help') do
104
+ puts opts
105
+ exit
106
+ end
107
+ end
108
+
109
+ parser.parse!
110
+
111
+ sayHello = 'Hello ' + options[:name]
112
+
113
+ puts sayHello
114
+
115
+ \end{verbatim}}
116
+ \end{screen}
117
+
118
+ \begin{screen}
119
+ {\small
120
+ \begin{verbatim}
121
+
122
+ require 'thor'
123
+
124
+ class MyCLI < Thor
125
+ desc "hello NAME", "say hello to NAME"
126
+ def hello(name)
127
+ puts "Hello #{name}"
128
+ end
129
+ end
130
+
131
+ MyCLI.start(ARGV)
132
+
133
+ \end{verbatim}}
134
+ \end{screen}
135
+
136
+ optparse.rbは,onメソッドで,入力された名前を受け取る-nというコマンドの定義を行い,parser.parse!以降でHello nameと出力するように記述を行った.また,-hのコマンドでヘルプを表示できるようにコマンドを登録した.本来ならば,-nではなく-h(helloの頭文字)で登録したかったのだが,ヘルプを表示するコマンドが-hであり,重複してしまうためやむを得ず-nとした.一方thor.rbでは,Thorを継承したクラスの中でnameの受け取りとHello nameの表示を行うようにhelloコマンドを設定した.optparseと違い,Thorでは自動でヘルプが作成されるため,helpコマンドは作成していない.optparse.rbはサブコマンドを書かずに実行すると,エラーになってしまうが,thor.rbではコマンド一覧を表示してくれる.
137
+
138
+ コード量は,helpを自動で生成する分,thor.rbの方が短くなっており,descの中で一つのコマンドが完結しているということもあってoptparse.rbよりも書きやすく感じられた.また,実際にコマンドを入力する際,thor.rbの方が自然言語に近いコマンドのため直感的に入力することができた.さらに,thor.rbでhelloの後にname(引数)を入力せずに実行するとhelloコマンドのusageが表示されるなど,使用感はthor.rbの方がよく感じられた.
139
+
140
+ \section{Thor化に伴う書き換え(具体的な作業)}\label{thorux5316ux306bux4f34ux3046ux66f8ux304dux63dbux3048ux5177ux4f53ux7684ux306aux4f5cux696d}
141
+
142
+ optparseからThorへの書き換えの際,第一に必要となるのは,\textasciitilde{}.gemspecファイル内にThorがインストールされるように変更を加えることである.
143
+
144
+ \begin{verbatim}
145
+ spec.add_development_dependency "thor"
146
+ \end{verbatim}
147
+
148
+ この記述は,作成しているコマンドラインツールがThorに依存性を持つことを意味している.optparseで書いた場合は,Thorに依存性を持つ必要がなく,当然このような記述はされていないので,上の一文を書き加える必要がある.また,bundle
149
+ updateをターミナル上で実行することで,ローカルでのコマンドラインツールを実行した際にThorが適用されるようにアップデートされる.そうすることで,Thorの記述が実際にソースファイルで使用できるようになる.
150
+
151
+ \section{Thorによるサブコマンド}\label{thorux306bux3088ux308bux30b5ux30d6ux30b3ux30deux30f3ux30c9}
152
+
153
+ 次に,コマンドが呼ばれる流れについて説明する.
154
+
155
+ \begin{enumerate}
156
+ \def\labelenumi{\arabic{enumi}.}
157
+ \tightlist
158
+ \item
159
+ コマンドを実行する.
160
+ \item
161
+ コマンドを実行すると,exeディレクトリの中にあるコマンド名と同じ名前のファイル(以降コマンドファイルと呼ぶ)が実行される.
162
+ \item
163
+ コマンドファイル内でlibディレクトリ内のソースファイルをrequireしておき,クラス内のコマンドを解析する関数を呼び出す.
164
+ \item
165
+ ソースファイル内に書かれた処理が実行される.
166
+ \end{enumerate}
167
+
168
+ このような流れでコマンドが呼び出され,処理が行われる.Thorとoptpaseの差異は4.におけるコマンドの解析による処理関数への中継の方法である.
169
+
170
+ \section{exeディレクトリの書き換え}\label{exeux30c7ux30a3ux30ecux30afux30c8ux30eaux306eux66f8ux304dux63dbux3048}
171
+
172
+ exeディレクトリの中にあるコマンドファイルについて書き換えを行う.まずはoptparseを使用した際のコマンドファイルの記述を記載する.
173
+
174
+ \begin{screen}
175
+ {\small
176
+ \begin{verbatim}
177
+ !/usr/bin/env ruby
178
+ require "my_help_opt"
179
+
180
+ MyHelp::Command.run(ARGV)
181
+ \end{verbatim}}
182
+ \end{screen}
183
+
184
+ optparseの場合,MyHelp::Command.run(ARGV)というクラス関数を実行することでコマンドを呼び出している.しかし,Thorはoptparseのようにrun(ARGV)を用いず,start(ARGV)というクラス関数を実行してコマンドを呼び出す.よって,runをstartに書き換える作業が必要になる.以下にThorを使用した際のコマンドファイルの記述を記載する.
185
+
186
+ \begin{screen}
187
+ {\small
188
+ \begin{verbatim}
189
+ !/usr/bin/env ruby
190
+ require "my_help_thor"
191
+
192
+ MyHelp::Command.start(ARGV)
193
+ \end{verbatim}}
194
+ \end{screen}
195
+
196
+ \section{libディレクトリ}\label{libux30c7ux30a3ux30ecux30afux30c8ux30ea}
197
+
198
+ まず,self.runについてであるが,Thorでは使用されないのでこの一文は削除する.次にinitializeであるが,こちらについては変更が必要である.そもそもinitializeとはmy\_helpを動かすのに必要なディレクトリがあるかどうかを調べるメソッドであり,なければここで作ることができる.optparseのinitializeではargv={[}{]}となっているところをThorでは(アスタリスク)argvとする必要がある.また,大きな違いはsuperの有無である.optparseではsuperは必要ないのだが,Thorでは必要になる.
199
+
200
+ \section{その他オプション}\label{ux305dux306eux4ed6ux30aaux30d7ux30b7ux30e7ux30f3}
201
+
202
+ optparseではコマンド実行の際,引数の解析を行い,その引数に合わせた関数を呼び出す,という手順で動作している.その手順を記述した関数がexecuteである.
203
+
204
+
205
+ \begin{screen}
206
+ {\small
207
+ \begin{verbatim}
208
+ def execute
209
+ @argv << '--help' if @argv.size==0
210
+ command_parser = OptionParser.new do |opt|
211
+ opt.on('-v', '--version','show program Version.') { |v|
212
+ opt.version = MyHelp::VERSION
213
+ puts opt.ver
214
+ }
215
+
216
+ opt.on('-l', '--list', 'list specific helps'){list_helps}
217
+ opt.on('-e NAME', '--edit NAME',
218
+ 'edit NAME help(eg test_help)'){|file| edit_help(file)}
219
+ opt.on('-i NAME', '--init NAME',
220
+ 'initialize NAME help(eg test_help).'){|file| init_help(file)}
221
+ opt.on('-m', '--make', 'make executables for all helps.'){make_help}
222
+ opt.on('-c', '--clean', 'clean up exe dir.'){clean_exe}
223
+ opt.on('--install_local','install local after edit helps')
224
+ {install_local}
225
+ opt.on('--delete NAME','delete NAME help'){|file| delete_help(file)}
226
+ end
227
+
228
+ begin
229
+ command_parser.parse!(@argv)
230
+ rescue=> eval
231
+ p eval
232
+ end
233
+ exit
234
+ end
235
+ \end{verbatim}}
236
+ \end{screen}
237
+
238
+ しかしThorの場合,executeのような間を取り持つ関数を用意する必要がなく,関数自体をコマンドとして登録していく形をとっているので,この関数は不必要である.以下にThorでの関数宣言を記載する.optparseの場合,-iというコマンドで呼び出されている処理をinitというコマンドで呼び出されるように書き換えたのが以下の関数である.
239
+
240
+
241
+ \begin{screen}
242
+ {\small
243
+ \begin{verbatim}
244
+ desc 'init NAME, --init NAME', 'initialize NAME help(eg test_help).'
245
+ # 関数についての説明,ここがヘルプで表示される.
246
+ map "--init" => "init"
247
+ --オプションでも呼び出すことが可能.
248
+ def init(file)
249
+ 以下は変更なし
250
+ p target_help=File.join(@local_help_dir,file)
251
+ if File::exists?(target_help)
252
+ puts "File exists. rm it first to initialize it."
253
+ exit
254
+ end
255
+ p template = File.join(@default_help_dir,'template_help')
256
+ FileUtils::Verbose.cp(template,target_help)
257
+ end
258
+ \end{verbatim}}
259
+ \end{screen}
260
+
261
+ このように書き換えることで,Thorを使用したオプションの設定を行うことができるのだが,実際に動かしてみるとエラーが表示されることがある.ここで表示されるエラーは,コマンドとして設定されていない関数があることについての警告文である.その関数はコマンドとして使用しないということを明確に記述することでこの警告を消すことが可能である.
262
+
263
+ \begin{screen}
264
+ {\small
265
+ \begin{verbatim}
266
+ no_commands do
267
+
268
+ この間にコマンド設定しない関数を記述
269
+
270
+ end
271
+ \end{verbatim}}
272
+ \end{screen}
273
+
274
+ \section{変更後のオプション}\label{}
275
+
276
+ オプションを省略記法から自然言語に近い記法に変更したことでより直感的なコマンド入力が可能になると思われる.以下にThorで書き換えた後のmy\_helpのオプション一覧を示す.
277
+
278
+ \begin{screen}
279
+ {\small
280
+ \begin{verbatim}
281
+ Commands:
282
+ my_help clean, --clean clean up exe dir.
283
+ my_help delete NAME, --delete NAME delete NAME help
284
+ my_help edit NAME, --edit NAME edit NAME help(eg test_help)
285
+ my_help help {[}COMMAND{]} Describe available commands or one specific
286
+ command
287
+ my_help init NAME, --init NAME initialize NAME help(eg test_help).
288
+ my_help install_local, --install_local install local after edit
289
+ helps
290
+ my_help list, --list list specific helps
291
+ my_help make, --make make executables for all helps.
292
+ my_help version, -v show program version
293
+ \end{verbatim}}
294
+ \end{screen}
295
+
296
+ \section{コマンドの自動生成}\label{}
297
+
298
+ 自分で作成したヘルプにはデフォルトでどのヘルプにも存在するコマンドと,個別に存在するコマンドがある.デフォルトで存在するコマンドを自動生成する部分をThorで記述しようとすると非常に複雑になるため,その部分の記述をoptparseで記述した.これにより,Thorで記述すると非常に冗長になってしまうソースコードを簡潔に記述することができた.
299
+
300
+ \begin{screen}
301
+ {\small
302
+ \begin{verbatim}
303
+ Commands:
304
+ emacs_help add NAME, --add NAME # add NAME help
305
+ emacs_help all, --all # all help
306
+ emacs_help backup NAME, --backup NAME # backup NAME help
307
+ emacs_help edit, --edit # edit help
308
+ emacs_help help [COMMAND] # Describe available commands
309
+ emacs_help hiki, --hiki # hiki help
310
+ emacs_help remove NAME, --remove NAME # remove NAME help
311
+ emacs_help store NAME, --store # store NAME help
312
+
313
+ Usage: emacs_help [options]
314
+ -v, --version show program Version.
315
+ -c, --cursor Cursor移動
316
+ -p, --ページ Page移動
317
+ -f, --ファイル File操作
318
+ -e, --編集 Edit操作
319
+ -w, --ウィンドウ Window操作
320
+ -b, --バッファ Buffer操作
321
+ -q, --終了 終了操作
322
+ \end{verbatim}}
323
+ \end{screen}
324
+
325
+ 上記はemacs\_helpという独自のヘルプのコマンドである.前半部分のコマンドがThorで記述されたもの,後半部分のコマンドはoptparseで自動生成したものである.
326
+
327
+
328
+
@@ -0,0 +1,13 @@
1
+ \chapter{総括}\label{ux7dcfux62ec}
2
+
3
+ 今回の研究では,ユーザメモソフトであるmy\_helpのThorによる書き換えを行った.この書き換えによる成果は以下の通りである.
4
+
5
+ \begin{enumerate}
6
+ \def\labelenumi{\arabic{enumi}.}
7
+ \item
8
+ オプションの記法を-(ハイフン)を用いた省略記法からフルワードを用いた自然言語に近い記法に変更した.これにより,初心者でも直感的にオプションを使用することができ,学習コストの削減,学習効率の向上に繋がると考えられる.
9
+ \item
10
+ Thorを用いることによってoptparseを用いた時よりもソースコードを短くすることに成功した.
11
+ \end{enumerate}
12
+
13
+
@@ -0,0 +1,5 @@
1
+ \chapter*{謝辞}\label{ux8b1dux8f9e}
2
+
3
+ 本研究を行うにあたって,終始多大なるご指導,ご鞭撻を頂いた関西学院大学理工学部情報科学科西谷滋人教授に対し,深く御礼申し上げます.また,本研究の進行に伴い,様々な助力,協力をして頂きました西谷研究室の先輩方,同輩達に心から感謝いたします.西谷研究室の益々のご発展,ご多幸を心よりお祈り申し上げます.
4
+
5
+
@@ -0,0 +1,38 @@
1
+ This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.1.26) 14 FEB 2018 19:09
2
+ entering extended mode
3
+ restricted \write18 enabled.
4
+ file:line:error style messages enabled.
5
+ %&-line parsing enabled.
6
+ **chapter6.tex
7
+ (./chapter6.tex
8
+ pLaTeX2e <2016/11/29> (based on LaTeX2e <2017/01/01>)
9
+ Babel <3.9r> and hyphenation patterns for 83 language(s) loaded.
10
+
11
+ ./chapter6.tex:3: LaTeX Error: Environment thebibliography undefined.
12
+
13
+ See the LaTeX manual or LaTeX Companion for explanation.
14
+ Type H <return> for immediate help.
15
+ ...
16
+
17
+ l.3 \begin{thebibliography}
18
+ {9}
19
+ ?
20
+ ./chapter6.tex:3: Emergency stop.
21
+ ...
22
+
23
+ l.3 \begin{thebibliography}
24
+ {9}
25
+ Your command was ignored.
26
+ Type I <command> <return> to replace it with another command,
27
+ or <return> to continue without it.
28
+
29
+
30
+ Here is how much of TeX's memory you used:
31
+ 6 strings out of 493683
32
+ 207 string characters out of 6149653
33
+ 54216 words of memory out of 5000000
34
+ 3672 multiletter control sequences out of 15000+600000
35
+ 7511 words of font info for 31 fonts, out of 8000000 for 9000
36
+ 929 hyphenation exceptions out of 8191
37
+ 5i,0n,4p,67b,16s stack positions out of 5000i,500n,10000p,200000b,80000s
38
+ No pages of output.
@@ -0,0 +1,28 @@
1
+ %\chapter*{参考文献}\label{ux53c2ux8003ux6587ux732e}
2
+
3
+ \begin{thebibliography}{9}
4
+ \bibitem{awesome} David Bryant Copeland, {\it Build Awesome Command-Line Applications in Ruby 2},(Pragmatic Bookshelf, 2013).
5
+
6
+ \bibitem{opt1} library optparse, erikhuda,
7
+ \texttt{https://docs.ruby-lang.org/ja/latest/library\slash optparse.html},
8
+ accessed 2018.2.9.
9
+
10
+ \bibitem{opt2} コマンドライン引数によるオプションに対応する (optparse),
11
+ \texttt{http://maku77.github.io/ruby/io/optparse.html},
12
+ accessed 2018.2.1.
13
+
14
+ \bibitem{koichiro} S.Koichiro,
15
+ Thorの使い方まとめ,
16
+ \texttt{http://qiita.com/succi0303/items\slash32560103190436c9435b},
17
+ accessed 2018.2.9.
18
+
19
+ \bibitem{hibariya} Hibariya,
20
+ Thorで簡単にコマンドラインアプリをつくる,
21
+ \url{http://note.hibariya.org/articles/20111025/a0.html},
22
+ accessed 2018.2.9.
23
+ \end{thebibliography}
24
+
25
+
26
+ % Add a bibliography block to the postdoc
27
+
28
+ \end{document}