brut 0.0.27 → 0.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/brutrb.com/.vitepress/config.mjs +1 -0
  4. data/brutrb.com/dev-environment.md +6 -5
  5. data/brutrb.com/doc-conventions.md +1 -1
  6. data/brutrb.com/getting-started.md +64 -28
  7. data/brutrb.com/instrumentation.md +12 -0
  8. data/brutrb.com/layouts.md +130 -0
  9. data/docs/404.html +2 -2
  10. data/docs/ai.html +5 -5
  11. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  12. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  13. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  14. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  15. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  16. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  17. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  18. data/docs/api/Brut/BackEnd.html +1 -1
  19. data/docs/api/Brut/CLI/App.html +38 -13
  20. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  21. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +2 -2
  22. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +2 -2
  23. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +2 -2
  24. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +2 -2
  25. data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
  26. data/docs/api/Brut/CLI/Apps/DB/Create.html +2 -2
  27. data/docs/api/Brut/CLI/Apps/DB/Drop.html +2 -2
  28. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +9 -3
  29. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +11 -11
  30. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +2 -2
  31. data/docs/api/Brut/CLI/Apps/DB/Seed.html +2 -2
  32. data/docs/api/Brut/CLI/Apps/DB/Status.html +12 -12
  33. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  34. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +270 -0
  35. data/docs/api/Brut/CLI/Apps/DeployBase.html +257 -0
  36. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +585 -0
  37. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +196 -0
  38. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  39. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +2 -2
  40. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +2 -2
  41. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +2 -2
  42. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +2 -2
  43. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +2 -2
  44. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  45. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +2 -2
  46. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
  47. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +2 -2
  48. data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
  49. data/docs/api/Brut/CLI/Apps/Test/Audit.html +12 -10
  50. data/docs/api/Brut/CLI/Apps/Test/E2e.html +8 -8
  51. data/docs/api/Brut/CLI/Apps/Test/JS.html +9 -9
  52. data/docs/api/Brut/CLI/Apps/Test/Run.html +18 -18
  53. data/docs/api/Brut/CLI/Apps/Test.html +1 -1
  54. data/docs/api/Brut/CLI/Apps.html +2 -2
  55. data/docs/api/Brut/CLI/Command.html +113 -28
  56. data/docs/api/Brut/CLI/Error.html +1 -1
  57. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  58. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  59. data/docs/api/Brut/CLI/Executor.html +169 -38
  60. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  61. data/docs/api/Brut/CLI/Options.html +68 -19
  62. data/docs/api/Brut/CLI/Output.html +1 -1
  63. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  64. data/docs/api/Brut/CLI.html +1 -1
  65. data/docs/api/Brut/FactoryBot.html +1 -1
  66. data/docs/api/Brut/Framework/App.html +1 -1
  67. data/docs/api/Brut/Framework/Config.html +1 -1
  68. data/docs/api/Brut/Framework/Container.html +110 -29
  69. data/docs/api/Brut/Framework/Error.html +1 -1
  70. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +89 -1
  71. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  72. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  73. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  74. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  75. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  76. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  77. data/docs/api/Brut/Framework/Errors.html +31 -8
  78. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
  79. data/docs/api/Brut/Framework/MCP.html +1 -1
  80. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  81. data/docs/api/Brut/Framework.html +1 -1
  82. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  83. data/docs/api/Brut/FrontEnd/Component/Helpers.html +36 -26
  84. data/docs/api/Brut/FrontEnd/Component.html +7 -7
  85. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
  86. data/docs/api/Brut/FrontEnd/Components/FormTag.html +37 -29
  87. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
  88. data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
  89. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  90. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +20 -117
  91. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +25 -23
  92. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +73 -380
  93. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +22 -138
  94. data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
  95. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  96. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  97. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  98. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  99. data/docs/api/Brut/FrontEnd/Components.html +23 -2
  100. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  101. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  102. data/docs/api/Brut/FrontEnd/Form.html +1 -1
  103. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +24 -68
  104. data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
  105. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +4 -4
  106. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
  107. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
  108. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  109. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
  110. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  111. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +72 -22
  112. data/docs/api/Brut/FrontEnd/Forms.html +1 -1
  113. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  114. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  115. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  116. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  117. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  118. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  119. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
  120. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  121. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  122. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  123. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  124. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  125. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  126. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  127. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  128. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  129. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  130. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  131. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +6 -2
  132. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  133. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  134. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
  135. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  136. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  137. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  138. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  139. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  140. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  141. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  142. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  143. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  144. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  145. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  146. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  147. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  148. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  149. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  150. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  151. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  152. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  153. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  154. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  155. data/docs/api/Brut/FrontEnd.html +1 -1
  156. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  157. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  158. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  159. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  160. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  161. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  162. data/docs/api/Brut/I18n.html +1 -1
  163. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
  164. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
  165. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
  166. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
  167. data/docs/api/Brut/Instrumentation.html +1 -1
  168. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
  169. data/docs/api/Brut/SinatraHelpers.html +1 -1
  170. data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
  171. data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
  172. data/docs/api/Brut/SpecSupport/E2ETestServer.html +20 -20
  173. data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
  174. data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
  175. data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
  176. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
  177. data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
  178. data/docs/api/Brut/SpecSupport/HandlerSupport.html +2 -2
  179. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +142 -0
  180. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +142 -0
  181. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +155 -0
  182. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +55 -25
  183. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +149 -0
  184. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +46 -19
  185. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +149 -0
  186. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +149 -0
  187. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +165 -0
  188. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +158 -0
  189. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +156 -0
  190. data/docs/api/Brut/SpecSupport/Matchers.html +2 -2
  191. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +24 -24
  192. data/docs/api/Brut/SpecSupport/RSpecSetup.html +55 -20
  193. data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
  194. data/docs/api/Brut/SpecSupport.html +1 -1
  195. data/docs/api/Brut.html +1 -1
  196. data/docs/api/Clock.html +1 -1
  197. data/docs/api/RichString.html +1 -1
  198. data/docs/api/SemanticLogger/Appender/Async.html +1 -1
  199. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +5 -1
  200. data/docs/api/Sequel/Extensions/BrutMigrations.html +36 -28
  201. data/docs/api/Sequel/Extensions.html +1 -1
  202. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
  203. data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
  204. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
  205. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
  206. data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
  207. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
  208. data/docs/api/Sequel/Plugins/FindBang.html +1 -1
  209. data/docs/api/Sequel/Plugins.html +1 -1
  210. data/docs/api/Sequel.html +1 -1
  211. data/docs/api/SpecSupport/Matchers/BeABug.html +143 -0
  212. data/docs/api/_index.html +92 -1
  213. data/docs/api/class_list.html +1 -1
  214. data/docs/api/file.README.html +1 -1
  215. data/docs/api/index.html +1 -1
  216. data/docs/api/method_list.html +392 -336
  217. data/docs/api/top-level-namespace.html +1 -1
  218. data/docs/assets/{ai.md.tZrjP9im.js → ai.md._6HCDL6d.js} +1 -1
  219. data/docs/assets/ai.md._6HCDL6d.lean.js +1 -0
  220. data/docs/assets/{app.D_yaTITQ.js → app.BX81XO4N.js} +1 -1
  221. data/docs/assets/chunks/@localSearchIndexroot.CoYzciVi.js +1 -0
  222. data/docs/assets/chunks/{VPLocalSearchBox.B2-ZzyTY.js → VPLocalSearchBox.gABXcTWp.js} +1 -1
  223. data/docs/assets/chunks/{theme.CfGFVRvE.js → theme.DwUXXAL3.js} +2 -2
  224. data/docs/assets/{components.md.eCttGlN-.js → components.md.CRUMdRoN.js} +1 -1
  225. data/docs/assets/{configuration.md.BRriU0cL.js → configuration.md.BGHl8oRC.js} +1 -1
  226. data/docs/assets/{dev-environment.md.BNc8AYiK.js → dev-environment.md.GZv6xvi9.js} +1 -1
  227. data/docs/assets/doc-conventions.md.-kN3Xo5C.js +1 -0
  228. data/docs/assets/{doc-conventions.md.DCfRXXi-.lean.js → doc-conventions.md.-kN3Xo5C.lean.js} +1 -1
  229. data/docs/assets/{forms.md.CBTYQ_Cz.js → forms.md.B-koVgyw.js} +23 -23
  230. data/docs/assets/{forms.md.CBTYQ_Cz.lean.js → forms.md.B-koVgyw.lean.js} +1 -1
  231. data/docs/assets/getting-started.md.Ciz82L0m.js +25 -0
  232. data/docs/assets/getting-started.md.Ciz82L0m.lean.js +1 -0
  233. data/docs/assets/{instrumentation.md.CL6ax7nT.js → instrumentation.md.a9Pjps4P.js} +2 -2
  234. data/docs/assets/{instrumentation.md.CL6ax7nT.lean.js → instrumentation.md.a9Pjps4P.lean.js} +1 -1
  235. data/docs/assets/layouts.md.cPnh3NId.js +51 -0
  236. data/docs/assets/layouts.md.cPnh3NId.lean.js +1 -0
  237. data/docs/assets/lsp.md.Bsu-f6VU.js +1 -0
  238. data/docs/assets/lsp.md.Bsu-f6VU.lean.js +1 -0
  239. data/docs/assets/{overview.md.CDalkuxV.js → overview.md.C5wlBcR5.js} +3 -3
  240. data/docs/assets/recipes_authentication.md.CAsXf7hk.js +1 -0
  241. data/docs/assets/recipes_authentication.md.CAsXf7hk.lean.js +1 -0
  242. data/docs/assets.html +4 -4
  243. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  244. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  245. data/docs/brut-js/api/Autosubmit.html +1 -1
  246. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  247. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  248. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  249. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  250. data/docs/brut-js/api/BufferedLogger.html +1 -1
  251. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  252. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  253. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  254. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  255. data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
  256. data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
  257. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  258. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  259. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  260. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  261. data/docs/brut-js/api/Form.html +1 -1
  262. data/docs/brut-js/api/Form.js.html +1 -1
  263. data/docs/brut-js/api/I18nTranslation.html +1 -1
  264. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  265. data/docs/brut-js/api/LocaleDetection.html +1 -1
  266. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  267. data/docs/brut-js/api/Logger.html +1 -1
  268. data/docs/brut-js/api/Logger.js.html +1 -1
  269. data/docs/brut-js/api/Message.html +1 -1
  270. data/docs/brut-js/api/Message.js.html +1 -1
  271. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  272. data/docs/brut-js/api/RichString.html +1 -1
  273. data/docs/brut-js/api/RichString.js.html +1 -1
  274. data/docs/brut-js/api/Tabs.html +1 -1
  275. data/docs/brut-js/api/Tabs.js.html +1 -1
  276. data/docs/brut-js/api/Tracing.html +1 -1
  277. data/docs/brut-js/api/Tracing.js.html +1 -1
  278. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  279. data/docs/brut-js/api/external-Performance.html +1 -1
  280. data/docs/brut-js/api/external-Promise.html +1 -1
  281. data/docs/brut-js/api/external-ValidityState.html +1 -1
  282. data/docs/brut-js/api/external-Window.html +1 -1
  283. data/docs/brut-js/api/external-fetch.html +1 -1
  284. data/docs/brut-js/api/global.html +1 -1
  285. data/docs/brut-js/api/index.html +1 -1
  286. data/docs/brut-js/api/index.js.html +1 -1
  287. data/docs/brut-js/api/module-testing.html +1 -1
  288. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  289. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  290. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  291. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  292. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  293. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  294. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  295. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  296. data/docs/brut-js/api/testing_index.js.html +1 -1
  297. data/docs/brut-js.html +4 -4
  298. data/docs/business-logic.html +4 -4
  299. data/docs/cli.html +4 -4
  300. data/docs/components.html +6 -6
  301. data/docs/configuration.html +5 -5
  302. data/docs/css.html +4 -4
  303. data/docs/custom-element-tests.html +4 -4
  304. data/docs/database-access.html +4 -4
  305. data/docs/database-schema.html +4 -4
  306. data/docs/deployment.html +4 -4
  307. data/docs/dev-environment.html +5 -5
  308. data/docs/doc-conventions.html +5 -5
  309. data/docs/end-to-end-tests.html +4 -4
  310. data/docs/flash-and-session.html +4 -4
  311. data/docs/forms.html +27 -27
  312. data/docs/getting-started.html +29 -6
  313. data/docs/handlers.html +4 -4
  314. data/docs/hashmap.json +1 -1
  315. data/docs/hooks.html +4 -4
  316. data/docs/i18n.html +4 -4
  317. data/docs/index.html +3 -3
  318. data/docs/instrumentation.html +5 -5
  319. data/docs/javascript.html +4 -4
  320. data/docs/jobs.html +4 -4
  321. data/docs/keyword-injection.html +4 -4
  322. data/docs/layouts.html +74 -0
  323. data/docs/lsp.html +24 -0
  324. data/docs/markdown-examples.html +4 -4
  325. data/docs/middleware.html +4 -4
  326. data/docs/not-released.html +4 -4
  327. data/docs/overview.html +8 -8
  328. data/docs/pages.html +5 -5
  329. data/docs/recipes/authentication.html +24 -0
  330. data/docs/routes.html +4 -4
  331. data/docs/security.html +4 -4
  332. data/docs/seed-data.html +4 -4
  333. data/docs/space-time-continuum.html +4 -4
  334. data/docs/tutorial.html +4 -4
  335. data/docs/unit-tests.html +4 -4
  336. data/lib/brut/cli/app.rb +7 -2
  337. data/lib/brut/cli/apps/deploy_base.rb +86 -0
  338. data/lib/brut/cli/apps/heroku_container_based_deploy.rb +194 -0
  339. data/lib/brut/cli/command.rb +7 -13
  340. data/lib/brut/cli/executor.rb +31 -5
  341. data/lib/brut/cli/options.rb +4 -0
  342. data/lib/brut/cli.rb +4 -3
  343. data/lib/brut/framework/container.rb +25 -7
  344. data/lib/brut/framework/errors/abstract_method.rb +7 -0
  345. data/lib/brut/framework/errors.rb +4 -2
  346. data/lib/brut/front_end/middlewares/reload_app.rb +2 -0
  347. data/lib/brut/spec_support/rspec_setup.rb +42 -2
  348. data/lib/brut/version.rb +1 -1
  349. data/lib/sequel/extensions/brut_instrumentation.rb +4 -0
  350. metadata +49 -23
  351. data/docs/assets/ai.md.tZrjP9im.lean.js +0 -1
  352. data/docs/assets/chunks/@localSearchIndexroot.BsN5i0Fi.js +0 -1
  353. data/docs/assets/doc-conventions.md.DCfRXXi-.js +0 -1
  354. data/docs/assets/getting-started.md.Bz2s1Vjb.js +0 -2
  355. data/docs/assets/getting-started.md.Bz2s1Vjb.lean.js +0 -1
  356. /data/docs/assets/{components.md.eCttGlN-.lean.js → components.md.CRUMdRoN.lean.js} +0 -0
  357. /data/docs/assets/{configuration.md.BRriU0cL.lean.js → configuration.md.BGHl8oRC.lean.js} +0 -0
  358. /data/docs/assets/{dev-environment.md.BNc8AYiK.lean.js → dev-environment.md.GZv6xvi9.lean.js} +0 -0
  359. /data/docs/assets/{overview.md.CDalkuxV.lean.js → overview.md.C5wlBcR5.lean.js} +0 -0
