rbcli 0.2.11 → 0.2.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (426) hide show
  1. checksums.yaml +4 -4
  2. data/.rakeTasks +7 -0
  3. data/.rbenv-gemsets +1 -0
  4. data/CHANGELOG.md +22 -0
  5. data/Gemfile.lock +25 -24
  6. data/README.md +2 -2
  7. data/docs-src/archetypes/default.md +6 -0
  8. data/docs-src/config.toml +37 -0
  9. data/docs-src/{docs/index.md → content/_index.md} +4 -4
  10. data/docs-src/content/advanced/_index.md +11 -0
  11. data/docs-src/{docs → content}/advanced/automatic_updates.md +6 -2
  12. data/docs-src/{docs → content}/advanced/command_types.md +8 -4
  13. data/docs-src/{docs → content}/advanced/distributed_state_locking.md +6 -2
  14. data/docs-src/{docs → content}/advanced/hooks.md +6 -2
  15. data/docs-src/{docs → content}/advanced/interactive_commands.md +5 -1
  16. data/docs-src/{docs → content}/advanced/logging.md +6 -2
  17. data/docs-src/{docs → content}/advanced/remote_execution.md +5 -1
  18. data/docs-src/{docs → content}/advanced/state_storage.md +6 -3
  19. data/docs-src/{docs → content}/advanced/user_config_files.md +5 -1
  20. data/docs-src/content/development/_index.md +11 -0
  21. data/docs-src/{docs/imported → content/development}/changelog.md +58 -6
  22. data/docs-src/{docs → content}/development/code_of_conduct.md +8 -1
  23. data/docs-src/{docs → content}/development/contributing.md +16 -1
  24. data/docs-src/{docs → content}/development/license.md +9 -2
  25. data/docs-src/{docs/imported/quick_reference.md → content/quick_reference/_index.md} +8 -1
  26. data/docs-src/{docs → content}/tutorial/10-getting_started.md +7 -1
  27. data/docs-src/{docs → content}/tutorial/20-project_layout.md +10 -2
  28. data/docs-src/{docs → content}/tutorial/30-your_first_command.md +10 -4
  29. data/docs-src/{docs → content}/tutorial/40-options_parameters_and_arguments.md +9 -3
  30. data/docs-src/{docs → content}/tutorial/50-publishing.md +9 -3
  31. data/docs-src/content/tutorial/_index.md +11 -0
  32. data/docs-src/{docs/whoami.md → content/whoami/_index.md} +11 -5
  33. data/docs-src/layouts/partials/logo.html +3 -0
  34. data/docs-src/makesite.sh +33 -7
  35. data/docs-src/mkdocs-archived.tar.gz +0 -0
  36. data/docs-src/runsite.sh +6 -1
  37. data/docs-src/themes/hugo-theme-learn/.editorconfig +16 -0
  38. data/docs-src/themes/hugo-theme-learn/.gitignore +3 -0
  39. data/docs-src/themes/hugo-theme-learn/.grenrc.yml +25 -0
  40. data/docs-src/themes/hugo-theme-learn/CHANGELOG.md +154 -0
  41. data/docs-src/themes/hugo-theme-learn/LICENSE.md +22 -0
  42. data/docs-src/themes/hugo-theme-learn/README.md +60 -0
  43. data/docs-src/themes/hugo-theme-learn/archetypes/chapter.md +13 -0
  44. data/docs-src/themes/hugo-theme-learn/archetypes/default.md +7 -0
  45. data/docs-src/themes/hugo-theme-learn/exampleSite/LICENSE.md +20 -0
  46. data/docs-src/themes/hugo-theme-learn/exampleSite/config.toml +75 -0
  47. data/docs-src/themes/hugo-theme-learn/exampleSite/content/_index.en.md +41 -0
  48. data/docs-src/themes/hugo-theme-learn/exampleSite/content/_index.fr.md +43 -0
  49. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/_index.en.md +12 -0
  50. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/_index.fr.md +12 -0
  51. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/configuration/_index.en.md +58 -0
  52. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/configuration/_index.fr.md +54 -0
  53. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/installation/_index.en.md +102 -0
  54. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/installation/_index.fr.md +100 -0
  55. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/installation/images/chapter.png +0 -0
  56. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/requirements/_index.en.md +11 -0
  57. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/requirements/_index.fr.md +11 -0
  58. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/requirements/images/magic.gif +0 -0
  59. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/_index.en.md +194 -0
  60. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/_index.fr.md +194 -0
  61. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/blue-variant.png +0 -0
  62. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/green-variant.png +0 -0
  63. data/docs-src/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/red-variant.png +0 -0
  64. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/_index.en.md +12 -0
  65. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/_index.fr.md +12 -0
  66. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.en.md +57 -0
  67. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.fr.md +57 -0
  68. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/i18n/_index.en.md +78 -0
  69. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/i18n/_index.fr.md +78 -0
  70. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/i18n/images/i18n-menu.gif +0 -0
  71. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/icons.en.md +41 -0
  72. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/markdown.en.md +665 -0
  73. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/markdown.fr.md +666 -0
  74. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/menushortcuts.en.md +109 -0
  75. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/menushortcuts.fr.md +109 -0
  76. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/_index.en.md +166 -0
  77. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/_index.fr.md +146 -0
  78. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/frontmatter-icon.png +0 -0
  79. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-chapter.png +0 -0
  80. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-default.png +0 -0
  81. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/tags.en.md +39 -0
  82. data/docs-src/themes/hugo-theme-learn/exampleSite/content/cont/tags.fr.md +40 -0
  83. data/docs-src/themes/hugo-theme-learn/exampleSite/content/credits.en.md +28 -0
  84. data/docs-src/themes/hugo-theme-learn/exampleSite/content/credits.fr.md +28 -0
  85. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/_index.en.md +16 -0
  86. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/_index.fr.md +16 -0
  87. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/BachGavotteShort.mp3 +0 -0
  88. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/Carroll_AliceAuPaysDesMerveilles.pdf +0 -0
  89. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/adivorciarsetoca00cape.pdf +0 -0
  90. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/hugo.png +0 -0
  91. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/movieselectricsheep-flock-244-32500-2.mp4 +0 -0
  92. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.md +85 -0
  93. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/BachGavotteShort.mp3 +0 -0
  94. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/Carroll_AliceAuPaysDesMerveilles.pdf +0 -0
  95. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/adivorciarsetoca00cape.pdf +0 -0
  96. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/hugo.png +0 -0
  97. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/movieselectricsheep-flock-244-32500-2.mp4 +0 -0
  98. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.md +85 -0
  99. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.en.md +16 -0
  100. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.fr.md +16 -0
  101. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.en.md +45 -0
  102. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.fr.md +45 -0
  103. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/_index.en.md +6 -0
  104. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/_index.fr.md +6 -0
  105. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.en.md +6 -0
  106. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.fr.md +6 -0
  107. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.en.md +6 -0
  108. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.fr.md +6 -0
  109. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.en.md +6 -0
  110. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.fr.md +6 -0
  111. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.en.md +6 -0
  112. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.fr.md +6 -0
  113. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/_index.en.md +11 -0
  114. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/_index.fr.md +11 -0
  115. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/test3.en.md +6 -0
  116. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/test3.fr.md +6 -0
  117. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-3/_index.en.md +6 -0
  118. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-3/_index.fr.md +6 -0
  119. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-4/_index.en.md +7 -0
  120. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-4/_index.fr.md +7 -0
  121. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/test.en.md +6 -0
  122. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/test.fr.md +6 -0
  123. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/expand.en.md +45 -0
  124. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/expand.fr.md +45 -0
  125. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/mermaid.en.md +283 -0
  126. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/mermaid.fr.md +283 -0
  127. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.en.md +62 -0
  128. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.fr.md +62 -0
  129. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/siteparam.en.md +23 -0
  130. data/docs-src/themes/hugo-theme-learn/exampleSite/content/shortcodes/siteparam.fr.md +23 -0
  131. data/docs-src/themes/hugo-theme-learn/exampleSite/content/showcase.en.md +10 -0
  132. data/docs-src/themes/hugo-theme-learn/exampleSite/content/showcase.fr.md +11 -0
  133. data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/partials/custom-footer.html +10 -0
  134. data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/partials/logo.html +39 -0
  135. data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/partials/menu-footer.html +14 -0
  136. data/docs-src/themes/hugo-theme-learn/exampleSite/layouts/shortcodes/ghcontributors.html +31 -0
  137. data/docs-src/themes/hugo-theme-learn/exampleSite/static/css/theme-mine.css +104 -0
  138. data/docs-src/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.eot +0 -0
  139. data/docs-src/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.svg +237 -0
  140. data/docs-src/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.ttf +0 -0
  141. data/docs-src/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.woff +0 -0
  142. data/docs-src/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.woff2 +0 -0
  143. data/docs-src/themes/hugo-theme-learn/exampleSite/static/images/showcase/tat.png +0 -0
  144. data/docs-src/themes/hugo-theme-learn/i18n/en.toml +26 -0
  145. data/docs-src/themes/hugo-theme-learn/i18n/es.toml +26 -0
  146. data/docs-src/themes/hugo-theme-learn/i18n/fr.toml +26 -0
  147. data/docs-src/themes/hugo-theme-learn/i18n/id.toml +26 -0
  148. data/docs-src/themes/hugo-theme-learn/i18n/nl.toml +26 -0
  149. data/docs-src/themes/hugo-theme-learn/i18n/pt.toml +26 -0
  150. data/docs-src/themes/hugo-theme-learn/i18n/tr.toml +26 -0
  151. data/docs-src/themes/hugo-theme-learn/images/screenshot.png +0 -0
  152. data/docs-src/themes/hugo-theme-learn/images/tn.png +0 -0
  153. data/docs-src/themes/hugo-theme-learn/layouts/404.html +56 -0
  154. data/docs-src/themes/hugo-theme-learn/layouts/_default/list.html +22 -0
  155. data/docs-src/themes/hugo-theme-learn/layouts/_default/single.html +13 -0
  156. data/docs-src/themes/hugo-theme-learn/layouts/index.html +31 -0
  157. data/docs-src/themes/hugo-theme-learn/layouts/index.json +12 -0
  158. data/docs-src/themes/hugo-theme-learn/layouts/partials/custom-comments.html +3 -0
  159. data/docs-src/themes/hugo-theme-learn/layouts/partials/custom-footer.html +5 -0
  160. data/docs-src/themes/hugo-theme-learn/layouts/partials/custom-header.html +5 -0
  161. data/docs-src/themes/hugo-theme-learn/layouts/partials/favicon.html +1 -0
  162. data/docs-src/themes/hugo-theme-learn/layouts/partials/footer.html +78 -0
  163. data/docs-src/themes/hugo-theme-learn/layouts/partials/header.html +109 -0
  164. data/docs-src/themes/hugo-theme-learn/layouts/partials/logo.html +19 -0
  165. data/docs-src/themes/hugo-theme-learn/layouts/partials/menu-footer.html +1 -0
  166. data/docs-src/themes/hugo-theme-learn/layouts/partials/menu.html +150 -0
  167. data/docs-src/themes/hugo-theme-learn/layouts/partials/meta.html +2 -0
  168. data/docs-src/themes/hugo-theme-learn/layouts/partials/search.html +16 -0
  169. data/docs-src/themes/hugo-theme-learn/layouts/partials/tags.html +7 -0
  170. data/docs-src/themes/hugo-theme-learn/layouts/partials/toc.html +5 -0
  171. data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/attachments.html +36 -0
  172. data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/button.html +14 -0
  173. data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/children.html +101 -0
  174. data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/expand.html +17 -0
  175. data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/mermaid.html +2 -0
  176. data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/notice.html +2 -0
  177. data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/ref.html +14 -0
  178. data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/relref.html +14 -0
  179. data/docs-src/themes/hugo-theme-learn/layouts/shortcodes/siteparam.html +7 -0
  180. data/docs-src/themes/hugo-theme-learn/netlify.toml +24 -0
  181. data/docs-src/themes/hugo-theme-learn/static/css/atom-one-dark-reasonable.css +77 -0
  182. data/docs-src/themes/hugo-theme-learn/static/css/auto-complete.css +47 -0
  183. data/docs-src/themes/hugo-theme-learn/static/css/featherlight.min.css +8 -0
  184. data/docs-src/themes/hugo-theme-learn/static/css/fontawesome-all.min.css +1 -0
  185. data/docs-src/themes/hugo-theme-learn/static/css/hugo-theme.css +254 -0
  186. data/docs-src/themes/hugo-theme-learn/static/css/hybrid.css +102 -0
  187. data/docs-src/themes/hugo-theme-learn/static/css/nucleus.css +615 -0
  188. data/docs-src/themes/hugo-theme-learn/static/css/perfect-scrollbar.min.css +2 -0
  189. data/docs-src/themes/hugo-theme-learn/static/css/tags.css +49 -0
  190. data/docs-src/themes/hugo-theme-learn/static/css/theme-blue.css +111 -0
  191. data/docs-src/themes/hugo-theme-learn/static/css/theme-green.css +111 -0
  192. data/docs-src/themes/hugo-theme-learn/static/css/theme-red.css +111 -0
  193. data/docs-src/themes/hugo-theme-learn/static/css/theme.css +1132 -0
  194. data/docs-src/themes/hugo-theme-learn/static/fonts/Inconsolata.eot +0 -0
  195. data/docs-src/themes/hugo-theme-learn/static/fonts/Inconsolata.svg +359 -0
  196. data/docs-src/themes/hugo-theme-learn/static/fonts/Inconsolata.ttf +0 -0
  197. data/docs-src/themes/hugo-theme-learn/static/fonts/Inconsolata.woff +0 -0
  198. data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.eot +0 -0
  199. data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.svg +1019 -0
  200. data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.ttf +0 -0
  201. data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.woff +0 -0
  202. data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.woff2 +0 -0
  203. data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.eot +0 -0
  204. data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.svg +918 -0
  205. data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.ttf +0 -0
  206. data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff +0 -0
  207. data/docs-src/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff2 +0 -0
  208. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_200.eot +0 -0
  209. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_200.svg +332 -0
  210. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_200.ttf +0 -0
  211. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_200.woff +0 -0
  212. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_200.woff2 +0 -0
  213. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_300.eot +0 -0
  214. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_300.svg +331 -0
  215. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_300.ttf +0 -0
  216. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_300.woff +0 -0
  217. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_300.woff2 +0 -0
  218. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_500.eot +0 -0
  219. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_500.svg +333 -0
  220. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_500.ttf +0 -0
  221. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_500.woff +0 -0
  222. data/docs-src/themes/hugo-theme-learn/static/fonts/Work_Sans_500.woff2 +0 -0
  223. data/docs-src/themes/hugo-theme-learn/static/images/clippy.svg +1 -0
  224. data/docs-src/themes/hugo-theme-learn/static/images/favicon.png +0 -0
  225. data/docs-src/themes/hugo-theme-learn/static/images/gopher-404.jpg +0 -0
  226. data/docs-src/themes/hugo-theme-learn/static/js/auto-complete.js +223 -0
  227. data/docs-src/themes/hugo-theme-learn/static/js/clipboard.min.js +7 -0
  228. data/docs-src/themes/hugo-theme-learn/static/js/featherlight.min.js +9 -0
  229. data/docs-src/themes/hugo-theme-learn/static/js/highlight.pack.js +3 -0
  230. data/docs-src/themes/hugo-theme-learn/static/js/html5shiv-printshiv.min.js +4 -0
  231. data/docs-src/themes/hugo-theme-learn/static/js/hugo-learn.js +91 -0
  232. data/docs-src/themes/hugo-theme-learn/static/js/jquery-3.3.1.min.js +2 -0
  233. data/docs-src/themes/hugo-theme-learn/static/js/jquery.sticky.js +288 -0
  234. data/docs-src/themes/hugo-theme-learn/static/js/learn.js +459 -0
  235. data/docs-src/themes/hugo-theme-learn/static/js/lunr.min.js +6 -0
  236. data/docs-src/themes/hugo-theme-learn/static/js/modernizr.custom-3.6.0.js +3 -0
  237. data/docs-src/themes/hugo-theme-learn/static/js/perfect-scrollbar.jquery.min.js +2 -0
  238. data/docs-src/themes/hugo-theme-learn/static/js/perfect-scrollbar.min.js +2 -0
  239. data/docs-src/themes/hugo-theme-learn/static/js/search.js +93 -0
  240. data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.css +277 -0
  241. data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.dark.css +278 -0
  242. data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.forest.css +356 -0
  243. data/docs-src/themes/hugo-theme-learn/static/mermaid/mermaid.js +8 -0
  244. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-brands-400.eot +0 -0
  245. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-brands-400.svg +1260 -0
  246. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-brands-400.ttf +0 -0
  247. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-brands-400.woff +0 -0
  248. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-brands-400.woff2 +0 -0
  249. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-regular-400.eot +0 -0
  250. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-regular-400.svg +471 -0
  251. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-regular-400.ttf +0 -0
  252. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-regular-400.woff +0 -0
  253. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-regular-400.woff2 +0 -0
  254. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-solid-900.eot +0 -0
  255. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-solid-900.svg +2763 -0
  256. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-solid-900.ttf +0 -0
  257. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-solid-900.woff +0 -0
  258. data/docs-src/themes/hugo-theme-learn/static/webfonts/fa-solid-900.woff2 +0 -0
  259. data/docs-src/themes/hugo-theme-learn/theme.toml +21 -0
  260. data/docs-src/themes/hugo-theme-learn/wercker.yml +16 -0
  261. data/docs/404.html +54 -670
  262. data/docs/advanced/automatic_updates/index.html +962 -635
  263. data/docs/advanced/command_types/index.html +1021 -736
  264. data/docs/advanced/distributed_state_locking/index.html +957 -622
  265. data/docs/advanced/hooks/index.html +968 -661
  266. data/docs/advanced/index.html +1099 -0
  267. data/docs/advanced/index.xml +117 -0
  268. data/docs/advanced/interactive_commands/index.html +960 -636
  269. data/docs/advanced/logging/index.html +963 -639
  270. data/docs/advanced/remote_execution/index.html +959 -634
  271. data/docs/advanced/state_storage/index.html +1049 -764
  272. data/docs/advanced/user_config_files/index.html +981 -649
  273. data/docs/categories/index.html +1094 -0
  274. data/docs/categories/index.xml +14 -0
  275. data/docs/css/atom-one-dark-reasonable.css +77 -0
  276. data/docs/css/auto-complete.css +47 -0
  277. data/docs/css/featherlight.min.css +8 -0
  278. data/docs/css/fontawesome-all.min.css +1 -0
  279. data/docs/css/hugo-theme.css +254 -0
  280. data/docs/css/hybrid.css +102 -0
  281. data/docs/css/nucleus.css +615 -0
  282. data/docs/css/perfect-scrollbar.min.css +2 -0
  283. data/docs/css/tags.css +49 -0
  284. data/docs/css/theme-blue.css +111 -0
  285. data/docs/css/theme-green.css +111 -0
  286. data/docs/css/theme-red.css +111 -0
  287. data/docs/css/theme.css +1132 -0
  288. data/docs/development/changelog/index.html +1368 -0
  289. data/docs/development/code_of_conduct/index.html +969 -687
  290. data/docs/development/contributing/index.html +993 -587
  291. data/docs/development/index.html +1099 -0
  292. data/docs/development/index.xml +54 -0
  293. data/docs/development/license/index.html +959 -579
  294. data/docs/fonts/Inconsolata.eot +0 -0
  295. data/docs/fonts/Inconsolata.svg +359 -0
  296. data/docs/fonts/Inconsolata.ttf +0 -0
  297. data/docs/fonts/Inconsolata.woff +0 -0
  298. data/docs/fonts/Novecentosanswide-Normal-webfont.eot +0 -0
  299. data/docs/fonts/Novecentosanswide-Normal-webfont.svg +1019 -0
  300. data/docs/fonts/Novecentosanswide-Normal-webfont.ttf +0 -0
  301. data/docs/fonts/Novecentosanswide-Normal-webfont.woff +0 -0
  302. data/docs/fonts/Novecentosanswide-Normal-webfont.woff2 +0 -0
  303. data/docs/fonts/Novecentosanswide-UltraLight-webfont.eot +0 -0
  304. data/docs/fonts/Novecentosanswide-UltraLight-webfont.svg +918 -0
  305. data/docs/fonts/Novecentosanswide-UltraLight-webfont.ttf +0 -0
  306. data/docs/fonts/Novecentosanswide-UltraLight-webfont.woff +0 -0
  307. data/docs/fonts/Novecentosanswide-UltraLight-webfont.woff2 +0 -0
  308. data/docs/fonts/Work_Sans_200.eot +0 -0
  309. data/docs/fonts/Work_Sans_200.svg +332 -0
  310. data/docs/fonts/Work_Sans_200.ttf +0 -0
  311. data/docs/fonts/Work_Sans_200.woff +0 -0
  312. data/docs/fonts/Work_Sans_200.woff2 +0 -0
  313. data/docs/fonts/Work_Sans_300.eot +0 -0
  314. data/docs/fonts/Work_Sans_300.svg +331 -0
  315. data/docs/fonts/Work_Sans_300.ttf +0 -0
  316. data/docs/fonts/Work_Sans_300.woff +0 -0
  317. data/docs/fonts/Work_Sans_300.woff2 +0 -0
  318. data/docs/fonts/Work_Sans_500.eot +0 -0
  319. data/docs/fonts/Work_Sans_500.svg +333 -0
  320. data/docs/fonts/Work_Sans_500.ttf +0 -0
  321. data/docs/fonts/Work_Sans_500.woff +0 -0
  322. data/docs/fonts/Work_Sans_500.woff2 +0 -0
  323. data/docs/images/clippy.svg +1 -0
  324. data/docs/images/favicon.png +0 -0
  325. data/docs/images/gopher-404.jpg +0 -0
  326. data/docs/imported/changelog/index.html +1208 -1020
  327. data/docs/imported/index.html +1191 -0
  328. data/docs/imported/index.xml +23 -0
  329. data/docs/index.html +907 -591
  330. data/docs/index.json +183 -0
  331. data/docs/index.xml +212 -0
  332. data/docs/js/auto-complete.js +223 -0
  333. data/docs/js/clipboard.min.js +7 -0
  334. data/docs/js/featherlight.min.js +9 -0
  335. data/docs/js/highlight.pack.js +3 -0
  336. data/docs/js/html5shiv-printshiv.min.js +4 -0
  337. data/docs/js/hugo-learn.js +91 -0
  338. data/docs/js/jquery-3.3.1.min.js +2 -0
  339. data/docs/js/jquery.sticky.js +288 -0
  340. data/docs/js/learn.js +459 -0
  341. data/docs/js/lunr.min.js +6 -0
  342. data/docs/js/modernizr.custom-3.6.0.js +3 -0
  343. data/docs/js/perfect-scrollbar.jquery.min.js +2 -0
  344. data/docs/js/perfect-scrollbar.min.js +2 -0
  345. data/docs/js/search.js +93 -0
  346. data/docs/mermaid/mermaid.css +277 -0
  347. data/docs/mermaid/mermaid.dark.css +278 -0
  348. data/docs/mermaid/mermaid.forest.css +356 -0
  349. data/docs/mermaid/mermaid.js +8 -0
  350. data/docs/quick_reference/index.html +1279 -0
  351. data/docs/quick_reference/index.xml +15 -0
  352. data/docs/sitemap.xml +135 -107
  353. data/docs/tags/index.html +1094 -0
  354. data/docs/tags/index.xml +14 -0
  355. data/docs/tutorial/10-getting_started/index.html +960 -649
  356. data/docs/tutorial/20-project_layout/index.html +1059 -778
  357. data/docs/tutorial/30-your_first_command/index.html +1040 -729
  358. data/docs/tutorial/40-options_parameters_and_arguments/index.html +1151 -868
  359. data/docs/tutorial/50-publishing/index.html +969 -676
  360. data/docs/tutorial/index.html +1099 -0
  361. data/docs/tutorial/index.xml +71 -0
  362. data/docs/webfonts/fa-brands-400.eot +0 -0
  363. data/docs/webfonts/fa-brands-400.svg +1260 -0
  364. data/docs/webfonts/fa-brands-400.ttf +0 -0
  365. data/docs/webfonts/fa-brands-400.woff +0 -0
  366. data/docs/webfonts/fa-brands-400.woff2 +0 -0
  367. data/docs/webfonts/fa-regular-400.eot +0 -0
  368. data/docs/webfonts/fa-regular-400.svg +471 -0
  369. data/docs/webfonts/fa-regular-400.ttf +0 -0
  370. data/docs/webfonts/fa-regular-400.woff +0 -0
  371. data/docs/webfonts/fa-regular-400.woff2 +0 -0
  372. data/docs/webfonts/fa-solid-900.eot +0 -0
  373. data/docs/webfonts/fa-solid-900.svg +2763 -0
  374. data/docs/webfonts/fa-solid-900.ttf +0 -0
  375. data/docs/webfonts/fa-solid-900.woff +0 -0
  376. data/docs/webfonts/fa-solid-900.woff2 +0 -0
  377. data/docs/whoami/index.html +947 -567
  378. data/docs/whoami/index.xml +15 -0
  379. data/exe/rbcli +1 -0
  380. data/lib/rbcli-tool/project.rb +6 -2
  381. data/lib/rbcli/version.rb +1 -1
  382. data/rbcli.gemspec +1 -1
  383. data/skeletons/project/.rakeTasks +7 -0
  384. data/skeletons/project/exe/executable +1 -3
  385. data/skeletons/project/lib/lib.erb +7 -0
  386. data/skeletons/project/untitled.gemspec +13 -15
  387. metadata +356 -65
  388. data/docs-src/mkdocs.yml +0 -79
  389. data/docs/assets/fonts/font-awesome.css +0 -4
  390. data/docs/assets/fonts/material-icons.css +0 -13
  391. data/docs/assets/fonts/specimen/FontAwesome.ttf +0 -0
  392. data/docs/assets/fonts/specimen/FontAwesome.woff +0 -0
  393. data/docs/assets/fonts/specimen/FontAwesome.woff2 +0 -0
  394. data/docs/assets/fonts/specimen/MaterialIcons-Regular.ttf +0 -0
  395. data/docs/assets/fonts/specimen/MaterialIcons-Regular.woff +0 -0
  396. data/docs/assets/fonts/specimen/MaterialIcons-Regular.woff2 +0 -0
  397. data/docs/assets/images/favicon.png +0 -0
  398. data/docs/assets/images/icons/bitbucket.1b09e088.svg +0 -20
  399. data/docs/assets/images/icons/github.f0b8504a.svg +0 -18
  400. data/docs/assets/images/icons/gitlab.6dd19c00.svg +0 -38
  401. data/docs/assets/javascripts/application.583bbe55.js +0 -1
  402. data/docs/assets/javascripts/lunr/lunr.da.js +0 -1
  403. data/docs/assets/javascripts/lunr/lunr.de.js +0 -1
  404. data/docs/assets/javascripts/lunr/lunr.du.js +0 -1
  405. data/docs/assets/javascripts/lunr/lunr.es.js +0 -1
  406. data/docs/assets/javascripts/lunr/lunr.fi.js +0 -1
  407. data/docs/assets/javascripts/lunr/lunr.fr.js +0 -1
  408. data/docs/assets/javascripts/lunr/lunr.hu.js +0 -1
  409. data/docs/assets/javascripts/lunr/lunr.it.js +0 -1
  410. data/docs/assets/javascripts/lunr/lunr.jp.js +0 -1
  411. data/docs/assets/javascripts/lunr/lunr.multi.js +0 -1
  412. data/docs/assets/javascripts/lunr/lunr.no.js +0 -1
  413. data/docs/assets/javascripts/lunr/lunr.pt.js +0 -1
  414. data/docs/assets/javascripts/lunr/lunr.ro.js +0 -1
  415. data/docs/assets/javascripts/lunr/lunr.ru.js +0 -1
  416. data/docs/assets/javascripts/lunr/lunr.stemmer.support.js +0 -1
  417. data/docs/assets/javascripts/lunr/lunr.sv.js +0 -1
  418. data/docs/assets/javascripts/lunr/lunr.tr.js +0 -1
  419. data/docs/assets/javascripts/lunr/tinyseg.js +0 -1
  420. data/docs/assets/javascripts/modernizr.1aa3b519.js +0 -1
  421. data/docs/assets/stylesheets/application-palette.22915126.css +0 -1176
  422. data/docs/assets/stylesheets/application.451f80e5.css +0 -2552
  423. data/docs/imported/quick_reference/index.html +0 -1120
  424. data/docs/search/search_index.json +0 -1
  425. data/docs/sitemap.xml.gz +0 -0
  426. data/skeletons/project/lib/.keep +0 -0
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2
+ <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
3
+ <channel>
4
+ <title>Importeds on RBCli Documentation</title>
5
+ <link>https://akhoury6.github.io/imported/</link>
6
+ <description>Recent content in Importeds on RBCli Documentation</description>
7
+ <generator>Hugo -- gohugo.io</generator>
8
+ <language>en-us</language>
9
+
10
+ <atom:link href="https://akhoury6.github.io/imported/index.xml" rel="self" type="application/rss+xml" />
11
+
12
+
13
+ <item>
14
+ <title></title>
15
+ <link>https://akhoury6.github.io/imported/changelog/</link>
16
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
17
+
18
+ <guid>https://akhoury6.github.io/imported/changelog/</guid>
19
+ <description>Changelog 0.2.12 (Unreleased) Improvements The base project skeleton now includes an improved structure for the lib/ folder Features Development mode can be enabled by setting the environment variables: RBCLI_ENV=development and RBCLI_DEVPATH=[path to local Rbcli folder] to simplify changes to Rbcli during development. Combined with setting alias rbcli=&#39;/path/to/rbcli/exe/rbcli&#39;, gem installation is not required for development work 0.2.11 (Feb 27, 2019) Improvements Updated the dependent gem verions to use the latest available versions Bugfixes Fixed the nested triggers of the message I/O system 0.</description>
20
+ </item>
21
+
22
+ </channel>
23
+ </rss>
@@ -1,771 +1,1087 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="js csstransforms3d">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <meta name="generator" content="Hugo 0.55.6" />
7
+ <meta name="description" content="">
1
8
 
