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.
- checksums.yaml +4 -4
- data/.dockerignore +2 -0
- data/.gitignore +29 -2
- data/.ipynb_checkpoints/README-checkpoint.ipynb +511 -0
- data/.ipynb_checkpoints/Untitled-checkpoint.ipynb +6 -0
- data/.ruby-version +1 -0
- data/Dockerfile.template +13 -0
- data/README.md +341 -256
- data/README.org +480 -0
- data/Rakefile +9 -31
- data/docs/.ipynb_checkpoints/README-checkpoint.ipynb +112 -0
- data/docs/.ipynb_checkpoints/Untitled-checkpoint.ipynb +219 -0
- data/docs/README.ipynb +112 -0
- data/docs/bob/README_en.ipynb +219 -0
- data/docs/bob/diff_against_org_mode.ipynb +119 -0
- data/docs/bob/emacs_help.ipynb +133 -0
- data/docs/bob/template_help.ipynb +136 -0
- data/{my_help_nasu → docs/nasu}/.gitignore +0 -0
- data/{my_help_nasu → docs/nasu}/Rakefile +91 -20
- data/docs/nasu/abstract.hiki +17 -0
- data/{my_help_nasu → docs/nasu}/code.hiki +25 -21
- data/docs/nasu/discussion.hiki +38 -0
- data/docs/nasu/features/add.feature +12 -0
- data/docs/nasu/features/all_help.feature +10 -0
- data/docs/nasu/features/backup_list.feature +10 -0
- data/docs/nasu/features/edit_help.feature +9 -0
- data/docs/nasu/features/my_todo.feature +16 -0
- data/docs/nasu/features/remove.feature +10 -0
- data/docs/nasu/features/sample_e.feature +6 -0
- data/docs/nasu/features/step_definitions/add_spec.rb +18 -0
- data/docs/nasu/features/step_definitions/all_help_spec.rb +18 -0
- data/docs/nasu/features/step_definitions/backup_list_spec.rb +18 -0
- data/docs/nasu/features/step_definitions/edit_help_spec.rb +19 -0
- data/docs/nasu/features/step_definitions/my_todo_spec.rb +25 -0
- data/docs/nasu/features/step_definitions/remove_spec.rb +18 -0
- data/docs/nasu/features/step_definitions/store_spec.rb +18 -0
- data/docs/nasu/features/step_definitions/to_hiki_spec.rb +18 -0
- data/docs/nasu/features/store.feature +10 -0
- data/docs/nasu/features/support/env.rb +2 -0
- data/docs/nasu/features/test.feature +10 -0
- data/docs/nasu/features/to_hiki.feature +10 -0
- data/{my_help_nasu → docs/nasu}/features.hiki +80 -70
- data/docs/nasu/figs/cucumber01.001.jpg +0 -0
- data/docs/nasu/figs/cucumber02.001.jpg +0 -0
- data/docs/nasu/figs/cucumber03.001.jpg +0 -0
- data/docs/nasu/figs/cucumber04.001.jpg +0 -0
- data/docs/nasu/figs/cucumber05.001.jpg +0 -0
- data/docs/nasu/figs/cucumber1.jpg +0 -0
- data/docs/nasu/figs/cucumber2.jpg +0 -0
- data/docs/nasu/figs/cucumber3.jpg +0 -0
- data/docs/nasu/figs/cucumber4.jpg +0 -0
- data/docs/nasu/figs/my_help_nasu.001.jpeg +0 -0
- data/docs/nasu/figs/my_help_nasu.002.jpeg +0 -0
- data/docs/nasu/figs/my_help_nasu.003.jpeg +0 -0
- data/docs/nasu/figs/my_help_nasu.004.jpeg +0 -0
- data/docs/nasu/figs/my_help_nasu.005.jpeg +0 -0
- data/docs/nasu/figs/my_help_nasu.006.jpeg +0 -0
- data/docs/nasu/figs/my_help_nasu.007.jpeg +0 -0
- data/docs/nasu/figs/my_help_nasu.008.jpeg +0 -0
- data/docs/nasu/figs/my_help_nasu.pdf +0 -0
- data/docs/nasu/figs/my_help_nasu.png +0 -0
- data/docs/nasu/figs/my_help_nasu1.001.jpg +0 -0
- data/docs/nasu/figs/rspec01.001.jpg +0 -0
- data/docs/nasu/figs/rspec1.jpg +0 -0
- data/docs/nasu/figs/rspec2.jpg +0 -0
- data/{my_help_nasu → docs/nasu}/head2.tex +0 -0
- data/{my_help_nasu → docs/nasu}/hiki_help.yml +0 -0
- data/{my_help_nasu → docs/nasu}/introduction.hiki +15 -16
- data/{my_help_nasu → docs/nasu}/key_bind_mi +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/mt10@2x-87.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/mt1@2x-78.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/mt2@2x-79.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/mt3@2x-80.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/mt4@2x-81.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/mt5@2x-82.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/mt6@2x-83.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/mt7@2x-84.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/mt8@2x-85.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/mt9@2x-86.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/pasted-image-89.png +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/pasted-image-small-90.png +0 -0
- data/docs/nasu/keynote/cucumber01.key/Data/st0-104.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/Index.zip +0 -0
- data/docs/nasu/keynote/cucumber01.key/Metadata/BuildVersionHistory.plist +8 -0
- data/docs/nasu/keynote/cucumber01.key/Metadata/DocumentIdentifier +1 -0
- data/docs/nasu/keynote/cucumber01.key/Metadata/Properties.plist +0 -0
- data/docs/nasu/keynote/cucumber01.key/preview-micro.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/preview-web.jpg +0 -0
- data/docs/nasu/keynote/cucumber01.key/preview.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/mt10@2x-87.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/mt1@2x-78.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/mt2@2x-79.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/mt3@2x-80.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/mt4@2x-81.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/mt5@2x-82.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/mt6@2x-83.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/mt7@2x-84.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/mt8@2x-85.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/mt9@2x-86.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/pasted-image-89.png +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/pasted-image-small-90.png +0 -0
- data/docs/nasu/keynote/cucumber02.key/Data/st0-96.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/Index.zip +0 -0
- data/docs/nasu/keynote/cucumber02.key/Metadata/BuildVersionHistory.plist +8 -0
- data/docs/nasu/keynote/cucumber02.key/Metadata/DocumentIdentifier +1 -0
- data/docs/nasu/keynote/cucumber02.key/Metadata/Properties.plist +0 -0
- data/docs/nasu/keynote/cucumber02.key/preview-micro.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/preview-web.jpg +0 -0
- data/docs/nasu/keynote/cucumber02.key/preview.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/mt10@2x-87.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/mt1@2x-78.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/mt2@2x-79.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/mt3@2x-80.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/mt4@2x-81.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/mt5@2x-82.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/mt6@2x-83.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/mt7@2x-84.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/mt8@2x-85.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/mt9@2x-86.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/pasted-image-89.png +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/pasted-image-small-90.png +0 -0
- data/docs/nasu/keynote/cucumber03.key/Data/st0-100.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/Index.zip +0 -0
- data/docs/nasu/keynote/cucumber03.key/Metadata/BuildVersionHistory.plist +8 -0
- data/docs/nasu/keynote/cucumber03.key/Metadata/DocumentIdentifier +1 -0
- data/docs/nasu/keynote/cucumber03.key/Metadata/Properties.plist +0 -0
- data/docs/nasu/keynote/cucumber03.key/preview-micro.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/preview-web.jpg +0 -0
- data/docs/nasu/keynote/cucumber03.key/preview.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/mt10@2x-87.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/mt1@2x-78.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/mt2@2x-79.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/mt3@2x-80.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/mt4@2x-81.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/mt5@2x-82.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/mt6@2x-83.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/mt7@2x-84.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/mt8@2x-85.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/mt9@2x-86.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/pasted-image-106.png +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/pasted-image-small-107.png +0 -0
- data/docs/nasu/keynote/cucumber04.key/Data/st0-115.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/Index.zip +0 -0
- data/docs/nasu/keynote/cucumber04.key/Metadata/BuildVersionHistory.plist +8 -0
- data/docs/nasu/keynote/cucumber04.key/Metadata/DocumentIdentifier +1 -0
- data/docs/nasu/keynote/cucumber04.key/Metadata/Properties.plist +0 -0
- data/docs/nasu/keynote/cucumber04.key/preview-micro.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/preview-web.jpg +0 -0
- data/docs/nasu/keynote/cucumber04.key/preview.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/mt10@2x-87.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/mt1@2x-78.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/mt2@2x-79.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/mt3@2x-80.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/mt4@2x-81.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/mt5@2x-82.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/mt6@2x-83.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/mt7@2x-84.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/mt8@2x-85.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/mt9@2x-86.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/pasted-image-89.png +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/pasted-image-small-90.png +0 -0
- data/docs/nasu/keynote/cucumber05.key/Data/st0-97.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/Index.zip +0 -0
- data/docs/nasu/keynote/cucumber05.key/Metadata/BuildVersionHistory.plist +8 -0
- data/docs/nasu/keynote/cucumber05.key/Metadata/DocumentIdentifier +1 -0
- data/docs/nasu/keynote/cucumber05.key/Metadata/Properties.plist +0 -0
- data/docs/nasu/keynote/cucumber05.key/preview-micro.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/preview-web.jpg +0 -0
- data/docs/nasu/keynote/cucumber05.key/preview.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/mt10@2x-87.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/mt1@2x-78.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/mt2@2x-79.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/mt3@2x-80.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/mt4@2x-81.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/mt5@2x-82.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/mt6@2x-83.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/mt7@2x-84.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/mt8@2x-85.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/mt9@2x-86.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Data/st0-299.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Index.zip +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Metadata/BuildVersionHistory.plist +8 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Metadata/DocumentIdentifier +1 -0
- data/docs/nasu/keynote/my_help_nasu1.key/Metadata/Properties.plist +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/preview-micro.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/preview-web.jpg +0 -0
- data/docs/nasu/keynote/my_help_nasu1.key/preview.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/mt10@2x-87.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/mt1@2x-78.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/mt2@2x-79.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/mt3@2x-80.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/mt4@2x-81.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/mt5@2x-82.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/mt6@2x-83.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/mt7@2x-84.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/mt8@2x-85.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/mt9@2x-86.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/pasted-image-89.png +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/pasted-image-small-90.png +0 -0
- data/docs/nasu/keynote/rspec01.key/Data/st0-96.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/Index.zip +0 -0
- data/docs/nasu/keynote/rspec01.key/Metadata/BuildVersionHistory.plist +8 -0
- data/docs/nasu/keynote/rspec01.key/Metadata/DocumentIdentifier +1 -0
- data/docs/nasu/keynote/rspec01.key/Metadata/Properties.plist +0 -0
- data/docs/nasu/keynote/rspec01.key/preview-micro.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/preview-web.jpg +0 -0
- data/docs/nasu/keynote/rspec01.key/preview.jpg +0 -0
- data/docs/nasu/latex_dir/abstract.tex +18 -0
- data/{my_help_nasu → docs/nasu}/latex_dir/code.tex +9 -21
- data/docs/nasu/latex_dir/discussion.aux +28 -0
- data/docs/nasu/latex_dir/discussion.tex +19 -0
- data/docs/nasu/latex_dir/features.aux +30 -0
- data/docs/nasu/latex_dir/features.tex +186 -0
- data/{my_help_nasu → docs/nasu}/latex_dir/head.tex +1 -1
- data/{my_help_nasu → docs/nasu}/latex_dir/introduction.aux +3 -3
- data/{my_help_nasu → docs/nasu}/latex_dir/introduction.tex +15 -16
- data/{my_help_nasu → docs/nasu}/latex_dir/jlisting.sty +0 -0
- data/{my_help_nasu/latex_dir/consideration.aux → docs/nasu/latex_dir/method.aux} +7 -8
- data/docs/nasu/latex_dir/method.tex +6 -0
- data/{my_help_nasu → docs/nasu}/latex_dir/method_bdd.aux +10 -7
- data/{my_help_nasu → docs/nasu}/latex_dir/method_bdd.tex +14 -5
- data/{my_help_nasu → docs/nasu}/latex_dir/method_cucumber.aux +10 -9
- data/{my_help_nasu → docs/nasu}/latex_dir/method_cucumber.tex +15 -18
- data/{my_help_nasu → docs/nasu}/latex_dir/method_usage.aux +11 -11
- data/{my_help_nasu → docs/nasu}/latex_dir/method_usage.tex +35 -29
- data/{my_help_nasu → docs/nasu}/latex_dir/my_help_nasu.aux +6 -5
- data/docs/nasu/latex_dir/my_help_nasu.log +363 -0
- data/docs/nasu/latex_dir/my_help_nasu.pdf +0 -0
- data/docs/nasu/latex_dir/my_help_nasu.synctex.gz +0 -0
- data/{my_help_nasu → docs/nasu}/latex_dir/my_help_nasu.tex +12 -18
- data/docs/nasu/latex_dir/my_help_nasu.toc +35 -0
- data/docs/nasu/latex_dir/new_code.aux +44 -0
- data/docs/nasu/latex_dir/new_code.tex +237 -0
- data/{my_help_nasu → docs/nasu}/latex_dir/overview.aux +2 -2
- data/{my_help_nasu/latex_dir → docs/nasu}/latex_dir/pre.tex +0 -0
- data/docs/nasu/method.hiki +5 -0
- data/{my_help_nasu → docs/nasu}/method_bdd.hiki +14 -8
- data/{my_help_nasu → docs/nasu}/method_cucumber.hiki +14 -17
- data/{my_help_nasu → docs/nasu}/method_usage.hiki +25 -24
- data/docs/nasu/my_help_nasu/my_help_nasu.001.bb +5 -0
- data/{my_help_nasu → docs/nasu}/my_help_nasu/my_help_nasu.001.jpeg +0 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.002.bb +5 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.002.jpeg +0 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.003.bb +5 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.003.jpeg +0 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.004.bb +5 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.004.jpeg +0 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.005.bb +5 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.005.jpeg +0 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.006.bb +5 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.006.jpeg +0 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.007.bb +5 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.007.jpeg +0 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.008.bb +5 -0
- data/docs/nasu/my_help_nasu/my_help_nasu.008.jpeg +0 -0
- data/docs/nasu/my_help_nasu.hiki +28 -0
- data/docs/nasu/my_help_nasu.key +0 -0
- data/docs/nasu/my_help_nasu09.key +0 -0
- data/docs/nasu/my_help_nasu1/my_help_nasu1.001.jpg +0 -0
- data/docs/nasu/nasu_abst/abst_fig.bb +5 -0
- data/docs/nasu/nasu_abst/abst_fig.png +0 -0
- data/docs/nasu/nasu_abst/my_help_nasu.001.bb +5 -0
- data/docs/nasu/nasu_abst/my_help_nasu.001.jpg +0 -0
- data/docs/nasu/nasu_abst/my_help_nasu.001.png +0 -0
- data/docs/nasu/nasu_abst/nasu_abst.aux +10 -0
- data/docs/nasu/nasu_abst/nasu_abst.log +179 -0
- data/docs/nasu/nasu_abst/nasu_abst.pdf +0 -0
- data/docs/nasu/nasu_abst/nasu_abst.synctex.gz +0 -0
- data/docs/nasu/nasu_abst/nasu_abst.tex +63 -0
- data/docs/nasu/new_code.hiki +246 -0
- data/docs/nasu/spec/.rspec +2 -0
- data/docs/nasu/spec/my_help_spec.rb +75 -0
- data/docs/nasu/spec/my_todo/todo_spec.rb +15 -0
- data/docs/nasu/spec/spec_helper.rb +11 -0
- data/docs/nasu/spec/support/aruba.rb +1 -0
- data/docs/nasu/spec/thor_spec.rb +81 -0
- data/docs/nasu/test/my_help_test.rb +11 -0
- data/docs/nasu/test/test_helper.rb +4 -0
- data/{hikis → docs}/tmp.org +0 -0
- data/docs/yagi/bachelor_thesis/final/figs/opt_thor.jpeg +0 -0
- data/docs/yagi/bachelor_thesis/final/handout/handout.aux +14 -0
- data/{my_help_nasu/latex_dir/my_help_nasu.log → docs/yagi/bachelor_thesis/final/handout/handout.log} +46 -175
- data/docs/yagi/bachelor_thesis/final/handout/handout.pdf +0 -0
- data/docs/yagi/bachelor_thesis/final/handout/handout.synctex.gz +0 -0
- data/docs/yagi/bachelor_thesis/final/handout/handout.tex +123 -0
- data/docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.aux +46 -0
- data/docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.dvi +0 -0
- data/{lor → docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.lof} +0 -0
- data/docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.lot +0 -0
- data/docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.synctex.gz +0 -0
- data/docs/yagi/bachelor_thesis/final/mk_latex/thesis/thesis.toc +0 -0
- data/docs/yagi/bachelor_thesis/final/thesis/figs/opt_thor.png +0 -0
- data/docs/yagi/bachelor_thesis/final/thesis/final_thesis.ipynb +449 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/latex/final_thesis.tex +718 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter1/chapter1.tex +8 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter2/chapter2.log +28 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter2/chapter2.tex +127 -0
- data/{my_help_nasu/latex_dir/method_cucumber.log → docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter3/chapter3.log} +11 -11
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter3/chapter3.tex +328 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter4/chapter4.tex +13 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter5/chapter5.tex +5 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter6/chapter6.log +38 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/chapter6/chapter6.tex +28 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/informations/informations.aux +1 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/informations/informations.log +55 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/informations/informations.tex +6 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/split_files/tmp/tmp.tex +1 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/.splits_location.tex +6 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.aux +114 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.lof +4 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.log +699 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.lot +5 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.out.ps +98 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.pdf +0 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.synctex.gz +0 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.tex +30 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis.toc +22 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis/thesis_checked_180213_1433.pdf +0 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis_pieces/form00_style.tex +25 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis_pieces/tightlist_setting.tex +2 -0
- data/docs/yagi/bachelor_thesis/final/thesis/mk_latex/thesis_pieces/usepackage.tex +25 -0
- data/docs/yagi/bachelor_thesis/translation/awesome_chapter2.ipynb +84 -0
- data/docs/yagi/bachelor_thesis/translation/awesome_introduction.ipynb +328 -0
- data/docs/yagi/comparisons/.ipynb_checkpoints/Untitled-checkpoint.ipynb +6 -0
- data/docs/yagi/comparisons/.ipynb_checkpoints/comp-checkpoint.ipynb +230 -0
- data/docs/yagi/comparisons/comp.ipynb +178 -0
- data/docs/yagi/comparisons/hanami.rb +25 -0
- data/docs/yagi/comparisons/optparse.rb +21 -0
- data/docs/yagi/comparisons/thor.rb +11 -0
- data/docs/yagi/midterm_presentation/.ipynb_checkpoints/abst-checkpoint.ipynb +87 -0
- data/docs/yagi/midterm_presentation/abst.aux +16 -0
- data/docs/yagi/midterm_presentation/abst.ipynb +87 -0
- data/docs/yagi/midterm_presentation/abst.log +222 -0
- data/docs/yagi/midterm_presentation/abst.pdf +0 -0
- data/docs/yagi/midterm_presentation/abst.synctex.gz +0 -0
- data/docs/yagi/midterm_presentation/abst.tex +133 -0
- data/{my_help_nasu/latex_dir/jlisting.tex → docs/yagi/midterm_presentation/jlisting.sty} +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote/mid_keynote.001.png +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote/mid_keynote.002.png +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote/mid_keynote.003.png +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote/mid_keynote.004.png +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote/mid_keynote.005.png +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt10@2x-92.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt1@2x-83.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt2@2x-84.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt3@2x-85.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt4@2x-86.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt5@2x-87.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt6@2x-88.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt7@2x-89.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt8@2x-90.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/mt9@2x-91.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/st0-438.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/st1-598.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/st2-648.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/st3-652.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Data/st4-671.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Index.zip +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Metadata/BuildVersionHistory.plist +8 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Metadata/DocumentIdentifier +1 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/Metadata/Properties.plist +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/preview-micro.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/preview-web.jpg +0 -0
- data/docs/yagi/midterm_presentation/mid_keynote.key/preview.jpg +0 -0
- data/docs/yagi/thor_spec.ipynb +192 -0
- data/docs/yagi/thor_task.ipynb +98 -0
- data/exe/my_help +3 -1
- data/lib/my_help/org2yml.rb +46 -0
- data/lib/my_help/version.rb +1 -1
- data/lib/my_help/yml2org.rb +36 -0
- data/lib/my_help.rb +76 -30
- data/lib/my_help_thor.rb +170 -0
- data/lib/my_todo/my_todo.rb +5 -2
- data/lib/specific_help.rb +52 -25
- data/lib/{specific_help.rb~ → specific_help_bu.rb} +129 -89
- data/lib/specific_help_opt.rb +71 -0
- data/lib/specific_help_thor.rb +172 -0
- data/lib/templates/emacs_help.org +47 -0
- data/lib/templates/emacs_help_e.org +49 -0
- data/lib/templates/my_todo.org +11 -0
- data/lib/templates/template_help.org +8 -0
- data/make_docker.sh +5 -0
- data/my_help.gemspec +3 -2
- metadata +406 -92
- data/.DS_Store +0 -0
- data/CODE_OF_CONDUCT.md +0 -49
- data/README_en.md +0 -132
- data/exe/e_h +0 -4
- data/exe/emacs_help +0 -4
- data/exe/my_todo +0 -4
- data/hikis/README_en.hiki +0 -130
- data/hikis/README_ja.hiki +0 -316
- data/hikis/diff_against_org-mode.hiki +0 -34
- data/hikis/emacs_help.hiki +0 -47
- data/hikis/template_help.hiki +0 -51
- data/latexes/handout_pre.tex +0 -11
- data/lib/.emacs_help.rb.swp +0 -0
- data/lib/daddygongon/emacs_help.yml +0 -89
- data/lib/daddygongon/my_todo.yml +0 -31
- data/lib/daddygongon/template_help.yml +0 -33
- data/lib/emacs_help.rb~ +0 -137
- data/lib/my_todo/my_todo.rb~ +0 -7
- data/lib/todo.rb~ +0 -1
- data/my_help.wiki/Home.md +0 -330
- data/my_help.wiki/README_en.md +0 -132
- data/my_help.wiki/README_ja.md +0 -330
- data/my_help.wiki/emacs_help.md +0 -46
- data/my_help.wiki/template_help.md +0 -51
- data/my_help_nasu/.DS_Store +0 -0
- data/my_help_nasu/consideration.hiki +0 -8
- data/my_help_nasu/figs/my_help_nasu.001.jpeg +0 -0
- data/my_help_nasu/figs/my_help_nasu.001.jpg +0 -0
- data/my_help_nasu/figs/my_help_nasu1.001.jpg +0 -0
- data/my_help_nasu/latex_dir/.gitignore +0 -1
- data/my_help_nasu/latex_dir/Rakefile +0 -420
- data/my_help_nasu/latex_dir/code.aux +0 -25
- data/my_help_nasu/latex_dir/consideration.tex +0 -9
- data/my_help_nasu/latex_dir/features.aux +0 -31
- data/my_help_nasu/latex_dir/features.tex +0 -173
- data/my_help_nasu/latex_dir/hiki_help.yml +0 -53
- data/my_help_nasu/latex_dir/latex_dir/head.tex +0 -9
- data/my_help_nasu/latex_dir/latex_dir/jlisting.tex +0 -216
- data/my_help_nasu/latex_dir/my_help_nasu.pdf +0 -0
- data/my_help_nasu/latex_dir/my_help_nasu.synctex.gz +0 -0
- data/my_help_nasu/latex_dir/my_help_nasu.toc +0 -32
- data/my_help_nasu/latex_dir/overview.tex +0 -12
- data/my_help_nasu/latex_dir/pre.tex +0 -36
- data/my_help_nasu/my_help_nasu/.DS_Store +0 -0
- data/my_help_nasu/my_help_nasu.hiki +0 -32
- data/my_help_nasu/my_help_nasu.key +0 -0
- data/my_help_nasu/overview.hiki +0 -11
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "markdown",
|
|
5
|
+
"metadata": {
|
|
6
|
+
"toc": "true"
|
|
7
|
+
},
|
|
8
|
+
"source": [
|
|
9
|
+
"# Table of Contents\n",
|
|
10
|
+
" <p><div class=\"lev1 toc-item\"><a href=\"#emacs_help\" data-toc-modified-id=\"emacs_help-1\"><span class=\"toc-item-num\">1 </span>emacs_help</a></div>"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"cell_type": "markdown",
|
|
15
|
+
"metadata": {},
|
|
16
|
+
"source": [
|
|
17
|
+
"# emacs_help\n",
|
|
18
|
+
"\n",
|
|
19
|
+
"```\n",
|
|
20
|
+
" emacsのキーバインド\n",
|
|
21
|
+
" \n",
|
|
22
|
+
"特殊キー操作\n",
|
|
23
|
+
" c-f, controlキーを押しながら 'f'\n",
|
|
24
|
+
" M-f, escキーを押した後一度離して'f'\n",
|
|
25
|
+
" 操作の中断c-g, 操作の取り消し(Undo) c-x u\n",
|
|
26
|
+
" cc by Shigeto R. Nishitani, 2016\n",
|
|
27
|
+
"カーソル移動cursor\n",
|
|
28
|
+
" c-f, move Forwrard, 前or右へ\n",
|
|
29
|
+
" c-b, move Backwrard, 後or左へ\n",
|
|
30
|
+
" c-a, go Ahead of line, 行頭へ\n",
|
|
31
|
+
" c-e, go End of line, 行末へ\n",
|
|
32
|
+
" c-n, move Next line, 次行へ\n",
|
|
33
|
+
" c-p, move Previous line, 前行へ\n",
|
|
34
|
+
"ページ移動page\n",
|
|
35
|
+
" c-v, move Vertical, 次のページへ\n",
|
|
36
|
+
" M-v, move reversive Vertical,前のページへ\n",
|
|
37
|
+
" c-l, centerise Line, 現在行を中心に\n",
|
|
38
|
+
" M-<, move Top of file, ファイルの先頭へ\n",
|
|
39
|
+
" M->, move Bottom of file, ファイルの最後尾へ\n",
|
|
40
|
+
"ファイル操作file\n",
|
|
41
|
+
" c-x c-f, Find file, ファイルを開く\n",
|
|
42
|
+
" c-x c-s, Save file, ファイルを保存\n",
|
|
43
|
+
" c-x c-w, Write file NAME, ファイルを別名で書き込む\n",
|
|
44
|
+
"編集操作edit\n",
|
|
45
|
+
" c-d, Delete char, 一字削除\n",
|
|
46
|
+
" c-k, Kill line, 一行抹消,カット\n",
|
|
47
|
+
" c-y, Yank, ペースト\n",
|
|
48
|
+
" c-w, Kill region, 領域抹消,カット\n",
|
|
49
|
+
" 領域選択は,先頭or最後尾でc-spaceした後,最後尾or先頭へカーソル移動\n",
|
|
50
|
+
" c-s, forward incremental Search WORD, 前へWORDを検索\n",
|
|
51
|
+
" c-r, Reverse incremental search WORD, 後へWORDを検索\n",
|
|
52
|
+
" M-x query-replace WORD1 <ret> WORD2:対話的置換(y or nで可否選択)\n",
|
|
53
|
+
"ウィンドウ操作window\n",
|
|
54
|
+
" c-x 2, 2 windows, 二つに分割\n",
|
|
55
|
+
" c-x 1, 1 windows, 一つに戻す\n",
|
|
56
|
+
" c-x 3, 3rd window sep,縦線分割\n",
|
|
57
|
+
" c-x o, Other windows, 次の画面へ移動\n",
|
|
58
|
+
"バッファー操作buffer(すでにopenしてemacsにバッファーされたfile)\n",
|
|
59
|
+
" c-x b, show Buffer, バッファのリスト\n",
|
|
60
|
+
" c-x c-b, next Buffer, 次のバッファへ移動\n",
|
|
61
|
+
"終了操作quit\n",
|
|
62
|
+
" c-x c-c, Quit emacs, ファイルを保存して終了\n",
|
|
63
|
+
" c-z, suspend emacs, 一時停止,fgで復活\n",
|
|
64
|
+
"```"
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"cell_type": "code",
|
|
69
|
+
"execution_count": null,
|
|
70
|
+
"metadata": {
|
|
71
|
+
"collapsed": true
|
|
72
|
+
},
|
|
73
|
+
"outputs": [],
|
|
74
|
+
"source": []
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"metadata": {
|
|
78
|
+
"kernelspec": {
|
|
79
|
+
"display_name": "Ruby 2.2.2",
|
|
80
|
+
"language": "ruby",
|
|
81
|
+
"name": "ruby"
|
|
82
|
+
},
|
|
83
|
+
"language_info": {
|
|
84
|
+
"file_extension": ".rb",
|
|
85
|
+
"mimetype": "application/x-ruby",
|
|
86
|
+
"name": "ruby",
|
|
87
|
+
"version": "2.2.2"
|
|
88
|
+
},
|
|
89
|
+
"latex_envs": {
|
|
90
|
+
"LaTeX_envs_menu_present": true,
|
|
91
|
+
"autocomplete": true,
|
|
92
|
+
"bibliofile": "biblio.bib",
|
|
93
|
+
"cite_by": "apalike",
|
|
94
|
+
"current_citInitial": 1,
|
|
95
|
+
"eqLabelWithNumbers": true,
|
|
96
|
+
"eqNumInitial": 1,
|
|
97
|
+
"hotkeys": {
|
|
98
|
+
"equation": "Ctrl-E",
|
|
99
|
+
"itemize": "Ctrl-I"
|
|
100
|
+
},
|
|
101
|
+
"labels_anchors": false,
|
|
102
|
+
"latex_user_defs": false,
|
|
103
|
+
"report_style_numbering": false,
|
|
104
|
+
"user_envs_cfg": false
|
|
105
|
+
},
|
|
106
|
+
"toc": {
|
|
107
|
+
"colors": {
|
|
108
|
+
"hover_highlight": "#DAA520",
|
|
109
|
+
"navigate_num": "#000000",
|
|
110
|
+
"navigate_text": "#333333",
|
|
111
|
+
"running_highlight": "#FF0000",
|
|
112
|
+
"selected_highlight": "#FFD700",
|
|
113
|
+
"sidebar_border": "#EEEEEE",
|
|
114
|
+
"wrapper_background": "#FFFFFF"
|
|
115
|
+
},
|
|
116
|
+
"moveMenuLeft": true,
|
|
117
|
+
"nav_menu": {
|
|
118
|
+
"height": "31px",
|
|
119
|
+
"width": "253px"
|
|
120
|
+
},
|
|
121
|
+
"navigate_menu": true,
|
|
122
|
+
"number_sections": true,
|
|
123
|
+
"sideBar": true,
|
|
124
|
+
"threshold": 4,
|
|
125
|
+
"toc_cell": true,
|
|
126
|
+
"toc_section_display": "block",
|
|
127
|
+
"toc_window_display": true,
|
|
128
|
+
"widenNotebook": false
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"nbformat": 4,
|
|
132
|
+
"nbformat_minor": 2
|
|
133
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "markdown",
|
|
5
|
+
"metadata": {
|
|
6
|
+
"toc": "true"
|
|
7
|
+
},
|
|
8
|
+
"source": [
|
|
9
|
+
"# Table of Contents\n",
|
|
10
|
+
" <p><div class=\"lev1 toc-item\"><a href=\"#template_helpの出力結果\" data-toc-modified-id=\"template_helpの出力結果-1\"><span class=\"toc-item-num\">1 </span>template_helpの出力結果</a></div><div class=\"lev1 toc-item\"><a href=\"#template_helpの中身\" data-toc-modified-id=\"template_helpの中身-2\"><span class=\"toc-item-num\">2 </span>template_helpの中身</a></div>"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"cell_type": "markdown",
|
|
15
|
+
"metadata": {},
|
|
16
|
+
"source": [
|
|
17
|
+
"# template_helpの出力結果\n",
|
|
18
|
+
"\n",
|
|
19
|
+
"``` ruby\n",
|
|
20
|
+
"bob% bundle exec exe/template_help --to_hiki\n",
|
|
21
|
+
"ヘルプのサンプル雛形.\n",
|
|
22
|
+
"headに常に表示される内容を記述.\n",
|
|
23
|
+
"---\n",
|
|
24
|
+
"<<<\n",
|
|
25
|
+
" ヘルプのサンプル雛形.\n",
|
|
26
|
+
" headに常に表示される内容を記述.\n",
|
|
27
|
+
"単元\n",
|
|
28
|
+
" c-f, move Forwrard, 前or右へ\n",
|
|
29
|
+
" フォーマットは自由です.\n",
|
|
30
|
+
"単元2\n",
|
|
31
|
+
" c-f, move Forwrard, 前or右へ\n",
|
|
32
|
+
" フォーマットは自由です.\n",
|
|
33
|
+
"```\n",
|
|
34
|
+
"\n",
|
|
35
|
+
"# template_helpの中身\n",
|
|
36
|
+
"helpの実態は~/.my_helpに保存されたYAML形式のfileです.書き方はコメントを参照ください.\n",
|
|
37
|
+
"\n",
|
|
38
|
+
"```ruby\n",
|
|
39
|
+
"---\n",
|
|
40
|
+
"#start header, which appears every time.\n",
|
|
41
|
+
":head: #never change\n",
|
|
42
|
+
"- ヘルプのサンプル雛形 #describe the contents breafly.\n",
|
|
43
|
+
"- \" headに常に表示される内容を記述\" #head '- ' is necessary\n",
|
|
44
|
+
":license: #never change\n",
|
|
45
|
+
"- \" cc by Shigeto R. Nishitani, 2016\" #show licence\n",
|
|
46
|
+
"# start the first item\n",
|
|
47
|
+
":item: #change snake word\n",
|
|
48
|
+
" :opts: #never change\n",
|
|
49
|
+
" :short: -i #change short option\n",
|
|
50
|
+
" :long: --item #change long option\n",
|
|
51
|
+
" :desc: 単元(item) #describe what for in help list\n",
|
|
52
|
+
" :title: 単元 #describe what for in each help\n",
|
|
53
|
+
" :cont: #the following lines are appeared.\n",
|
|
54
|
+
" - c-f, move Forwrard, 前or右へ #top ' - ' are necessary for yaml format\n",
|
|
55
|
+
" - フォーマットは自由です. \n",
|
|
56
|
+
"\n",
|
|
57
|
+
"# start the second item... and so on.\n",
|
|
58
|
+
":item2: \n",
|
|
59
|
+
" :opts: \n",
|
|
60
|
+
" :short: -j\n",
|
|
61
|
+
" :long: --item2\n",
|
|
62
|
+
" :desc: 単元2(item2)\n",
|
|
63
|
+
" :title: 単元2\n",
|
|
64
|
+
" :cont:\n",
|
|
65
|
+
" - c-f, move Forwrard, 前or右へ\n",
|
|
66
|
+
" - フォーマットは自由です. \n",
|
|
67
|
+
"```\n"
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"cell_type": "code",
|
|
72
|
+
"execution_count": null,
|
|
73
|
+
"metadata": {
|
|
74
|
+
"collapsed": true
|
|
75
|
+
},
|
|
76
|
+
"outputs": [],
|
|
77
|
+
"source": []
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"metadata": {
|
|
81
|
+
"kernelspec": {
|
|
82
|
+
"display_name": "Ruby 2.2.2",
|
|
83
|
+
"language": "ruby",
|
|
84
|
+
"name": "ruby"
|
|
85
|
+
},
|
|
86
|
+
"language_info": {
|
|
87
|
+
"file_extension": ".rb",
|
|
88
|
+
"mimetype": "application/x-ruby",
|
|
89
|
+
"name": "ruby",
|
|
90
|
+
"version": "2.2.2"
|
|
91
|
+
},
|
|
92
|
+
"latex_envs": {
|
|
93
|
+
"LaTeX_envs_menu_present": true,
|
|
94
|
+
"autocomplete": true,
|
|
95
|
+
"bibliofile": "biblio.bib",
|
|
96
|
+
"cite_by": "apalike",
|
|
97
|
+
"current_citInitial": 1,
|
|
98
|
+
"eqLabelWithNumbers": true,
|
|
99
|
+
"eqNumInitial": 1,
|
|
100
|
+
"hotkeys": {
|
|
101
|
+
"equation": "Ctrl-E",
|
|
102
|
+
"itemize": "Ctrl-I"
|
|
103
|
+
},
|
|
104
|
+
"labels_anchors": false,
|
|
105
|
+
"latex_user_defs": false,
|
|
106
|
+
"report_style_numbering": false,
|
|
107
|
+
"user_envs_cfg": false
|
|
108
|
+
},
|
|
109
|
+
"toc": {
|
|
110
|
+
"colors": {
|
|
111
|
+
"hover_highlight": "#DAA520",
|
|
112
|
+
"navigate_num": "#000000",
|
|
113
|
+
"navigate_text": "#333333",
|
|
114
|
+
"running_highlight": "#FF0000",
|
|
115
|
+
"selected_highlight": "#FFD700",
|
|
116
|
+
"sidebar_border": "#EEEEEE",
|
|
117
|
+
"wrapper_background": "#FFFFFF"
|
|
118
|
+
},
|
|
119
|
+
"moveMenuLeft": true,
|
|
120
|
+
"nav_menu": {
|
|
121
|
+
"height": "48px",
|
|
122
|
+
"width": "253px"
|
|
123
|
+
},
|
|
124
|
+
"navigate_menu": true,
|
|
125
|
+
"number_sections": true,
|
|
126
|
+
"sideBar": true,
|
|
127
|
+
"threshold": 4,
|
|
128
|
+
"toc_cell": true,
|
|
129
|
+
"toc_section_display": "block",
|
|
130
|
+
"toc_window_display": true,
|
|
131
|
+
"widenNotebook": false
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"nbformat": 4,
|
|
135
|
+
"nbformat_minor": 2
|
|
136
|
+
}
|
|
File without changes
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
|
|
1
2
|
# -*- coding: utf-8 -*-
|
|
2
3
|
require 'systemu'
|
|
3
4
|
require 'tempfile'
|
|
4
5
|
require 'colorize'
|
|
6
|
+
require 'coderay'
|
|
7
|
+
|
|
5
8
|
# -*- coding: utf-8 -*-
|
|
6
9
|
begin
|
|
7
10
|
$hiki_dir = File.readlines('./.hikirc')[0].chomp
|
|
@@ -34,7 +37,7 @@ task :reset_hiki do
|
|
|
34
37
|
stdout.split("\n").each{|line|
|
|
35
38
|
files << line.split(/\s+/)[-1]
|
|
36
39
|
}
|
|
37
|
-
|
|
40
|
+
r_files = files.reverse[0..-4]
|
|
38
41
|
r_files.each{|file|
|
|
39
42
|
print "remove #{file}[ynqlA]? ".red
|
|
40
43
|
input=STDIN.gets.chomp
|
|
@@ -49,7 +52,7 @@ task :reset_hiki do
|
|
|
49
52
|
when 'q'
|
|
50
53
|
exit
|
|
51
54
|
when 'A'
|
|
52
|
-
print "\nAre you sure
|
|
55
|
+
print "\nAre you sure[Yn]? ".magenta
|
|
53
56
|
input2 = STDIN.gets.chomp
|
|
54
57
|
case input2
|
|
55
58
|
when 'Y'
|
|
@@ -66,9 +69,11 @@ end
|
|
|
66
69
|
desc "latex_dirのゴミを掃除"
|
|
67
70
|
task :reset_latex_dir do
|
|
68
71
|
system "mv latex_dir/head.tex ."
|
|
72
|
+
system "mv latex_dir/jlisting.sty ."
|
|
69
73
|
system "rm -rf latex_dir"
|
|
70
74
|
system "mkdir latex_dir"
|
|
71
75
|
system "mv head.tex latex_dir/"
|
|
76
|
+
system "mv jlisting.sty latex_dir/"
|
|
72
77
|
system "rake latex_all"
|
|
73
78
|
end
|
|
74
79
|
|
|
@@ -80,14 +85,10 @@ task :mk_toc do
|
|
|
80
85
|
if m=line.match(/\\contentsline \{(.+)\}\{\\numberline \{([\d|\.]+)\}(.+)\}\{\d+\}/)
|
|
81
86
|
layer,sec_no,title=m[1],m[2],m[3]
|
|
82
87
|
d = case m[1]
|
|
83
|
-
when 'section'
|
|
84
|
-
|
|
85
|
-
when '
|
|
86
|
-
|
|
87
|
-
when 'subsubsection'
|
|
88
|
-
3
|
|
89
|
-
else
|
|
90
|
-
4
|
|
88
|
+
when 'section'; 1
|
|
89
|
+
when 'subsection'; 2
|
|
90
|
+
when 'subsubsection'; 3
|
|
91
|
+
else; 4
|
|
91
92
|
end
|
|
92
93
|
layer = "!"*d
|
|
93
94
|
title.gsub!('\_','_')
|
|
@@ -101,7 +102,8 @@ end
|
|
|
101
102
|
desc "FILE.hikiあるいはhikiファイルすべてを最新状態に更新"
|
|
102
103
|
task :touch do
|
|
103
104
|
if file=ARGV[1]
|
|
104
|
-
|
|
105
|
+
file_split=file.split(".")
|
|
106
|
+
p target = $basename==file_split[0] ? $basename : $basename+"_"+file_split[0]
|
|
105
107
|
system "hiki -u #{target}"
|
|
106
108
|
else
|
|
107
109
|
p target = File.join($hiki_dir,'cache','attach',$basename)
|
|
@@ -109,17 +111,18 @@ task :touch do
|
|
|
109
111
|
Dir.entries('.').each{|file|
|
|
110
112
|
file_split=file.split(".")
|
|
111
113
|
if file_split[1]=='hiki'
|
|
112
|
-
|
|
113
|
-
p target = $basename+"_"+file_split[0]
|
|
114
|
+
p target = $basename==file_split[0] ? $basename : $basename+"_"+file_split[0]
|
|
114
115
|
system "hiki -u #{target}"
|
|
115
116
|
end
|
|
116
117
|
}
|
|
117
118
|
end
|
|
119
|
+
exit
|
|
118
120
|
end
|
|
119
121
|
|
|
120
122
|
desc "FILE.hikiあるいはhikiファイルをedtiorで開く"
|
|
121
123
|
task :open do
|
|
122
|
-
if file=ARGV[1]
|
|
124
|
+
if file=ARGV[1]
|
|
125
|
+
file += '.hiki' if file.split(".")[1]==nil
|
|
123
126
|
system "open -a mi #{file}"
|
|
124
127
|
else
|
|
125
128
|
Dir.entries('.').each{|file|
|
|
@@ -143,6 +146,7 @@ task :latex_wrap => [:latex_base, :change_wrap] do
|
|
|
143
146
|
end
|
|
144
147
|
|
|
145
148
|
def latex_loop(entries,opts={})
|
|
149
|
+
check_bounding_box
|
|
146
150
|
main_file=""
|
|
147
151
|
entries.each{|file|
|
|
148
152
|
options={:latex_all=>true}
|
|
@@ -183,20 +187,29 @@ end
|
|
|
183
187
|
|
|
184
188
|
def check_bounding_box
|
|
185
189
|
# $bounding_box="0 0 442 432"
|
|
186
|
-
$bounding_box=" 0 0 737
|
|
190
|
+
# $bounding_box=" 0 0 737 553"
|
|
191
|
+
# $fig_width="10"
|
|
192
|
+
$bounding_box=" 0 0 937 753"
|
|
193
|
+
$fig_width="12"
|
|
187
194
|
end
|
|
188
195
|
|
|
189
196
|
desc "すべてのhikiファイルをlatex変換"
|
|
190
197
|
task :latex_all do
|
|
191
198
|
p entries=Dir.entries('.')
|
|
192
|
-
check_bounding_box
|
|
193
199
|
main_file = latex_loop(entries,opts={:main=>true})
|
|
194
200
|
latex_loop(entries)
|
|
195
201
|
cont=""
|
|
196
202
|
p reg_exp = Regexp.new("#{$basename}_(.+)")
|
|
197
203
|
toc = false
|
|
198
204
|
File.readlines(File.join($latex_dir,"#{main_file}.tex")).each{|line|
|
|
199
|
-
line, toc = "", true if line.match(/\\tableofcontents/) and toc == true #only one
|
|
205
|
+
# line, toc = "", true if line.match(/\\tableofcontents/) and toc == true #only one
|
|
206
|
+
if line.match(/\\tableofcontents/)
|
|
207
|
+
if toc == false #only one
|
|
208
|
+
toc = true
|
|
209
|
+
else
|
|
210
|
+
line = ''
|
|
211
|
+
end
|
|
212
|
+
end
|
|
200
213
|
line ="\\usepackage{listings,jlisting}" if line.match(/\\usepackage{listings}/)
|
|
201
214
|
if line.match(/section{(.+)}/)
|
|
202
215
|
if m=line.match(/\\verb\|(.+)\((.+)\)\|/)
|
|
@@ -219,6 +232,7 @@ task :latex_all do
|
|
|
219
232
|
end
|
|
220
233
|
|
|
221
234
|
task :latex_base do
|
|
235
|
+
check_bounding_box
|
|
222
236
|
Dir.mkdir($latex_dir) unless Dir.exist?($latex_dir)
|
|
223
237
|
convert_to_latex(ARGV[1])
|
|
224
238
|
system("open #{$save_name}")
|
|
@@ -246,10 +260,27 @@ def convert_to_latex(file_name, options={})
|
|
|
246
260
|
system "hiki2latex #{pre_command} #{options[:latex]} #{tf1} > #{tf2}"
|
|
247
261
|
lines = File.readlines(tf2)
|
|
248
262
|
system "rm #{tf1} #{tf2}"
|
|
249
|
-
cont
|
|
263
|
+
in_bib,cont=false,""
|
|
250
264
|
lines.each{|line|
|
|
265
|
+
line=latex_cite_ref(line)
|
|
266
|
+
if m=line.match(/\\caption{\s*\((.+?)\)(.+)}/)
|
|
267
|
+
p m
|
|
268
|
+
puts line = "\\caption{#{m[2]}}\n\\label{#{m[1]}}\n"
|
|
269
|
+
end
|
|
270
|
+
if m=line.match(/\\section{reference:}(.+)/) and in_bib==false
|
|
271
|
+
in_bib=true
|
|
272
|
+
line = "\\begin{thebibliography}{99}\n"
|
|
273
|
+
puts line.blue
|
|
274
|
+
end
|
|
275
|
+
if m=line.match(/\\end{description}/) and in_bib==true
|
|
276
|
+
in_bib=false
|
|
277
|
+
line = "\\end{thebibliography}\n"
|
|
278
|
+
end
|
|
279
|
+
if m=line.match(/\\item\[(.+)\](.+)/) and in_bib==true
|
|
280
|
+
line ="\\bibitem{#{m[1]}} #{m[2]}"
|
|
281
|
+
end
|
|
251
282
|
if m=line.match(/\\includegraphics\[width=6cm\]\{(.+)\}/)
|
|
252
|
-
p line="\\includegraphics\[width
|
|
283
|
+
p line="\\includegraphics\[width=#{$fig_width}cm,bb=#{$bounding_box}\]\{../figs/#{m[1]}\}\n"
|
|
253
284
|
cont << line
|
|
254
285
|
else
|
|
255
286
|
cont << line
|
|
@@ -258,6 +289,18 @@ def convert_to_latex(file_name, options={})
|
|
|
258
289
|
File.open($save_name,'w'){|file| file.print cont }
|
|
259
290
|
end
|
|
260
291
|
|
|
292
|
+
def latex_cite_ref(line)
|
|
293
|
+
r_pair=[/\\verb\|{{cite\((.+?)\)}}\|/,/\\verb\|{{ref\((.+?)\)}}\|/]
|
|
294
|
+
while m=line.match(r_pair[0])
|
|
295
|
+
line.sub!(r_pair[0],"\\cite\{#{m[1]}\}")
|
|
296
|
+
end
|
|
297
|
+
while m=line.match(r_pair[1])
|
|
298
|
+
line.sub!(r_pair[1],"\\ref\{#{m[1]}\}")
|
|
299
|
+
end
|
|
300
|
+
# puts line.chomp.blue
|
|
301
|
+
return line
|
|
302
|
+
end
|
|
303
|
+
|
|
261
304
|
task :change_wrap do
|
|
262
305
|
lines = File.readlines($save_name)
|
|
263
306
|
|
|
@@ -346,6 +389,26 @@ task :sync => [:check_previous,:sync0]
|
|
|
346
389
|
desc "hikiの強制同期"
|
|
347
390
|
task :force_sync => [:sync0]
|
|
348
391
|
|
|
392
|
+
def hiki_cite_ref(file)
|
|
393
|
+
tf1 = 'tmp1.txt'
|
|
394
|
+
lines = File.readlines(file)
|
|
395
|
+
inside_pre_form,cont = false,""
|
|
396
|
+
lines.each{|line|
|
|
397
|
+
inside_pre_form=true if line.match(/^<<</) and !inside_pre_form
|
|
398
|
+
inside_pre_form=false if line.match(/^>>>/) and inside_pre_form
|
|
399
|
+
tr_pair=[/\{\{cite\((.+?)\)\}\}/,/\{\{ref\((.+)\)\}\}/]
|
|
400
|
+
while m=line.match(tr_pair[0]) and !inside_pre_form
|
|
401
|
+
puts line.sub!(tr_pair[0], "\[[[#{m[1]}|#{$basename}_references]]\]").chomp.green
|
|
402
|
+
end
|
|
403
|
+
while m=line.match(tr_pair[1]) and !inside_pre_form
|
|
404
|
+
puts line.sub!(tr_pair[1],"#{m[1]}").chomp.green
|
|
405
|
+
end
|
|
406
|
+
cont << line
|
|
407
|
+
}
|
|
408
|
+
File.open(tf1,'w'){|file| file.print cont }
|
|
409
|
+
return tf1
|
|
410
|
+
end
|
|
411
|
+
|
|
349
412
|
task :sync0 do
|
|
350
413
|
entries=Dir.entries('.')
|
|
351
414
|
entries[2..-1].each{|source| #cp *.hiki
|
|
@@ -354,6 +417,7 @@ task :sync0 do
|
|
|
354
417
|
p base = source.split('.')[0]
|
|
355
418
|
name = (base==$basename)? base : $basename+'_'+base
|
|
356
419
|
p target = File.join($hiki_dir,'text',name)
|
|
420
|
+
source = hiki_cite_ref(source)
|
|
357
421
|
FileUtils.cp(source,target,:verbose=>true)
|
|
358
422
|
}
|
|
359
423
|
p entries=Dir.entries('./figs') #cp files in figs
|
|
@@ -388,7 +452,14 @@ task :self_copy do
|
|
|
388
452
|
cp_files.each{|files|
|
|
389
453
|
p source = files[0]
|
|
390
454
|
p target = File.join('/Users/bob/Github/hikiutils/lib/templates/',files[1])
|
|
391
|
-
|
|
455
|
+
command = "diff #{source} #{target}"
|
|
456
|
+
status, stdout, stderr=systemu command
|
|
457
|
+
if stdout!=''
|
|
458
|
+
puts command.red
|
|
459
|
+
puts CodeRay.scan(stdout, :Diff).term
|
|
460
|
+
print " Are you sure to save #{source}? [Yn] ".red
|
|
461
|
+
FileUtils.cp(source,target,:verbose=>true) if STDIN.gets.chomp=='Y'
|
|
462
|
+
end
|
|
392
463
|
}
|
|
393
464
|
end
|
|
394
465
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
プログラム開発では,統合開発環境がいくつも用意されているが,多くの現場では,terminal上での開発が一般的です.
|
|
2
|
+
ところが,プログラミング初心者はterminal上でのcharacter user interface(CUI)を苦手としています.
|
|
3
|
+
この不可欠なCUIスキルの習得を助けるソフトとして,ユーザメモソフトmy_helpがruby gemsに置かれています.
|
|
4
|
+
このcommand line interface(CLI)で動作するmy_helpは,helpをterminal上で簡単に提示するものです.
|
|
5
|
+
また,初心者が自ら編集することによって,すぐに参照できるメモとしての機能を提供しています.
|
|
6
|
+
これにより,プログラム開発に集中できることが期待でき,初心者のスキル習得が加速することが期待できます.
|
|
7
|
+
しかし,Ruby gemsとして提供されているこのソフトは,動作はするがテストが用意されていません.
|
|
8
|
+
今後ソフトを進化させるために共同開発を進めていくには,仕様や動作の標準となるテスト記述が不可欠となります.
|
|
9
|
+
そこで,本研究では,ユーザメモソフトであるmy_helpのテストを開発することを目的とします.
|
|
10
|
+
本研究では、テスト駆動開発の中でも,ソフトの振る舞いを記述します
|
|
11
|
+
Behavior Driven Development(BDD)に基づいてテストを記述していきます.
|
|
12
|
+
Rubyにおいて、BDD環境を提供する標準的なフレームワークであるCucumberとRSpecを用いて,
|
|
13
|
+
my_helpがどのような振る舞いをするのかを記述します.
|
|
14
|
+
Cucumberは自然言語で振る舞いを記述することができるため,ユーザにとって,わかりやすく振る舞いを確認することができます.
|
|
15
|
+
ここでは,実際にBDDの流れにそって,my_helpのある一例を取り上げてのテスト開発を進めていきます.
|
|
16
|
+
また,my_helpの頻繁に使うコマンドの振る舞いを記述しています.
|
|
17
|
+
このことにより,来年の本研究室の研究生のスキルがより向上することが期待されると考えています.
|
|
@@ -59,21 +59,25 @@ featuresディレクトリにあるmy_todo.featureファイルをcucumberで実
|
|
|
59
59
|
|
|
60
60
|
実行すると以下のようになります.
|
|
61
61
|
|
|
62
|
-
<<< tcsh
|
|
63
|
-
# language: ja
|
|
64
|
-
機能: todoの更新を行う
|
|
65
|
-
todoは更新していくものであり,新しく書いたり終わったものを消したいのでバックアップをとって,過去のtodoを残しておく
|
|
66
62
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
ならばeditが開かれる # features/my_todo.feature:9
|
|
71
|
-
かつ自分のtodoを書き込む # features/my_todo.feature:10
|
|
63
|
+
//# language: ja
|
|
64
|
+
//機能: todoの更新を行う
|
|
65
|
+
//todoは更新していくものであり,新しく書いたり終わったものを消したいのでバックアップをとって,過去のtodoを残しておく
|
|
72
66
|
|
|
73
|
-
シナリオ:
|
|
74
|
-
前提todo
|
|
75
|
-
もし"my_todo --
|
|
76
|
-
ならば
|
|
67
|
+
// シナリオ: コマンドを入力してtodoを更新していく # features/my_todo.feature:6
|
|
68
|
+
// 前提todoを編集したい # features/my_todo.feature:7
|
|
69
|
+
// もし"my_todo --edit"と入力する # features/my_todo.feature:8
|
|
70
|
+
// ならばeditが開かれる # features/my_todo.feature:9
|
|
71
|
+
// かつ自分のtodoを書き込む # features/my_todo.feature:10
|
|
72
|
+
|
|
73
|
+
// シナリオ: コマンドを入力してバックアップをとる # features/my_todo.feature:12
|
|
74
|
+
// 前提todoの編集が終わった # features/my_todo.feature:13
|
|
75
|
+
// もし"my_todo --store [item]"と入力する # features/my_todo.feature:14
|
|
76
|
+
// ならばitemのバックアップを取る # features/my_todo.feature:15
|
|
77
|
+
|
|
78
|
+
<<< tcsh
|
|
79
|
+
|
|
80
|
+
<省略>
|
|
77
81
|
|
|
78
82
|
2 scenarios (2 undefined)
|
|
79
83
|
7 steps (7 undefined)
|
|
@@ -204,14 +208,14 @@ todoは更新していくものであり,新しく書いたり終わったもの
|
|
|
204
208
|
>>>
|
|
205
209
|
|
|
206
210
|
!!RSpec
|
|
207
|
-
次にRSpecを使って実際にtodo
|
|
211
|
+
次にRSpecを使って実際にtodoを更新する振る舞いをするコード書いていきます.
|
|
208
212
|
|
|
209
|
-
そのための準備として,まずspecというディレクトリを作成し,my_todo
|
|
210
|
-
次に,このサブディレクトリにtodo_spec.rb
|
|
213
|
+
そのための準備として,まずspecというディレクトリを作成し,my_todoというサブディレクトリを追加します.
|
|
214
|
+
次に,このサブディレクトリにtodo_spec.rbというファイルを追加します.
|
|
211
215
|
作業を進める過程で,lib/my_todo/my_todo.rbソースファイルとspec/my_todo/todo_spec.rbスペックファイルが1対1に対応するといった要領で,
|
|
212
|
-
|
|
216
|
+
並列のディレクトリ構造を築いていきます.
|
|
213
217
|
この機能はmy_help --editと入力されれば,~/.my_help/my_todo.ymlが開かれるのでその振る舞いをするコードを書きます.
|
|
214
|
-
まずtodo_spec.rb
|
|
218
|
+
まずtodo_spec.rbは下記の通りになります.
|
|
215
219
|
|
|
216
220
|
<<< ruby
|
|
217
221
|
require 'spec_helper'
|
|
@@ -260,7 +264,7 @@ end
|
|
|
260
264
|
|
|
261
265
|
>>>
|
|
262
266
|
|
|
263
|
-
これでrspec
|
|
267
|
+
これでrspecを実行すると以下のような結果が表示されます.
|
|
264
268
|
<<< tcsh
|
|
265
269
|
/Users/nasubi/my_help% rspec spec --color
|
|
266
270
|
|
|
@@ -280,6 +284,6 @@ Finished in 3.87 seconds (files took 0.30703 seconds to load)
|
|
|
280
284
|
5 examples, 0 failures
|
|
281
285
|
|
|
282
286
|
>>>
|
|
283
|
-
これでtodo
|
|
287
|
+
これでtodoを更新するときの振る舞いのテストはうまく成功しました.
|
|
284
288
|
|
|
285
|
-
この方法でBDDでmy_help
|
|
289
|
+
この方法でBDDでmy_helpのテスト開発を行い,仕様を決定していきました.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
!考察と今後の課題
|
|
2
|
+
!!考察
|
|
3
|
+
my_helpを対象とした具体的なビヘイビア駆動開発の実践を通して,以下のような問題点が明らかになってきました.
|
|
4
|
+
!!! Cucumberを記述できるようになるまで時間がかかる
|
|
5
|
+
|
|
6
|
+
//意見を述べるときはできるだけ客観的に記述するようにしてください.それでも,それが意見であることは読み手にはわかります.また,その意見が次からは事実になります.つまり,「那須によると」という研究成果になるわけです.あるいは
|
|
7
|
+
//""那須によるmy_helpのビヘイビア駆動開発の実践で言及されている通り,2017年当初においてはfeaturesを記述するデータベースは存在しなかった.
|
|
8
|
+
//となるわけです.どやかっこええやろ.
|
|
9
|
+
|
|
10
|
+
//日本語で書くことができるので,記述されているコードを理解するのは容易にできました.
|
|
11
|
+
//しかし,日本語で書くことができるので容易に記述することも可能であると考えていましたが,The RSpec Bookに記載されているテンプレートが少なく,理解が難しく感じました.
|
|
12
|
+
//自力で作成することはできますが,やはり時間がかかってしまうと考えます.
|
|
13
|
+
//ネットで検索しても,The RSpec Bookと類似したシナリオが多いのも問題の一つであり,書き方のテンプレートがもっと必要です.
|
|
14
|
+
//地道にCucumberを使用して,データベースのようなものを作成するのがよいと考えました.
|
|
15
|
+
//また,BDDではCucumberでエラーが出ている状況が正しく,Cucumberを放置してRSpecへと進みます.今までのプログラミングとは少し違う感覚に陥り,不安がよぎります.
|
|
16
|
+
//これは慣れるまでの辛抱ではありますが,この問題も時間との戦いです.
|
|
17
|
+
|
|
18
|
+
日本語で書くことができるので,記述されているコードを「理解する」のは容易で,「記述する」ことも可能であると考えていました.ところが,The RSpec Book{{cite(RSpecBook)}}に記載されているテンプレートが少なく,理解することにも非常に困難を覚えました.自力で何も前例のない状況から作成することはできますが,やはり時間がかかってしまいます.ネットで検索しても,日本語のサイトではほぼThe RSpec Book{{cite(RSpecBook)}}と類似したシナリオしか記載されていないのも問題の一つであり,違った種類の書き方のテンプレートがもっと必要です.地道に幾度もCucumberを叩いて,featuresやrspecの記述すること,またそのデータベースを蓄えていくことが必要です.
|
|
19
|
+
また,BDDではCucumberでエラーが出ている状況が正しく,Cucumberを放置してRSpecへと進みます.今までのプログラミングとは少し違う感覚に陥り,不安がよぎります.これは慣れるまでの辛抱ではありますが,この問題も時間との戦いです.
|
|
20
|
+
|
|
21
|
+
!!! BDDを行うときにrubyの知識が必要
|
|
22
|
+
Cucumberのステップ定義やRSpecにおいてrubyを用いることが多々あります.スッテプ定義を記述するときに,あればよいと思うコードを書くのですが,具体的なプログラムを書くよりも難易度が高いと感じました.部分的なプログラムを作成するので,知識がないと正しいかどうかの判断が最後にしかできません.BDDを通してrubyを学べるという考え方もできますが,BDDでrubyを学ぶには物足りなさがあり,不向きです.したがって,BDDを使用する前にrubyの基礎の勉強は不可欠です.
|
|
23
|
+
|
|
24
|
+
// はい.今後はここから4回生を招き入れることはやめることにします.
|
|
25
|
+
|
|
26
|
+
!!my_helpの今後
|
|
27
|
+
|
|
28
|
+
//:Given:my_helpのテスト開発が成功したため,仕様や動作の標準が確定しました.
|
|
29
|
+
//:Should_be:
|
|
30
|
+
my_helpのテスト記述が完了するに伴って,仕様や動作の標準が確定しました.
|
|
31
|
+
//:Given:私は,my_helpは何度も使用することで,どのように進化させれば便利なのかがわかってくると考えているので,my_helpはまだまだ進化する機会が出てくると思います.
|
|
32
|
+
//:Shoule_be:
|
|
33
|
+
my_helpは今後も開発者,ならびに多くのユーザの使用を通じて,どのように進化させれば便利なのかが徐々にわかってくることで,my_helpはまだまだ進化する機会が出てくると思われます.
|
|
34
|
+
つまり,ビヘイビアの記述を利用することで,今後my_helpを進化させるための共同開発が円滑に進める手助けになると推測します.
|
|
35
|
+
また,my_helpの進化の開発だけに関わらず,my_helpの使用方法が明確になったことで,本研究で作成したmy_helpのfeaturesを読めば初心者でもmy_helpの振る舞いが容易に理解できます.
|
|
36
|
+
my_helpは本研究室で今後使われていくと予想し,本研究はこれからの研究の手助けになります.
|
|
37
|
+
今後の本研究室の研究生が,CUIなどの習得に時間をかけずにプログラミングに集中でき,研究の質が向上すると予想できます.
|
|
38
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#language: ja
|
|
2
|
+
|
|
3
|
+
#--add [item]
|
|
4
|
+
機能: 新しいitemをspecific_helpに追加する
|
|
5
|
+
specific_helpとは,ユーザが作成するそれぞれのヘルプである
|
|
6
|
+
新しいhelp画面を追加したい
|
|
7
|
+
|
|
8
|
+
シナリオ: コマンドを入力してspecific_helpにitemを追加する
|
|
9
|
+
前提 新たなhelpコマンドを追加したい
|
|
10
|
+
もし emacs_help --add[item]を入力する
|
|
11
|
+
ならば ~/.my_help/emacs_help.ymlに新しいitemが自動的に追加される
|
|
12
|
+
|