@@ -227,6 +227,29 @@ configuration values or set your own.</p>
227
227
  <span class="summary_desc"><div class='inline'><p>Called by your app to override an existing value.</p>
228
228
  </div></span>
229
229
 
230
+ </li>
231
+
232
+
233
+ <li class="public ">
234
+ <span class="summary_signature">
235
+
236
+ <a href="#reload-instance_method" title="#reload (instance method)">#<strong>reload</strong> &#x21d2; Object </a>
237
+
238
+
239
+
240
+ </span>
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+ <span class="summary_desc"><div class='inline'>
251
+ </div></span>
252
+
230
253
  </li>
231
254
 
232
255
 
@@ -411,16 +434,16 @@ if the accessor method is called without parameters and without a block. See <sp
411
434
  <pre class="lines">
412
435
 
413
436
 
414
- 163
415
- 164
416
437
  165
417
438
  166
418
439
  167
419
440
  168
420
- 169</pre>
441
+ 169
442
+ 170
443
+ 171</pre>
421
444
  </td>
422
445
  <td>
423
- <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 163</span>
446
+ <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 165</span>
424
447
 
425
448
  <span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_sym'>sym</span><span class='comma'>,</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
426
449
  <span class='kw'>if</span> <span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>==</span> <span class='int'>0</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_respond_to_missing?'>respond_to_missing?</span><span class='lparen'>(</span><span class='id identifier rubyid_sym'>sym</span><span class='rparen'>)</span>