2
9
 
10
+ <link rel="icon" href="/rbcli/images/favicon.png" type="image/png">
3
11
 
12
+ <title> :: RBCli Documentation</title>
4
13
 
5
- <!DOCTYPE html>
6
- <html lang="en" class="no-js">
7
- <head>
8
-
9
- <meta charset="utf-8">
10
- <meta name="viewport" content="width=device-width,initial-scale=1">
11
- <meta http-equiv="x-ua-compatible" content="ie=edge">
12
-
13
- <meta name="description" content="Description">
14
-
15
-
16
-
17
- <meta name="author" content="Andrew Khoury">
18
-
19
-
20
- <meta name="lang:clipboard.copy" content="Copy to clipboard">
21
-
22
- <meta name="lang:clipboard.copied" content="Copied to clipboard">
23
-
24
- <meta name="lang:search.language" content="en">
25
-
26
- <meta name="lang:search.pipeline.stopwords" content="True">
27
-
28
- <meta name="lang:search.pipeline.trimmer" content="True">
29
-
30
- <meta name="lang:search.result.none" content="No matching documents">
31
-
32
- <meta name="lang:search.result.one" content="1 matching document">
33
-
34
- <meta name="lang:search.result.other" content="# matching documents">
35
-
36
- <meta name="lang:search.tokenizer" content="[\s\-]+">
37
-
38
- <link rel="shortcut icon" href="assets/images/favicon.png">
39
- <meta name="generator" content="mkdocs-1.0.3, mkdocs-material-3.0.4">
40
-
41
-
42
-
43
- <title>RBCli Documentation</title>
44
-
45
14
 