@@ -534,8 +557,6 @@ passed to <span class='object_link'><a href="#store-instance_method" title="Brut
534
557
  <pre class="lines">
535
558
 
536
559
 
537
- 189
538
- 190
539
560
  191
540
561
  192
541
562
  193
@@ -565,26 +586,28 @@ passed to <span class='object_link'><a href="#store-instance_method" title="Brut
565
586
  217
566
587
  218
567
588
  219
568
- 220</pre>
589
+ 220
590
+ 221
591
+ 222</pre>
569
592
  </td>
570
593
  <td>
571
- <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 189</span>
594
+ <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 191</span>
572
595
 
573
596
  <span class='kw'>def</span> <span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
574
597
  <span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
575
598
  <span class='comment'># TODO: Provide a cleanr impl and better error checking if things go wrong
576
599
  </span> <span class='id identifier rubyid_x'>x</span> <span class='op'>=</span> <span class='ivar'>@container</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
577
600
 
578
- <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_x'>x</span><span class='lbracket'>[</span><span class='symbol'>:value</span><span class='rbracket'>]</span>
601
+ <span class='id identifier rubyid_has_value'>has_value</span> <span class='op'>=</span> <span class='id identifier rubyid_x'>x</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='symbol'>:value</span><span class='rparen'>)</span>
579
602
 
580
- <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='lbracket'>[</span><span class='symbol'>:allow_nil</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
603
+ <span class='kw'>if</span> <span class='id identifier rubyid_has_value'>has_value</span>
581
604
  <span class='id identifier rubyid_handle_path_values'>handle_path_values</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span><span class='id identifier rubyid_x'>x</span><span class='rparen'>)</span>
582
- <span class='kw'>return</span> <span class='id identifier rubyid_value'>value</span>
605
+ <span class='kw'>return</span> <span class='id identifier rubyid_x'>x</span><span class='lbracket'>[</span><span class='symbol'>:value</span><span class='rbracket'>]</span>
583
606
  <span class='kw'>end</span>
584
607
 
585
608
  <span class='id identifier rubyid_deriver'>deriver</span> <span class='op'>=</span> <span class='id identifier rubyid_x'>x</span><span class='lbracket'>[</span><span class='symbol'>:derive_with</span><span class='rbracket'>]</span>
586
609
  <span class='kw'>if</span> <span class='id identifier rubyid_deriver'>deriver</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
587
- <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Something is seriously wrong. &#39;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>&#39; was stored in container without a derive_with value</span><span class='tstring_end'>&quot;</span></span>
610
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Something is seriously wrong. &#39;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>&#39; was stored in container without a static value, but also without a derive_with key</span><span class='tstring_end'>&quot;</span></span>
588
611
  <span class='kw'>end</span>
589
612
 
590
613
  <span class='id identifier rubyid_parameters'>parameters</span> <span class='op'>=</span> <span class='id identifier rubyid_deriver'>deriver</span><span class='period'>.</span><span class='id identifier rubyid_parameters'>parameters</span><span class='lparen'>(</span><span class='label'>lambda:</span> <span class='kw'>true</span><span class='rparen'>)</span>