15
+ <link href="/rbcli/css/nucleus.css?1561087612" rel="stylesheet">
16
+ <link href="/rbcli/css/fontawesome-all.min.css?1561087612" rel="stylesheet">
17
+ <link href="/rbcli/css/hybrid.css?1561087612" rel="stylesheet">
18
+ <link href="/rbcli/css/featherlight.min.css?1561087612" rel="stylesheet">
19
+ <link href="/rbcli/css/perfect-scrollbar.min.css?1561087612" rel="stylesheet">
20
+ <link href="/rbcli/css/auto-complete.css?1561087612" rel="stylesheet">
21
+ <link href="/rbcli/css/atom-one-dark-reasonable.css?1561087612" rel="stylesheet">
22
+ <link href="/rbcli/css/theme.css?1561087612" rel="stylesheet">
23
+ <link href="/rbcli/css/hugo-theme.css?1561087612" rel="stylesheet">
46
24
 
47
- <link rel="stylesheet" href="assets/stylesheets/application.451f80e5.css">
48
-
49
-
50
-
51
-
52
- <script src="assets/javascripts/modernizr.1aa3b519.js"></script>
25
+ <link href="/rbcli/css/theme-blue.css?1561087612" rel="stylesheet">
53
26
 
54
-
55
-
56
- <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
57
- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono">
58
- <style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
27
+
28
+ <script src="/rbcli/js/jquery-3.3.1.min.js?1561087612"></script>
29
+
30
+ <style>
31
+ :root #header + #content > #left > #rlblock_left{
32
+ display:none !important;
33
+ }
59
34
 