@@ -718,7 +741,9 @@ The names of the parameters must match the name of another configuration value.<
718
741
  115
719
742
  116
720
743
  117
721
- 118</pre>
744
+ 118
745
+ 119
746
+ 120</pre>
722
747
  </td>
723
748
  <td>
724
749
  <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 105</span>
@@ -732,9 +757,65 @@ The names of the parameters must match the name of another configuration value.<
732
757
  <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'> does not allow the app to override it</span><span class='tstring_end'>&quot;</span></span>
733
758
  <span class='kw'>end</span>
734
759
  <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>==</span> <span class='symbol'>:use_block</span>
735
- <span class='ivar'>@container</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>value:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>derive_with:</span> <span class='id identifier rubyid_block'>block</span> <span class='rbrace'>}</span>
760
+ <span class='ivar'>@container</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:derive_with</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span>
761
+ <span class='ivar'>@container</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:value</span><span class='rparen'>)</span>
736
762
  <span class='kw'>else</span>
737
- <span class='ivar'>@container</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>value:</span> <span class='id identifier rubyid_value'>value</span> <span class='rbrace'>}</span>
763
+ <span class='ivar'>@container</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:value</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
764
+ <span class='ivar'>@container</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:derive_with</span><span class='rparen'>)</span>
765
+ <span class='kw'>end</span>
766
+ <span class='kw'>end</span></pre>
767
+ </td>
768
+ </tr>
769
+ </table>
770
+ </div>
771
+
772
+ <div class="method_details ">
773
+ <h3 class="signature " id="reload-instance_method">
774
+
775
+ #<strong>reload</strong> &#x21d2; <tt>Object</tt>
776
+
777
+
778
+
779
+
780
+
781
+ </h3><table class="source_code">
782
+ <tr>
783
+ <td>
784
+ <pre class="lines">
785
+
786
+
787
+ 224
788
+ 225
789
+ 226
790
+ 227
791
+ 228
792
+ 229
793
+ 230
794
+ 231
795
+ 232
796
+ 233
797
+ 234
798
+ 235
799
+ 236
800
+ 237
801
+ 238</pre>
802
+ </td>
803
+ <td>
804
+ <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 224</span>
805
+
806
+ <span class='kw'>def</span> <span class='id identifier rubyid_reload'>reload</span>
807
+ <span class='ivar'>@container</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_contained_value'>contained_value</span><span class='op'>|</span>
808
+ <span class='kw'>if</span> <span class='id identifier rubyid_contained_value'>contained_value</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='symbol'>:value</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_contained_value'>contained_value</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Class</span><span class='tstring_end'>&quot;</span></span>
809
+ <span class='kw'>if</span> <span class='id identifier rubyid_contained_value'>contained_value</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='symbol'>:derive_with</span><span class='rparen'>)</span>
810
+ <span class='id identifier rubyid_contained_value'>contained_value</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:value</span><span class='rparen'>)</span>
811
+ <span class='kw'>else</span>
812
+ <span class='id identifier rubyid_klass'>klass</span> <span class='op'>=</span> <span class='id identifier rubyid_contained_value'>contained_value</span><span class='lbracket'>[</span><span class='symbol'>:value</span><span class='rbracket'>]</span>
813
+ <span class='id identifier rubyid_new_klass'>new_klass</span> <span class='op'>=</span> <span class='id identifier rubyid_klass'>klass</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>::</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>Module</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_mod'>mod</span><span class='comma'>,</span><span class='id identifier rubyid_part'>part</span><span class='op'>|</span>
814
+ <span class='id identifier rubyid_mod'>mod</span><span class='period'>.</span><span class='id identifier rubyid_const_get'>const_get</span><span class='lparen'>(</span><span class='id identifier rubyid_part'>part</span><span class='rparen'>)</span>
815
+ <span class='rbrace'>}</span>
816
+ <span class='id identifier rubyid_contained_value'>contained_value</span><span class='lbracket'>[</span><span class='symbol'>:value</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_new_klass'>new_klass</span>
817
+ <span class='kw'>end</span>
818
+ <span class='kw'>end</span>
738
819
  <span class='kw'>end</span>
739
820
  <span class='kw'>end</span></pre>
740
821
  </td>
@@ -803,12 +884,12 @@ The names of the parameters must match the name of another configuration value.<
803
884
  <pre class="lines">
804
885
 
805
886
 
806
- 176
807
- 177
808
- 178</pre>
887
+ 178
888
+ 179
889
+ 180</pre>
809
890
  </td>
810
891
  <td>
811
- <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 176</span>
892
+ <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 178</span>
812
893
 
813
894
  <span class='kw'>def</span> <span class='id identifier rubyid_respond_to_missing?'>respond_to_missing?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span><span class='id identifier rubyid_include_private'>include_private</span><span class='op'>=</span><span class='kw'>false</span><span class='rparen'>)</span>
814
895
  <span class='ivar'>@container</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