35
+ </style>
60
36
 
61
- <link rel="stylesheet" href="assets/fonts/material-icons.css">
37
+ </head>
38
+ <body class="" data-url="/rbcli/">
39
+ <nav id="sidebar" class="">
40
+
41
+
42
+
43
+ <div id="header-wrapper">
44
+ <div id="header">
45
+ <a id="logo" href="https://akhoury6.github.io/rbcli/" style="font-size: 40px">
46
+ <span class="fas fa-terminal"></span>&nbsp;𝚁𝙱𝙲𝚕𝚒
47
+ </a>
48
+
49
+ </div>
62
50
 
51
+ <div class="searchbox">
52
+ <label for="search-by"><i class="fas fa-search"></i></label>
53
+ <input data-search-input id="search-by" type="search" placeholder="Search...">
54
+ <span data-search-clear=""><i class="fas fa-times"></i></span>
55
+ </div>
56
+
57
+ <script type="text/javascript" src="/rbcli/js/lunr.min.js?1561087612"></script>
58
+ <script type="text/javascript" src="/rbcli/js/auto-complete.js?1561087612"></script>
59
+ <script type="text/javascript">
63
60
 
64
- </head>
65
-
66
- <body dir="ltr">
67
-
68
- <svg class="md-svg">
69
- <defs>
70
-
71
-
72
- <svg xmlns="http://www.w3.org/2000/svg" width="416" height="448"
73
- viewBox="0 0 416 448" id="__github">
74
- <path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19-18.125
75
- 8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19 18.125-8.5
76
- 18.125 8.5 10.75 19 3.125 20.5zM320 304q0 10-3.125 20.5t-10.75
77
- 19-18.125 8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19
78
- 18.125-8.5 18.125 8.5 10.75 19 3.125 20.5zM360
79
- 304q0-30-17.25-51t-46.75-21q-10.25 0-48.75 5.25-17.75 2.75-39.25
80
- 2.75t-39.25-2.75q-38-5.25-48.75-5.25-29.5 0-46.75 21t-17.25 51q0 22 8
81
- 38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0
82
- 37.25-1.75t35-7.375 30.5-15 20.25-25.75 8-38.375zM416 260q0 51.75-15.25
83
- 82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5-41.75
84
- 1.125q-19.5 0-35.5-0.75t-36.875-3.125-38.125-7.5-34.25-12.875-30.25-20.25-21.5-28.75q-15.5-30.75-15.5-82.75
85
- 0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25
86
- 30.875q36.75-8.75 77.25-8.75 37 0 70 8 26.25-20.5
87
- 46.75-30.25t47.25-9.75q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34
88
- 99.5z" />
89
- </svg>
90
-
91
- </defs>
92
- </svg>
93
- <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
94
- <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
95
- <label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
96
-
97
- <a href="#this-is-rbcli" tabindex="1" class="md-skip">
98
- Skip to content
99
- </a>
61
+ var baseurl = "https:\/\/akhoury6.github.io\/rbcli\/";
100
62
 
63
+ </script>
64
+ <script type="text/javascript" src="/rbcli/js/search.js?1561087612"></script>
65
+
101
66
 
102
- <header class="md-header" data-md-component="header">
103
- <nav class="md-header-nav md-grid">
104
- <div class="md-flex">
105
- <div class="md-flex__cell md-flex__cell--shrink">
106
- <a href="." title="RBCli Documentation" class="md-header-nav__button md-logo">
107
-
108
- <i class="md-icon">devices</i>
109
-
110
- </a>
111
- </div>
112
- <div class="md-flex__cell md-flex__cell--shrink">
113
- <label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
114
- </div>
115
- <div class="md-flex__cell md-flex__cell--stretch">
116
- <div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
117
-
118
-
119
- <span class="md-header-nav__topic">
120
- RBCli Documentation
121
- </span>
122
- <span class="md-header-nav__topic">
123
- Home
124
- </span>
125
-
126
-
127
- </div>
128
- </div>
129
- <div class="md-flex__cell md-flex__cell--shrink">
130
-
131
-
132
- <label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
133
-
134
- <div class="md-search" data-md-component="search" role="dialog">
135
- <label class="md-search__overlay" for="__search"></label>
136
- <div class="md-search__inner" role="search">
137
- <form class="md-search__form" name="search">
138
- <input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
139
- <label class="md-icon md-search__icon" for="__search"></label>
140
- <button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
141
- &#xE5CD;
142
- </button>
143
- </form>
144
- <div class="md-search__output">
145
- <div class="md-search__scrollwrap" data-md-scrollfix>
146
- <div class="md-search-result" data-md-component="result">
147
- <div class="md-search-result__meta">
148
- Type to start searching
149
- </div>
150
- <ol class="md-search-result__list"></ol>
151
- </div>
152
- </div>
153
- </div>
154
67
  </div>
155
- </div>
156
-
157
-
158
- </div>
159
-
160
- <div class="md-flex__cell md-flex__cell--shrink">
161
- <div class="md-header-nav__source">
162
-
163
68
 
69
+ <div class="highlightable">
70
+ <ul class="topics">
164
71
 
165
-
166
-
72
+
73
+
74
+
167
75
 
168
- <a href="https://github.com/akhoury6/rbcli/" title="Go to repository" class="md-source" data-md-source="github">
169
-
170
- <div class="md-source__icon">
171
- <svg viewBox="0 0 24 24" width="24" height="24">
172
- <use xlink:href="#__github" width="24" height="24"></use>
173
- </svg>
174
- </div>
175
-
176
- <div class="md-source__repository">
177
- GitHub
178
- </div>
179
- </a>
180
76
 
181
- </div>
182
- </div>
183
-
184
- </div>
185
- </nav>
186
- </header>
77
+
78
+
187
79
 
188
- <div class="md-container">
189
-
80
+ <li data-nav-id="/rbcli/quick_reference/" title="Quick Reference" class="dd-item
190
81
 
191
-
192
-
193
82
 
194
-
195
- <nav class="md-tabs" data-md-component="tabs">
196
- <div class="md-tabs__inner md-grid">
197
- <ul class="md-tabs__list">
198
-
199
83
 
200
- <li class="md-tabs__item">
201
-
202
- <a href="." title="Home" class="md-tabs__link md-tabs__link--active">
203
- Home
84
+ ">
85
+ <a href="/rbcli/quick_reference/">
86
+ Quick Reference
87
+
204
88
  </a>
205
-
206
- </li>
207
-
208
-
209
-
210
89
 
211
-
90
+
91
+ </li>
212
92
 
93
+
94
+
95
+
96
+
97
+
98
+
99
+
213
100
 
214
- <li class="md-tabs__item">
215
-
216
- <a href="tutorial/10-getting_started/" title="Tutorial" class="md-tabs__link">
101
+
102
+ <li data-nav-id="/rbcli/tutorial/" title="Tutorial" class="dd-item
103
+
104
+
105
+
106
+ ">
107
+ <a href="/rbcli/tutorial/">
217
108
  Tutorial
218
- </a>
109
+
110
+ </a>
219
111
 
220
- </li>
221
-
222
-
223
112
 
113
+ <ul>
114
+
115
+
116
+
117
+
224
118
 
119
+
120
+
121
+
122
+
123
+
124
+
225
125
 
226
-
227
- <li class="md-tabs__item">
228
-
229
- <a href="advanced/command_types/" title="Advanced Features" class="md-tabs__link">
230
- Advanced Features
126
+
127
+ <li data-nav-id="/rbcli/tutorial/10-getting_started/" title="Getting Started" class="dd-item ">
128
+ <a href="/rbcli/tutorial/10-getting_started/">
129
+ <b>1. </b>Getting Started
130
+
231
131
  </a>
232
-
233
132
  </li>
133
+
234
134
 
135
+
235
136
 
236
-
237
-
238
-
137
+
138
+
139
+
140
+
141
+
142
+
143
+
239
144
 
240
- <li class="md-tabs__item">
241
-
242
- <a href="development/contributing/" title="Development" class="md-tabs__link">
243
- Development
145
+
146
+ <li data-nav-id="/rbcli/tutorial/20-project_layout/" title="The Project Layout" class="dd-item ">
147
+ <a href="/rbcli/tutorial/20-project_layout/">
148
+ <b>2. </b>The Project Layout
149
+
244
150
  </a>
245
-
246
151
  </li>
152
+
247
153
 
154
+
248
155
 
249
-
250
-
251
-
252
- </ul>
253
- </div>
254
- </nav>
255
-
256
- <main class="md-main">
257
- <div class="md-main__inner md-grid" data-md-component="container">
156
+
258
157
 
259
158
 
260
- <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
261
- <div class="md-sidebar__scrollwrap">
262
- <div class="md-sidebar__inner">
263
- <nav class="md-nav md-nav--primary" data-md-level="0">
264
- <label class="md-nav__title md-nav__title--site" for="__drawer">
265
- <a href="." title="RBCli Documentation" class="md-nav__button md-logo">
266
-
267
- <i class="md-icon">devices</i>
268
-
269
- </a>
270
- RBCli Documentation
271
- </label>
272
-
273
- <div class="md-nav__source">
274
-
159
+
275
160
 
276
161
 
162
+
163
+
164
+
165
+ <li data-nav-id="/rbcli/tutorial/30-your_first_command/" title="Your First Command" class="dd-item ">
166
+ <a href="/rbcli/tutorial/30-your_first_command/">
167
+ <b>3. </b>Your First Command
168
+
169
+ </a>
170
+ </li>
171
+
277
172
 
173
+
278
174
 
175
+
176
+
177
+
178
+
279
179
 
280
- <a href="https://github.com/akhoury6/rbcli/" title="Go to repository" class="md-source" data-md-source="github">
281
-
282
- <div class="md-source__icon">
283
- <svg viewBox="0 0 24 24" width="24" height="24">
284
- <use xlink:href="#__github" width="24" height="24"></use>
285
- </svg>
286
- </div>
287
-
288
- <div class="md-source__repository">
289
- GitHub
290
- </div>
291
- </a>
292
180
 
293
- </div>
181
+
294
182
 
295
- <ul class="md-nav__list" data-md-scrollfix>
296
183
 
297
-
298
-
299
-
300
-
184
+ <li data-nav-id="/rbcli/tutorial/40-options_parameters_and_arguments/" title="Options, Parameters, and Arguments" class="dd-item ">
185
+ <a href="/rbcli/tutorial/40-options_parameters_and_arguments/">
186
+ <b>4. </b>Options, Parameters, and Arguments
187
+
188
+ </a>
189
+ </li>
190
+
301
191
 
192
+
302
193
 
194
+
195
+
196
+
197
+
303
198
 
304
- <li class="md-nav__item md-nav__item--active">
305
-
306
- <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
307
-
308
-
309
-
310
-
311
- <a href="." title="Home" class="md-nav__link md-nav__link--active">
312
- Home
313
- </a>
314
-
315
- </li>
316
199
 
200
+
201
+
317
202
 
318
-
319
-
320
-
321
-
203
+ <li data-nav-id="/rbcli/tutorial/50-publishing/" title="Publishing Your Application" class="dd-item ">
204
+ <a href="/rbcli/tutorial/50-publishing/">
205
+ <b>5. </b>Publishing Your Application
206
+
207
+ </a>
208
+ </li>
209
+
210
+
211
+
322
212
 
323
- <li class="md-nav__item">
324
- <a href="imported/quick_reference/" title="Quick Reference" class="md-nav__link">
325
- Quick Reference
326
- </a>
327
- </li>
213
+
214
+
215
+
216
+ </ul>
217
+
218
+ </li>
219
+
220
+
328
221
 
329
-
330
-
331
-
332
-
222
+
223
+
333
224
 
334
225
 
335
- <li class="md-nav__item md-nav__item--nested">
336
-
337
- <input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
226
+
227
+
338
228
 
339
- <label class="md-nav__link" for="nav-3">
340
- Tutorial
341
- </label>
342
- <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
343
- <label class="md-nav__title" for="nav-3">
344
- Tutorial
345
- </label>
346
- <ul class="md-nav__list" data-md-scrollfix>
229
+ <li data-nav-id="/rbcli/advanced/" title="Advanced" class="dd-item
347
230
 
348
231
 
232
+
233
+ ">
234
+ <a href="/rbcli/advanced/">
235
+ Advanced
349
236
 
237
+ </a>
238
+
239
+
240
+ <ul>
350
241
 
351
242
 
352
-
353
-
354
- <li class="md-nav__item">
355
- <a href="tutorial/10-getting_started/" title="Getting Started" class="md-nav__link">
356
- Getting Started
357
- </a>
358
- </li>
359
-
360
-
361
243
 
362
244
 
245
+
363
246
 
247
+
248
+
364
249
 
365
250
 
366
- <li class="md-nav__item">
367
- <a href="tutorial/20-project_layout/" title="The Project Layout" class="md-nav__link">
368
- The Project Layout
369
- </a>
370
- </li>
371
-
251
+
252
+
253
+
254
+ <li data-nav-id="/rbcli/advanced/automatic_updates/" title="Automatic Updates" class="dd-item ">
255
+ <a href="/rbcli/advanced/automatic_updates/">
256
+ Automatic Updates
372
257
 