@@ -1079,7 +1160,7 @@ or <code>_file</code>.</p>
1079
1160
  <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_validate_name!'>validate_name!</span><span class='lparen'>(</span><span class='label'>name:</span><span class='comma'>,</span><span class='label'>type:</span><span class='comma'>,</span><span class='label'>allow_app_override:</span><span class='rparen'>)</span>
1080
1161
  <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span> <span class='op'>==</span> <span class='symbol'>:use_block</span>
1081
1162
  <span class='id identifier rubyid_derive_with'>derive_with</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span>
1082
- <span class='ivar'>@container</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>value:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>derive_with:</span> <span class='id identifier rubyid_derive_with'>derive_with</span> <span class='rbrace'>}</span>
1163
+ <span class='ivar'>@container</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>derive_with:</span> <span class='id identifier rubyid_derive_with'>derive_with</span> <span class='rbrace'>}</span>
1083
1164
  <span class='kw'>else</span>
1084
1165
  <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:boolean</span>
1085
1166
  <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='op'>!</span><span class='op'>!</span><span class='id identifier rubyid_value'>value</span>
@@ -1212,14 +1293,14 @@ The names of the parameters must match the name of another configuration value.<
1212
1293
  <pre class="lines">
1213
1294
 
1214
1295
 
1215
- 151
1216
- 152
1217
1296
  153
1218
1297
  154
1219
- 155</pre>
1298
+ 155
1299
+ 156
1300
+ 157</pre>
1220
1301
  </td>
1221
1302
  <td>
1222
- <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 151</span>
1303
+ <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 153</span>
1223
1304
 
1224
1305
  <span class='kw'>def</span> <span class='id identifier rubyid_store_ensured_path'>store_ensured_path</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span><span class='id identifier rubyid_description'>description</span><span class='comma'>,</span><span class='id identifier rubyid_value'>value</span><span class='op'>=</span><span class='symbol'>:use_block</span><span class='comma'>,</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1225
1306
  <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_store'>store</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span><span class='const'>Pathname</span><span class='comma'>,</span><span class='id identifier rubyid_description'>description</span><span class='comma'>,</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
@@ -1345,14 +1426,14 @@ The names of the parameters must match the name of another configuration value.<
1345
1426
  <pre class="lines">
1346
1427
 
1347
1428
 
1348
- 132
1349
- 133
1350
1429
  134
1351
1430
  135
1352
- 136</pre>
1431
+ 136
1432
+ 137
1433
+ 138</pre>
1353
1434
  </td>
1354
1435
  <td>
1355
- <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 132</span>
1436
+ <pre class="code"><span class="info file"># File 'lib/brut/framework/container.rb', line 134</span>
1356
1437
 
1357
1438
  <span class='kw'>def</span> <span class='id identifier rubyid_store_required_path'>store_required_path</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span><span class='id identifier rubyid_description'>description</span><span class='comma'>,</span><span class='id identifier rubyid_value'>value</span><span class='op'>=</span><span class='symbol'>:use_block</span><span class='comma'>,</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1358
1439
  <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_store'>store</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span><span class='const'>Pathname</span><span class='comma'>,</span><span class='id identifier rubyid_description'>description</span><span class='comma'>,</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
@@ -1369,7 +1450,7 @@ The names of the parameters must match the name of another configuration value.<
1369
1450
  </div>
1370
1451
 
1371
1452
  <div id="footer">
1372
- Generated on Wed Jun 25 22:57:20 2025 by
1453
+ Generated on Wed Jul 2 21:45:27 2025 by
1373
1454
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1374
1455
  0.9.37 (ruby-3.4.4).
1375
1456
  </div>
@@ -130,7 +130,7 @@ for Brut-specific error conditions.</p>
130
130
  </div>
131
131
 
132
132
  <div id="footer">
133
- Generated on Wed Jun 25 22:57:20 2025 by
133
+ Generated on Wed Jul 2 21:45:27 2025 by
134
134
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
135
135
  0.9.37 (ruby-3.4.4).
136
136
  </div>
@@ -122,6 +122,42 @@ makes sense.</p>
122
122
 
123
123
 
124
124
 
125
+
126
+ <h2>
127
+ Instance Method Summary
128
+ <small><a href="#" class="summary_toggle">collapse</a></small>
129
+ </h2>
130
+
131
+ <ul class="summary">
132
+
133
+ <li class="public ">
134
+ <span class="summary_signature">
135
+
136
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(method_name = nil) &#x21d2; AbstractMethod </a>
137
+
138
+
139
+
140
+ </span>
141
+
142
+
143
+ <span class="note title constructor">constructor</span>
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+ <span class="summary_desc"><div class='inline'><p>A new instance of AbstractMethod.</p>
153
+ </div></span>
154
+
155
+ </li>
156
+
157
+
158
+ </ul>
159
+
160
+
125
161
 
126
162
 
127
163
 
@@ -129,12 +165,64 @@ makes sense.</p>
129
165
 
130
166
 
131
167
 
168
+ <div id="constructor_details" class="method_details_list">
169
+ <h2>Constructor Details</h2>
132
170
 
171
+ <div class="method_details first">
172
+ <h3 class="signature first" id="initialize-instance_method">
173
+
174
+ #<strong>initialize</strong>(method_name = nil) &#x21d2; <tt><span class='object_link'><a href="" title="Brut::Framework::Errors::AbstractMethod (class)">AbstractMethod</a></span></tt>
175
+
176
+
177
+
178
+
179
+
180
+ </h3><div class="docstring">
181
+ <div class="discussion">
182
+ <p>Returns a new instance of AbstractMethod.</p>
183
+
184
+
185
+ </div>
186
+ </div>
187
+ <div class="tags">
188
+
189
+
190
+ </div><table class="source_code">
191
+ <tr>
192
+ <td>
193
+ <pre class="lines">
194
+
195
+
196
+ 5
197
+ 6
198
+ 7
199
+ 8
200
+ 9
201
+ 10
202
+ 11</pre>
203
+ </td>
204
+ <td>
205
+ <pre class="code"><span class="info file"># File 'lib/brut/framework/errors/abstract_method.rb', line 5</span>
206
+
207
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_method_name'>method_name</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
208
+ <span class='kw'>if</span> <span class='id identifier rubyid_method_name'>method_name</span>
209
+ <span class='kw'>super</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>The method `</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_method_name'>method_name</span><span class='embexpr_end'>}</span><span class='tstring_content'>` must be implemented</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
210
+ <span class='kw'>else</span>
211
+ <span class='kw'>super</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>An abstract method must be implemented</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
212
+ <span class='kw'>end</span>
213
+ <span class='kw'>end</span></pre>
214
+ </td>
215
+ </tr>
216
+ </table>
217
+ </div>
218
+
219
+ </div>
220
+
133
221
 
134
222
  </div>
135
223
 
136
224
  <div id="footer">
137
- Generated on Wed Jun 25 22:57:21 2025 by
225
+ Generated on Wed Jul 2 21:45:28 2025 by
138
226
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
139
227
  0.9.37 (ruby-3.4.4).
140
228
  </div>
@@ -224,7 +224,7 @@ prevented</p>
224
224
  </div>
225
225
 
226
226
  <div id="footer">
227
- Generated on Wed Jun 25 22:57:20 2025 by
227
+ Generated on Wed Jul 2 21:45:27 2025 by
228
228
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
229
229
  0.9.37 (ruby-3.4.4).
230
230
  </div>
@@ -247,7 +247,7 @@ have not been set.</p>
247
247
  </div>
248
248
 
249
249
  <div id="footer">
250
- Generated on Wed Jun 25 22:57:21 2025 by
250
+ Generated on Wed Jul 2 21:45:28 2025 by
251
251
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
252
252
  0.9.37 (ruby-3.4.4).
253
253
  </div>
@@ -263,7 +263,7 @@ the one provided by standard library exceptions like <code>KeyError</code></p>
263
263
  </div>
264
264
 
265
265
  <div id="footer">
266
- Generated on Wed Jun 25 22:57:21 2025 by
266
+ Generated on Wed Jul 2 21:45:28 2025 by
267
267
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
268
268
  0.9.37 (ruby-3.4.4).
269
269
  </div>
@@ -461,7 +461,7 @@
461
461
  </div>
462
462
 
463
463
  <div id="footer">
464
- Generated on Wed Jun 25 22:57:21 2025 by
464
+ Generated on Wed Jul 2 21:45:28 2025 by
465
465
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
466
466
  0.9.37 (ruby-3.4.4).
467
467
  </div>
@@ -298,7 +298,7 @@
298
298
  </div>
299
299
 
300
300
  <div id="footer">
301
- Generated on Wed Jun 25 22:57:20 2025 by
301
+ Generated on Wed Jul 2 21:45:27 2025 by
302
302
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
303
303
  0.9.37 (ruby-3.4.4).
304
304
  </div>
@@ -224,7 +224,7 @@ support the same features, but for technical reasons one of the APIs does not.</
224
224
  </div>
225
225
 
226
226
  <div id="footer">
227
- Generated on Wed Jun 25 22:57:21 2025 by
227
+ Generated on Wed Jul 2 21:45:28 2025 by
228
228
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
229
229
  0.9.37 (ruby-3.4.4).
230
230
  </div>
@@ -127,7 +127,7 @@ methods. Include this module to gain access to those methods.</p>
127
127
  <li class="public ">
128
128
  <span class="summary_signature">
129
129
 
130
- <a href="#abstract_method!-instance_method" title="#abstract_method! (instance method)">#<strong>abstract_method!</strong> &#x21d2; Object </a>
130
+ <a href="#abstract_method!-instance_method" title="#abstract_method! (instance method)">#<strong>abstract_method!</strong>(method_name = nil) &#x21d2; Object </a>
131
131
 
132
132
 
133
133
 
@@ -182,7 +182,7 @@ methods. Include this module to gain access to those methods.</p>
182
182
  <div class="method_details first">
183
183
  <h3 class="signature first" id="abstract_method!-instance_method">
184
184
 
185
- #<strong>abstract_method!</strong> &#x21d2; <tt>Object</tt>
185
+ #<strong>abstract_method!</strong>(method_name = nil) &#x21d2; <tt>Object</tt>
186
186
 