373
-
374
-
375
-
258
+ </a>
259
+ </li>
260
+
261
+
262
+
376
263
 
264
+
265
+
266
+
267
+
377
268
 
378
- <li class="md-nav__item">
379
- <a href="tutorial/30-your_first_command/" title="Your First Command" class="md-nav__link">
380
- Your First Command
381
- </a>
382
- </li>
383
269
 
270
+
271
+
272
+
273
+ <li data-nav-id="/rbcli/advanced/command_types/" title="Command Types" class="dd-item ">
274
+ <a href="/rbcli/advanced/command_types/">
275
+ Command Types
384
276
 
385
-
386
-
387
-
277
+ </a>
278
+ </li>
279
+
280
+
281
+
388
282
 
283
+
284
+
285
+
286
+
389
287
 
390
- <li class="md-nav__item">
391
- <a href="tutorial/40-options_parameters_and_arguments/" title="Options, Parameters, and Arguments" class="md-nav__link">
392
- Options, Parameters, and Arguments
393
- </a>
394
- </li>
395
288
 
289
+
290
+
291
+
292
+ <li data-nav-id="/rbcli/advanced/distributed_state_locking/" title="Distributed State and Locking" class="dd-item ">
293
+ <a href="/rbcli/advanced/distributed_state_locking/">
294
+ Distributed State and Locking
396
295
 
397
-
398
-
399
-
296
+ </a>
297
+ </li>
298
+
299
+
300
+
400
301
 
302
+
303
+
304
+
305
+
401
306
 
402
- <li class="md-nav__item">
403
- <a href="tutorial/50-publishing/" title="Publishing and Distribution" class="md-nav__link">
404
- Publishing and Distribution
405
- </a>
406
- </li>
407
307
 
308
+
309
+
310
+
311
+ <li data-nav-id="/rbcli/advanced/hooks/" title="Execution Hooks" class="dd-item ">
312
+ <a href="/rbcli/advanced/hooks/">
313
+ Execution Hooks
408
314
 
409
- </ul>
410
- </nav>
411
- </li>
315
+ </a>
316
+ </li>
317
+
318
+
319
+
412
320
 
413
-
414
-
415
-
416
-
321
+
322
+
323
+
324
+
417
325
 
418
326
 
419
- <li class="md-nav__item md-nav__item--nested">
420
-
421
- <input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4">
327
+
328
+
422
329
 
423
- <label class="md-nav__link" for="nav-4">
424
- Advanced Features
425
- </label>
426
- <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
427
- <label class="md-nav__title" for="nav-4">
428
- Advanced Features
429
- </label>
430
- <ul class="md-nav__list" data-md-scrollfix>
431
-
330
+ <li data-nav-id="/rbcli/advanced/interactive_commands/" title="Interactive Commands" class="dd-item ">
331
+ <a href="/rbcli/advanced/interactive_commands/">
332
+ Interactive Commands
432
333
 
433
-
434
-
435
-
334
+ </a>
335
+ </li>
336
+
337
+
338
+
436
339
 
340
+
341
+
342
+
343
+
437
344
 
438
- <li class="md-nav__item">
439
- <a href="advanced/command_types/" title="Command Types" class="md-nav__link">
440
- Command Types
441
- </a>
442
- </li>
443
345
 
346
+
347
+
348
+
349
+ <li data-nav-id="/rbcli/advanced/logging/" title="Logging" class="dd-item ">
350
+ <a href="/rbcli/advanced/logging/">
351
+ Logging
444
352
 
445
-
446
-
447
-
353
+ </a>
354
+ </li>
355
+
356
+
357
+
448
358
 
359
+
360
+
361
+
362
+
449
363
 
450
- <li class="md-nav__item">
451
- <a href="advanced/user_config_files/" title="User Config Files" class="md-nav__link">
452
- User Config Files
453
- </a>
454
- </li>
455
364
 
365
+
366
+
367
+
368
+ <li data-nav-id="/rbcli/advanced/remote_execution/" title="Remote Execution" class="dd-item ">
369
+ <a href="/rbcli/advanced/remote_execution/">
370
+ Remote Execution
456
371
 
457
-
458
-
459
-
372
+ </a>
373
+ </li>
374
+
375
+
376
+
460
377
 
378
+
379
+
380
+
381
+
461
382
 
462
- <li class="md-nav__item">
463
- <a href="advanced/hooks/" title="Hooks" class="md-nav__link">
464
- Hooks
465
- </a>
466
- </li>
467
383
 
384
+
385
+
386
+
387
+ <li data-nav-id="/rbcli/advanced/state_storage/" title="State Storage" class="dd-item ">
388
+ <a href="/rbcli/advanced/state_storage/">
389
+ State Storage
468
390
 
469
-
470
-
471
-
391
+ </a>
392
+ </li>
393
+
394
+
395
+
472
396
 
397
+
398
+
399
+
400
+
473
401
 
474
- <li class="md-nav__item">
475
- <a href="advanced/logging/" title="Logging" class="md-nav__link">
476
- Logging
477
- </a>
478
- </li>
479
402
 
403
+
404
+
405
+
406
+ <li data-nav-id="/rbcli/advanced/user_config_files/" title="User Configuration Files" class="dd-item ">
407
+ <a href="/rbcli/advanced/user_config_files/">
408
+ User Configuration Files
480
409
 
410
+ </a>
411
+ </li>
412
+
413
+
414
+
415
+
416
+
481
417
 
418
+
419
+ </ul>
420
+
421
+ </li>
422
+
423
+
424
+
482
425
 
483
426
 
484
427
 
485
428
 
486
- <li class="md-nav__item">
487
- <a href="advanced/automatic_updates/" title="Automatic Updates" class="md-nav__link">
488
- Automatic Updates
489
- </a>
490
- </li>
491
-
429
+
430
+
431
+
432
+ <li data-nav-id="/rbcli/development/" title="Development" class="dd-item
433
+
492
434
 
435
+
436
+ ">
437
+ <a href="/rbcli/development/">
438
+ Development
493
439
 
440
+ </a>
441
+
442
+
443
+ <ul>
494
444
 
495
445
 
496
-
497
-
498
- <li class="md-nav__item">
499
- <a href="advanced/state_storage/" title="State Storage" class="md-nav__link">
500
- State Storage
501
- </a>
502
- </li>
503
-
504
-
505
446
 
506
447
 
448
+
507
449
 
450
+
451
+
508
452
 
509
453
 
510
- <li class="md-nav__item">
511
- <a href="advanced/distributed_state_locking/" title="Distributed State Locking" class="md-nav__link">
512
- Distributed State Locking
513
- </a>
514
- </li>
515
-
454
+
455
+
456
+
457
+ <li data-nav-id="/rbcli/development/contributing/" title="Contribution Guide" class="dd-item ">
458
+ <a href="/rbcli/development/contributing/">
459
+ Contribution Guide
516
460
 
517
-
518
-
519
-
461
+ </a>
462
+ </li>
463
+
464
+
465
+
520
466
 
467
+
468
+
469
+
470
+
521
471
 
522
- <li class="md-nav__item">
523
- <a href="advanced/remote_execution/" title="Remote Execution" class="md-nav__link">
524
- Remote Execution
525
- </a>
526
- </li>
527
472
 
473
+
474
+
475
+
476
+ <li data-nav-id="/rbcli/development/license/" title="License Info" class="dd-item ">
477
+ <a href="/rbcli/development/license/">
478
+ License Info
528
479
 
480
+ </a>
481
+ </li>
482
+
483
+
484
+
485
+
486
+
529
487
 
488
+
489
+
490
+
491
+
492
+
493
+
494
+
495
+ <li data-nav-id="/rbcli/development/code_of_conduct/" title="Code of Conduct" class="dd-item ">
496
+ <a href="/rbcli/development/code_of_conduct/">
497
+ Code of Conduct
498
+
499
+ </a>
500
+ </li>
501
+
502
+
503
+
504
+
505
+
530
506
 
531
-
507
+
508
+
532
509
 
533
510
 
534
- <li class="md-nav__item">
535
- <a href="advanced/interactive_commands/" title="Interactive Commands" class="md-nav__link">
536
- Interactive Commands
537
- </a>
538
- </li>
511
+
512
+
513
+
514
+ <li data-nav-id="/rbcli/development/changelog/" title="Changelog" class="dd-item ">
515
+ <a href="/rbcli/development/changelog/">
516
+ Changelog
517
+
518
+ </a>
519
+ </li>
520
+
521
+
522
+
539
523
 
524
+
525
+
540
526
 
541
- </ul>
542
- </nav>
543
- </li>
527
+ </ul>
528
+
529
+ </li>
530
+
531
+
532
+
533
+
534
+
535
+
544
536
 
537
+
538
+
545
539
 
540
+ <li data-nav-id="/rbcli/whoami/" title="My Letter To You" class="dd-item
541
+
542
+
543
+
544
+ ">
545
+ <a href="/rbcli/whoami/">
546
+ My Letter To You
547
+
548
+ </a>
546
549
 
547
-
548
-
550
+
551
+ </li>
552
+
553
+
549
554
 
555
+
556
+
557
+ </ul>
550
558
 
551
- <li class="md-nav__item md-nav__item--nested">
552
559
 
553
- <input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
554
560
 