187
187
 
188
188
 
@@ -198,7 +198,28 @@ implementation.</p>
198
198
  </div>
199
199
  </div>
200
200
  <div class="tags">
201
+ <p class="tag_title">Parameters:</p>
202
+ <ul class="param">
203
+
204
+ <li>
205
+
206
+ <span class='name'>method_name</span>
207
+
208
+
209
+ <span class='type'>(<tt>String|Symbol</tt>)</span>
210
+
211
+
212
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
213
+
214
+
215
+ &mdash;
216
+ <div class='inline'><p>name of the method that must be implemented. If omitted, the value is guessed from <code>caller_locations</code></p>
217
+ </div>
218
+
219
+ </li>
201
220
 
221
+ </ul>
222
+
202
223
  <p class="tag_title">Raises:</p>
203
224
  <ul class="raise">
204
225
 
@@ -219,15 +240,17 @@ implementation.</p>
219
240
  <pre class="lines">
220
241
 
221
242
 
222
- 31
223
243
  32
224
- 33</pre>
244
+ 33
245
+ 34
246
+ 35</pre>
225
247
  </td>
226
248
  <td>
227
- <pre class="code"><span class="info file"># File 'lib/brut/framework/errors.rb', line 31</span>
249
+ <pre class="code"><span class="info file"># File 'lib/brut/framework/errors.rb', line 32</span>
228
250
 
229
- <span class='kw'>def</span> <span class='id identifier rubyid_abstract_method!'>abstract_method!</span>
230
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../../Brut.html" title="Brut (module)">Brut</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Brut::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="Brut::Framework::Errors (module)">Errors</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Errors/AbstractMethod.html" title="Brut::Framework::Errors::AbstractMethod (class)">AbstractMethod</a></span></span>
251
+ <span class='kw'>def</span> <span class='id identifier rubyid_abstract_method!'>abstract_method!</span><span class='lparen'>(</span><span class='id identifier rubyid_method_name'>method_name</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
252
+ <span class='id identifier rubyid_method_name'>method_name</span> <span class='op'>||=</span> <span class='id identifier rubyid_caller_locations'>caller_locations</span><span class='lparen'>(</span><span class='int'>1</span><span class='comma'>,</span><span class='int'>1</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_label'>label</span>
253
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../../Brut.html" title="Brut (module)">Brut</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Framework.html" title="Brut::Framework (module)">Framework</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="Brut::Framework::Errors (module)">Errors</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Errors/AbstractMethod.html" title="Brut::Framework::Errors::AbstractMethod (class)">AbstractMethod</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Errors/AbstractMethod.html#initialize-instance_method" title="Brut::Framework::Errors::AbstractMethod#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_method_name'>method_name</span><span class='rparen'>)</span>
231
254
  <span class='kw'>end</span></pre>
232
255
  </td>
233
256
  </tr>
@@ -318,7 +341,7 @@ state of the system is such that it would never be misused.</p>
318
341
  </div>
319
342
 
320
343
  <div id="footer">
321
- Generated on Wed Jun 25 22:57:19 2025 by
344
+ Generated on Wed Jul 2 21:45:26 2025 by
322
345
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
323
346
  0.9.37 (ruby-3.4.4).
324
347
  </div>
@@ -382,7 +382,7 @@ For example, if you accept a string but know it should be a number, pass in <cod
382
382
  </div>
383
383
 
384
384
  <div id="footer">
385
- Generated on Wed Jun 25 22:57:19 2025 by
385
+ Generated on Wed Jul 2 21:45:27 2025 by
386
386
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
387
387
  0.9.37 (ruby-3.4.4).
388
388
  </div>
@@ -851,7 +851,7 @@ to external resources.</p>
851
851
  </div>
852
852
 
853
853
  <div id="footer">
854
- Generated on Wed Jun 25 22:57:20 2025 by
854
+ Generated on Wed Jul 2 21:45:27 2025 by
855
855
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
856
856
  0.9.37 (ruby-3.4.4).
857
857
  </div>
@@ -638,7 +638,7 @@ to the configuration values. But, you do you.</p>
638
638
  </div>
639
639
 
640
640
  <div id="footer">
641
- Generated on Wed Jun 25 22:57:21 2025 by
641
+ Generated on Wed Jul 2 21:45:28 2025 by
642
642
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
643
643
  0.9.37 (ruby-3.4.4).
644
644
  </div>
@@ -119,7 +119,7 @@
119
119
  </div>
120
120
 
121
121
  <div id="footer">
122
- Generated on Wed Jun 25 22:57:19 2025 by
122
+ Generated on Wed Jul 2 21:45:26 2025 by
123
123
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
124
124
  0.9.37 (ruby-3.4.4).
125
125
  </div>
@@ -307,7 +307,7 @@
307
307
  </div>
308
308
 
309
309
  <div id="footer">
310
- Generated on Wed Jun 25 22:57:21 2025 by
310
+ Generated on Wed Jul 2 21:45:28 2025 by
311
311
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
312
312
  0.9.37 (ruby-3.4.4).
313
313
  </div>