555
- <label class="md-nav__link" for="nav-5">
556
- Development
557
- </label>
558
- <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
559
- <label class="md-nav__title" for="nav-5">
560
- Development
561
- </label>
562
- <ul class="md-nav__list" data-md-scrollfix>
563
-
564
-
561
+ <section id="shortcuts">
562
+ <h3>More</h3>
563
+ <ul>
565
564
 
565
+ <li>
566
+ <a class="padding" href="https://github.com/akhoury6/rbcli"><i class='fab fa-github'></i> Github repo</a>
567
+ </li>
566
568
 
569
+ <li>
570
+ <a class="padding" href="https://rubygems.org/gems/rbcli"><i class='far fa-gem'></i> Rubygems</a>
571
+ </li>
567
572
 
573
+ </ul>
574
+ </section>
575
+
576
+
577
+
578
+ <section id="footer">
579
+ <p>Built with <a href="https://github.com/matcornic/hugo-theme-learn"><i class="fas fa-heart"></i></a> from <a href="https://getgrav.org">Grav</a> and <a href="https://gohugo.io/">Hugo</a></p>
568
580
 
581
+ </section>
582
+ </div>
583
+ </nav>
569
584
 
570
- <li class="md-nav__item">
571
- <a href="development/contributing/" title="Contribution Guide" class="md-nav__link">
572
- Contribution Guide
573
- </a>
574
- </li>
575
585
 
576
-
577
-
578
-
579
-
580
586
 
581
587
 
582
- <li class="md-nav__item">
583
- <a href="development/license/" title="License Info" class="md-nav__link">
584
- License Info
585
- </a>
586
- </li>
587
588
 
589
+ <section id="body">
590
+ <div id="overlay"></div>
591
+ <div class="padding highlightable">
592
+
593
+ <div id="head-tags">
588
594
 
589
-
590
-
595
+ </div>
596
+
597
+ <div id="body-inner">
591
598
 
592
599
 
600
+
593
601
 
594
- <li class="md-nav__item">
595
- <a href="development/code_of_conduct/" title="Code of Conduct" class="md-nav__link">
596
- Code of Conduct
597
- </a>
598
- </li>
599
602
 
600
-
601
-
602
-
603
-
603
+ <span id="sidebar-toggle-span">
604
+ <a href="#" id="sidebar-toggle" data-sidebar-toggle=""><i class="fas fa-bars"></i> navigation</a>
605
+ </span>
606
+
607
+
608
+
609
+
610
+ <h1 id="this-is-rbcli">This is RBCli</h1>
611
+
612
+ <p>As technologists today, we work with the command line a lot. We script a lot. We write tools to share with each other to make our lives easier. We even write applications to make up for missing features in the 3rd party software that we buy. Unfortunately, when writing CLI tools, this process has typically been very painful. We&rsquo;ve been working with low-level frameworks for decades; frameworks like <code>getopt</code> (1980) and <code>curses</code> (1977). They fit their purpose well; they were both computationally lightweight for the computers of the day, and they gave engineers full control and flexibility when it came to how things were built. Over the years, we&rsquo;ve used them to settle on several design patterns that we know work well. Patterns as to what a CLI command looks like, what a config file looks like, what remote execution looks like, and even how to use locks (mutexes, semaphores, etc) to control application flow and data atomicity. Yet we&rsquo;re stuck writing the same low-level code anytime we want to write our tooling. Not anymore.</p>
613
+
614
+ <p>Enter RBCli. RBCli is a framework to quickly develop advanced command-line tools in Ruby. It has been written from the ground up with the needs of the modern technologist in mind, designed to make advanced CLI tool development as painless as possible. In RBCli, low-level code has been wrapped and/or replaced with higher-level methods. Much of the functionality has even been reduced to single methods: for example, it takes just one declaration to define, load, and generate a user&rsquo;s config file at the appropriate times. Many other features are automated and require no work by the engineer. These make RBCli a fundamental re-thining of how we develop CLI tools, enabling the rapid development of applications for everyone from hobbyists to enterprises.</p>
615
+
616
+ <p>Some of its key features include:</p>
617
+
618
+ <ul>
619
+ <li><p><strong>Simple DSL Interface</strong>: To cut down on the amount of code that needs to be written, RBCli has a DSL that is designed to cut to the chase. This makes the work a lot less tedious.</p></li>
620
+
621
+ <li><p><strong>Multiple Levels of Parameters and Arguments</strong>: Forget about writing parsers for command-line options, or about having to differentiate between parameters and arguments. All of that work is taken care of.</p></li>
622
+
623
+ <li><p><strong>Config File Generation</strong>: Easily piece together a default configuration even with declarations in different parts of the code. Then the user can generate their own configuration, and it gets stored in whatever location you&rsquo;d like.</p></li>
624
+
625
+ <li><p><strong>Multiple Hooks and Entry Points</strong>: Define commands, pre-execution hooks, post-execution hooks, and first_run hooks to quickly and easily customize the flow of your application code.</p></li>
626
+
627
+ <li><p><strong>Logging</strong>: Keep track of all instances of your tool through logging. Logs can go to STDOUT, STDERR, or a given file, making them compatible with log aggregators such as Splunk, Logstash, and many others.</p></li>
628
+
629
+ <li><p><strong>Local State Storage</strong>: Easily manage a set of data that persists between runs. You get access to a hash that is automatically kept in-sync with a file on disk.</p></li>
630
+
631
+ <li><p><strong>Remote State</strong>: It works just like Local State Storage, but store the data on a remote server! It can be used in tandem with Local State Storage or on its own. Currently supports AWS DyanmoDB.</p></li>
632
+
633
+ <li><p><strong>State Locking and Sharing</strong>: Share remote state safely between users with built-in locking! When enabled, it makes sure that only one user is accessing the data at any given time.</p></li>
604
634
 
635
+ <li><p><strong>Automatic Update Notifications</strong>: Just provide the gem name or git repo, and RBCli will take care of notifying users!</p></li>
605
636
 
606
- <li class="md-nav__item">
607
- <a href="imported/changelog/" title="Changelog" class="md-nav__link">
608
- Changelog
609
- </a>
610
- </li>
637
+ <li><p><strong>External Script Wrapping</strong>: High-level wrapping for Bash scripts, or any other applcication you&rsquo;d like to wrap into a command.</p></li>
611
638
 
639
+ <li><p><strong>Project Structure and Generators</strong>: Create a well-defined project directory structure which organizes your code and allows you to package and distribute your application as a Gem. Generators can also help speed up the process of creating new commands, scripts, and hooks!</p></li>
640
+
641
+ <li><p><strong>Remote Execution</strong>: Automatically execute commands on remote machines via SSH</p></li>
642
+
643
+ <li><p><strong>Interactive Commands</strong>: Automatically prompt users for paramter values if not given on the command line. This pattern allows for easy user interaction while still allowing scripting without the use of <em>expect</em>.</p></li>
644
+ </ul>
645
+
646
+ <p>If you&rsquo;re just getting started with RBCli, take a look at the <a href="/rbcli/tutorial/">Tutorial</a>. Or take a look at the <a href="/rbcli/advanced/">Advanced</a> menu to look through RBCli&rsquo;s additional featureset.</p>
647
+
648
+
649
+
650
+ </div>
612
651
 
613
- </ul>
614
- </nav>
615
- </li>
616
652
 
617
-
618
-
619
-
620
-
653
+ </div>
621
654
 
655
+ <div id="navigation">
656
+
657
+
658
+
659
+
660
+
661
+
662
+
663
+
664
+
665
+
666
+
622
667
 
623
- <li class="md-nav__item">
624
- <a href="whoami/" title="whoami" class="md-nav__link">
625
- whoami
626
- </a>
627
- </li>
668
+
669
+
670
+
671
+
672
+
628
673
 
629
-
630
- </ul>
631
- </nav>
632
- </div>
633
- </div>
634
- </div>
674
+
675
+
635
676
 
636
677
 
637
- <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
638
- <div class="md-sidebar__scrollwrap">
639
- <div class="md-sidebar__inner">
678
+
679
+
680
+
681
+
682
+
683
+
684
+
685
+
686
+
687
+
688
+
689
+
640
690
 
641
- <nav class="md-nav md-nav--secondary">
642
-
643
-
644
-
645
-
646
-
647
- </nav>
648
- </div>
649
- </div>
650
- </div>
651
691
 
652
-
653
- <div class="md-content">
654
- <article class="md-content__inner md-typeset">
655
-
692
+
693
+
694
+
695
+
696
+
697
+
698
+
656
699
 
657
700
 
658
- <h1 id="this-is-rbcli">This is RBCli</h1>
659
- <p>As technologists today, we work with the command line a lot. We script a lot. We write tools to share with each other to make our lives easier. We even write applications to make up for missing features in the 3rd party software that we buy. Unfortunately, when writing CLI tools, this process has typically been very painful. We've been working with low-level frameworks for decades; frameworks like <code>getopt</code> (1980) and <code>curses</code> (1977). They fit their purpose well; they were both computationally lightweight for the computers of the day, and they gave engineers full control and flexibility when it came to how things were built. Over the years, we've used them to settle on several design patterns that we know work well. Patterns as to what a CLI command looks like, what a config file looks like, what remote execution looks like, and even how to use locks (mutexes, semaphores, etc) to control application flow and data atomicity. Yet we're stuck writing the same low-level code anytime we want to write our tooling. Not anymore.</p>
660
- <p>Enter RBCli. RBCli is a framework to quickly develop advanced command-line tools in Ruby. It has been written from the ground up with the needs of the modern technologist in mind, designed to make advanced CLI tool development as painless as possible. In RBCli, low-level code has been wrapped and/or replaced with higher-level methods. Much of the functionality has even been reduced to single methods: for example, it takes just one declaration to define, load, and generate a user's config file at the appropriate times. Many other features are automated and require no work by the engineer. These make RBCli a fundamental re-thining of how we develop CLI tools, enabling the rapid development of applications for everyone from hobbyists to enterprises.</p>
661
- <p>Some of its key features include:</p>
662
- <ul>
663
- <li>
664
- <p><strong>Simple DSL Interface</strong>: To cut down on the amount of code that needs to be written, RBCli has a DSL that is designed to cut to the chase. This makes the work a lot less tedious.</p>
665
- </li>
666
- <li>
667
- <p><strong>Multiple Levels of Parameters and Arguments</strong>: Forget about writing parsers for command-line options, or about having to differentiate between parameters and arguments. All of that work is taken care of.</p>
668
- </li>
669
- <li>
670
- <p><strong>Config File Generation</strong>: Easily piece together a default configuration even with declarations in different parts of the code. Then the user can generate their own configuration, and it gets stored in whatever location you'd like.</p>
671
- </li>
672
- <li>
673
- <p><strong>Multiple Hooks and Entry Points</strong>: Define commands, pre-execution hooks, post-execution hooks, and first_run hooks to quickly and easily customize the flow of your application code.</p>
674
- </li>
675
- <li>
676
- <p><strong>Logging</strong>: Keep track of all instances of your tool through logging. Logs can go to STDOUT, STDERR, or a given file, making them compatible with log aggregators such as Splunk, Logstash, and many others.</p>
677
- </li>
678
- <li>
679
- <p><strong>Local State Storage</strong>: Easily manage a set of data that persists between runs. You get access to a hash that is automatically kept in-sync with a file on disk.</p>
680
- </li>
681
- <li>
682
- <p><strong>Remote State</strong>: It works just like Local State Storage, but store the data on a remote server! It can be used in tandem with Local State Storage or on its own. Currently supports AWS DyanmoDB. </p>
683
- </li>
684
- <li>
685
- <p><strong>State Locking and Sharing</strong>: Share remote state safely between users with built-in locking! When enabled, it makes sure that only one user is accessing the data at any given time.</p>
686
- </li>
687
- <li>
688
- <p><strong>Automatic Update Notifications</strong>: Just provide the gem name or git repo, and RBCli will take care of notifying users!</p>
689
- </li>
690
- <li>
691
- <p><strong>External Script Wrapping</strong>: High-level wrapping for Bash scripts, or any other applcication you'd like to wrap into a command.</p>
692
- </li>
693
- <li>
694
- <p><strong>Project Structure and Generators</strong>: Create a well-defined project directory structure which organizes your code and allows you to package and distribute your application as a Gem. Generators can also help speed up the process of creating new commands, scripts, and hooks!</p>
695
- </li>
696
- <li>
697
- <p><strong>Remote Execution</strong>: Automatically execute commands on remote machines via SSH</p>
698
- </li>
699
- </ul>
700
- <p>If you're just getting started with RBCli, take a look at the <a href="tutorial/10-getting_started/">Tutorial</a>. Or take a look at the <a href="advanced/user_config_files/">Advanced</a> menu above to look through RBCli's additional featureset.</p>
701
+
702
+
703
+
704
+
705
+
706
+
707
+
708
+
709
+
701
710
 
702
-
711
+
703
712
 
704
-
705
-
706
713
 
707
714
 
715
+
716
+
717
+
708
718
 
709
-
710
- </article>
711
- </div>
712
- </div>
713
- </main>
714
-
719
+
720
+
715
721
 
716
- <footer class="md-footer">
717
-
718
- <div class="md-footer-nav">
719
- <nav class="md-footer-nav__inner md-grid">
722
+
723
+
724
+
725
+
726
+
727
+
728
+
729
+
730
+
731
+
732
+
733
+
734
+
735
+
736
+
720
737
 
738
+
739
+
740
+
741
+
742
+
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
721
753
 
722
- <a href="imported/quick_reference/" title="Quick Reference" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
723
- <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
724
- <span class="md-flex__ellipsis">
725
- <span class="md-footer-nav__direction">
726
- Next
727
- </span>
728
- Quick Reference
729
- </span>
730
- </div>
731
- <div class="md-flex__cell md-flex__cell--shrink">
732
- <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
733
- </div>
734
- </a>
754
+
755
+
756
+
757
+
758
+
759
+
760
+
761
+
762
+
763
+
764
+
765
+
766
+
767
+
768
+
735
769
 
736
- </nav>
737
- </div>
738
-
739
- <div class="md-footer-meta md-typeset">
740
- <div class="md-footer-meta__inner md-grid">
741
- <div class="md-footer-copyright">
770
+
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+
742
785
 
743
- <div class="md-footer-copyright__highlight">
744
- Copyright © 2018 Andrew Khoury
745
- </div>
786
+
787
+
746
788
 
747
- powered by
748
- <a href="https://www.mkdocs.org">MkDocs</a>
749
- and
750
- <a href="https://squidfunk.github.io/mkdocs-material/">
751
- Material for MkDocs</a>
752
- </div>
753
-
789
+
790
+
791
+
792
+
793
+
794
+
795
+
796
+
797
+
798
+
799
+
800
+
801
+
802
+
803
+
804
+
805
+
806
+
807
+
808
+
809
+
810
+
811
+
812
+
813
+
814
+
815
+
816
+
754
817
 
755
-
756
- </div>
757
- </div>
758
- </footer>
759
-
818
+
819
+
820
+
821
+
822
+
823
+
824
+
825
+
826
+
827
+
828
+
829
+
830
+
831
+
832
+
833
+
834
+
835
+
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+
845
+
846
+
847
+
848
+
849
+
850
+
851
+
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+
860
+
861
+
862
+
863
+
864
+
865
+
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+
874
+
875
+
876
+
877
+
878
+
879
+
880
+
881
+
882
+
883
+
884
+
885
+
886
+
887
+
888
+
889
+
890
+
891
+
892
+
893
+
894
+
895
+
896
+
897
+
898
+
899
+
900
+
901
+
902
+
903
+
904
+
905
+
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+
914
+
915
+
916
+
917
+
918
+
919
+
920
+
921
+
922
+
923
+
924
+
925
+
926
+
927
+
928
+
929
+
930
+
931
+
932
+
933
+
934
+
935
+
936
+
937
+
938
+
939
+
940
+
941
+
942
+
943
+
944
+
945
+
946
+
947
+
948
+
949
+
950
+
951
+
952
+
953
+
954
+
955
+
956
+
957
+
958
+
959
+
960
+
961
+
962
+
963
+
964
+
965
+
966
+
967
+
968
+
969
+
970
+
971
+
972
+
973
+
974
+
975
+
976
+
977
+
978
+
979
+
980
+
981
+
982
+
983
+
984
+
985
+
986
+
987
+
988
+
989
+
990
+
991
+
992
+
993
+
994
+
995
+
996
+
997
+
998
+
999
+
1000
+
1001
+
1002
+
1003
+
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+
1020
+
1021
+
1022
+
1023
+
1024
+
1025
+
1026
+
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+
1033
+
1034
+
1035
+
1036
+
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+
1053
+
1054
+
1055
+
1056
+ <a class="nav nav-next" href="/rbcli/quick_reference/" title="Quick Reference" style="margin-right: 0px;"><i class="fa fa-chevron-right"></i></a>
1057
+
1058
+
760
1059
  </div>
1060
+
1061
+ </section>
761
1062
 
762
- <script src="assets/javascripts/application.583bbe55.js"></script>
763
-
764
- <script>app.initialize({version:"1.0.3",url:{base:"."}})</script>
765
-
766
-
767
-
768
-
1063
+ <div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
1064
+ <div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
1065
+ </div>
1066
+ <script src="/rbcli/js/clipboard.min.js?1561087612"></script>
1067
+ <script src="/rbcli/js/perfect-scrollbar.min.js?1561087612"></script>
1068
+ <script src="/rbcli/js/perfect-scrollbar.jquery.min.js?1561087612"></script>
1069
+ <script src="/rbcli/js/jquery.sticky.js?1561087612"></script>
1070
+ <script src="/rbcli/js/featherlight.min.js?1561087612"></script>
1071
+ <script src="/rbcli/js/html5shiv-printshiv.min.js?1561087612"></script>
1072
+ <script src="/rbcli/js/highlight.pack.js?1561087612"></script>
1073
+ <script>hljs.initHighlightingOnLoad();</script>
1074
+ <script src="/rbcli/js/modernizr.custom-3.6.0.js?1561087612"></script>
1075
+ <script src="/rbcli/js/learn.js?1561087612"></script>
1076
+ <script src="/rbcli/js/hugo-learn.js?1561087612"></script>
1077
+
1078
+ <link href="/rbcli/mermaid/mermaid.css?1561087612" rel="stylesheet" />
1079
+ <script src="/rbcli/mermaid/mermaid.js?1561087612"></script>
1080
+ <script>
1081
+ mermaid.initialize({ startOnLoad: true });
1082
+ </script>
769
1083
 
1084
+
770
1085
  </body>
771
- </html>
1086
+ </html>
1087
+