brut 0.0.26 → 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 (386) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/brutrb.com/.vitepress/config.mjs +2 -0
  4. data/brutrb.com/ai.md +6 -1
  5. data/brutrb.com/components.md +1 -1
  6. data/brutrb.com/dev-environment.md +6 -5
  7. data/brutrb.com/doc-conventions.md +1 -1
  8. data/brutrb.com/forms.md +22 -26
  9. data/brutrb.com/getting-started.md +94 -23
  10. data/brutrb.com/instrumentation.md +12 -0
  11. data/brutrb.com/layouts.md +130 -0
  12. data/brutrb.com/lsp.md +23 -0
  13. data/docs/404.html +2 -2
  14. data/docs/ai.html +5 -5
  15. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  16. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  17. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  18. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  19. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  20. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  21. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  22. data/docs/api/Brut/BackEnd.html +1 -1
  23. data/docs/api/Brut/CLI/App.html +38 -13
  24. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  25. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +2 -2
  26. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +2 -2
  27. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +2 -2
  28. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +2 -2
  29. data/docs/api/Brut/CLI/Apps/BuildAssets.html +1 -1
  30. data/docs/api/Brut/CLI/Apps/DB/Create.html +2 -2
  31. data/docs/api/Brut/CLI/Apps/DB/Drop.html +2 -2
  32. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +9 -3
  33. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +11 -11
  34. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +2 -2
  35. data/docs/api/Brut/CLI/Apps/DB/Seed.html +2 -2
  36. data/docs/api/Brut/CLI/Apps/DB/Status.html +12 -12
  37. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  38. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +270 -0
  39. data/docs/api/Brut/CLI/Apps/DeployBase.html +257 -0
  40. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +585 -0
  41. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +196 -0
  42. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  43. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +2 -2
  44. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +2 -2
  45. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +2 -2
  46. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +2 -2
  47. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +2 -2
  48. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  49. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +2 -2
  50. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +1 -1
  51. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +2 -2
  52. data/docs/api/Brut/CLI/Apps/Scaffold.html +1 -1
  53. data/docs/api/Brut/CLI/Apps/Test/Audit.html +12 -10
  54. data/docs/api/Brut/CLI/Apps/Test/E2e.html +8 -8
  55. data/docs/api/Brut/CLI/Apps/Test/JS.html +9 -9
  56. data/docs/api/Brut/CLI/Apps/Test/Run.html +18 -18
  57. data/docs/api/Brut/CLI/Apps/Test.html +1 -1
  58. data/docs/api/Brut/CLI/Apps.html +2 -2
  59. data/docs/api/Brut/CLI/Command.html +113 -28
  60. data/docs/api/Brut/CLI/Error.html +1 -1
  61. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  62. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  63. data/docs/api/Brut/CLI/Executor.html +169 -38
  64. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  65. data/docs/api/Brut/CLI/Options.html +68 -19
  66. data/docs/api/Brut/CLI/Output.html +1 -1
  67. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  68. data/docs/api/Brut/CLI.html +1 -1
  69. data/docs/api/Brut/FactoryBot.html +1 -1
  70. data/docs/api/Brut/Framework/App.html +1 -1
  71. data/docs/api/Brut/Framework/Config.html +1 -1
  72. data/docs/api/Brut/Framework/Container.html +110 -29
  73. data/docs/api/Brut/Framework/Error.html +1 -1
  74. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +89 -1
  75. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  76. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  77. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  78. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  79. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  80. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  81. data/docs/api/Brut/Framework/Errors.html +31 -8
  82. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
  83. data/docs/api/Brut/Framework/MCP.html +1 -1
  84. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  85. data/docs/api/Brut/Framework.html +1 -1
  86. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  87. data/docs/api/Brut/FrontEnd/Component/Helpers.html +36 -26
  88. data/docs/api/Brut/FrontEnd/Component.html +7 -7
  89. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +1 -1
  90. data/docs/api/Brut/FrontEnd/Components/FormTag.html +37 -29
  91. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +1 -1
  92. data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
  93. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  94. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +20 -117
  95. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +25 -23
  96. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +73 -380
  97. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +22 -138
  98. data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
  99. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  100. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  101. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  102. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  103. data/docs/api/Brut/FrontEnd/Components.html +23 -2
  104. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  105. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  106. data/docs/api/Brut/FrontEnd/Form.html +1 -1
  107. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +24 -68
  108. data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
  109. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +4 -4
  110. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
  111. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
  112. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  113. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
  114. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  115. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +72 -22
  116. data/docs/api/Brut/FrontEnd/Forms.html +1 -1
  117. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  118. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  119. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  120. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  121. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  122. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  123. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +1 -1
  124. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  125. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  126. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  127. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  128. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  129. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  130. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  131. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  132. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  133. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  134. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  135. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +6 -2
  136. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  137. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  138. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
  139. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  140. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  141. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  142. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  143. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  144. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  145. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  146. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  147. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  148. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  149. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  150. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  151. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  152. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  153. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  154. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  155. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  156. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  157. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  158. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  159. data/docs/api/Brut/FrontEnd.html +1 -1
  160. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  161. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  162. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  163. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  164. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  165. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  166. data/docs/api/Brut/I18n.html +1 -1
  167. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
  168. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
  169. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
  170. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
  171. data/docs/api/Brut/Instrumentation.html +1 -1
  172. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
  173. data/docs/api/Brut/SinatraHelpers.html +1 -1
  174. data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
  175. data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
  176. data/docs/api/Brut/SpecSupport/E2ETestServer.html +20 -20
  177. data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
  178. data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
  179. data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
  180. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
  181. data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
  182. data/docs/api/Brut/SpecSupport/HandlerSupport.html +2 -2
  183. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +142 -0
  184. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +142 -0
  185. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +155 -0
  186. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +55 -25
  187. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +149 -0
  188. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +46 -19
  189. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +149 -0
  190. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +149 -0
  191. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +165 -0
  192. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +158 -0
  193. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +156 -0
  194. data/docs/api/Brut/SpecSupport/Matchers.html +2 -2
  195. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +24 -24
  196. data/docs/api/Brut/SpecSupport/RSpecSetup.html +55 -20
  197. data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
  198. data/docs/api/Brut/SpecSupport.html +1 -1
  199. data/docs/api/Brut.html +1 -1
  200. data/docs/api/Clock.html +1 -1
  201. data/docs/api/RichString.html +1 -1
  202. data/docs/api/SemanticLogger/Appender/Async.html +1 -1
  203. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +5 -1
  204. data/docs/api/Sequel/Extensions/BrutMigrations.html +36 -28
  205. data/docs/api/Sequel/Extensions.html +1 -1
  206. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
  207. data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
  208. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
  209. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
  210. data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
  211. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
  212. data/docs/api/Sequel/Plugins/FindBang.html +1 -1
  213. data/docs/api/Sequel/Plugins.html +1 -1
  214. data/docs/api/Sequel.html +1 -1
  215. data/docs/api/SpecSupport/Matchers/BeABug.html +143 -0
  216. data/docs/api/_index.html +92 -1
  217. data/docs/api/class_list.html +1 -1
  218. data/docs/api/file.README.html +1 -1
  219. data/docs/api/index.html +1 -1
  220. data/docs/api/method_list.html +392 -336
  221. data/docs/api/top-level-namespace.html +1 -1
  222. data/docs/assets/{ai.md.tZrjP9im.js → ai.md._6HCDL6d.js} +1 -1
  223. data/docs/assets/ai.md._6HCDL6d.lean.js +1 -0
  224. data/docs/assets/{app.D_yaTITQ.js → app.BX81XO4N.js} +1 -1
  225. data/docs/assets/chunks/@localSearchIndexroot.CoYzciVi.js +1 -0
  226. data/docs/assets/chunks/{VPLocalSearchBox.B2-ZzyTY.js → VPLocalSearchBox.gABXcTWp.js} +1 -1
  227. data/docs/assets/chunks/{theme.CfGFVRvE.js → theme.DwUXXAL3.js} +2 -2
  228. data/docs/assets/{components.md.eCttGlN-.js → components.md.CRUMdRoN.js} +1 -1
  229. data/docs/assets/{configuration.md.BRriU0cL.js → configuration.md.BGHl8oRC.js} +1 -1
  230. data/docs/assets/{dev-environment.md.BNc8AYiK.js → dev-environment.md.GZv6xvi9.js} +1 -1
  231. data/docs/assets/doc-conventions.md.-kN3Xo5C.js +1 -0
  232. data/docs/assets/{doc-conventions.md.DCfRXXi-.lean.js → doc-conventions.md.-kN3Xo5C.lean.js} +1 -1
  233. data/docs/assets/{forms.md.CBTYQ_Cz.js → forms.md.B-koVgyw.js} +23 -23
  234. data/docs/assets/{forms.md.CBTYQ_Cz.lean.js → forms.md.B-koVgyw.lean.js} +1 -1
  235. data/docs/assets/getting-started.md.Ciz82L0m.js +25 -0
  236. data/docs/assets/getting-started.md.Ciz82L0m.lean.js +1 -0
  237. data/docs/assets/{instrumentation.md.CL6ax7nT.js → instrumentation.md.a9Pjps4P.js} +2 -2
  238. data/docs/assets/{instrumentation.md.CL6ax7nT.lean.js → instrumentation.md.a9Pjps4P.lean.js} +1 -1
  239. data/docs/assets/layouts.md.cPnh3NId.js +51 -0
  240. data/docs/assets/layouts.md.cPnh3NId.lean.js +1 -0
  241. data/docs/assets/lsp.md.Bsu-f6VU.js +1 -0
  242. data/docs/assets/lsp.md.Bsu-f6VU.lean.js +1 -0
  243. data/docs/assets/{overview.md.CDalkuxV.js → overview.md.C5wlBcR5.js} +3 -3
  244. data/docs/assets/recipes_authentication.md.CAsXf7hk.js +1 -0
  245. data/docs/assets/recipes_authentication.md.CAsXf7hk.lean.js +1 -0
  246. data/docs/assets.html +4 -4
  247. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  248. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  249. data/docs/brut-js/api/Autosubmit.html +1 -1
  250. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  251. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  252. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  253. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  254. data/docs/brut-js/api/BufferedLogger.html +1 -1
  255. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  256. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  257. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  258. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  259. data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
  260. data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
  261. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  262. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  263. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  264. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  265. data/docs/brut-js/api/Form.html +1 -1
  266. data/docs/brut-js/api/Form.js.html +1 -1
  267. data/docs/brut-js/api/I18nTranslation.html +1 -1
  268. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  269. data/docs/brut-js/api/LocaleDetection.html +1 -1
  270. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  271. data/docs/brut-js/api/Logger.html +1 -1
  272. data/docs/brut-js/api/Logger.js.html +1 -1
  273. data/docs/brut-js/api/Message.html +1 -1
  274. data/docs/brut-js/api/Message.js.html +1 -1
  275. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  276. data/docs/brut-js/api/RichString.html +1 -1
  277. data/docs/brut-js/api/RichString.js.html +1 -1
  278. data/docs/brut-js/api/Tabs.html +1 -1
  279. data/docs/brut-js/api/Tabs.js.html +1 -1
  280. data/docs/brut-js/api/Tracing.html +1 -1
  281. data/docs/brut-js/api/Tracing.js.html +1 -1
  282. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  283. data/docs/brut-js/api/external-Performance.html +1 -1
  284. data/docs/brut-js/api/external-Promise.html +1 -1
  285. data/docs/brut-js/api/external-ValidityState.html +1 -1
  286. data/docs/brut-js/api/external-Window.html +1 -1
  287. data/docs/brut-js/api/external-fetch.html +1 -1
  288. data/docs/brut-js/api/global.html +1 -1
  289. data/docs/brut-js/api/index.html +1 -1
  290. data/docs/brut-js/api/index.js.html +1 -1
  291. data/docs/brut-js/api/module-testing.html +1 -1
  292. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  293. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  294. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  295. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  296. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  297. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  298. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  299. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  300. data/docs/brut-js/api/testing_index.js.html +1 -1
  301. data/docs/brut-js.html +4 -4
  302. data/docs/business-logic.html +4 -4
  303. data/docs/cli.html +4 -4
  304. data/docs/components.html +6 -6
  305. data/docs/configuration.html +5 -5
  306. data/docs/css.html +4 -4
  307. data/docs/custom-element-tests.html +4 -4
  308. data/docs/database-access.html +4 -4
  309. data/docs/database-schema.html +4 -4
  310. data/docs/deployment.html +4 -4
  311. data/docs/dev-environment.html +5 -5
  312. data/docs/doc-conventions.html +5 -5
  313. data/docs/end-to-end-tests.html +4 -4
  314. data/docs/flash-and-session.html +4 -4
  315. data/docs/forms.html +27 -27
  316. data/docs/getting-started.html +29 -6
  317. data/docs/handlers.html +4 -4
  318. data/docs/hashmap.json +1 -1
  319. data/docs/hooks.html +4 -4
  320. data/docs/i18n.html +4 -4
  321. data/docs/index.html +3 -3
  322. data/docs/instrumentation.html +5 -5
  323. data/docs/javascript.html +4 -4
  324. data/docs/jobs.html +4 -4
  325. data/docs/keyword-injection.html +4 -4
  326. data/docs/layouts.html +74 -0
  327. data/docs/lsp.html +24 -0
  328. data/docs/markdown-examples.html +4 -4
  329. data/docs/middleware.html +4 -4
  330. data/docs/not-released.html +4 -4
  331. data/docs/overview.html +8 -8
  332. data/docs/pages.html +5 -5
  333. data/docs/recipes/authentication.html +24 -0
  334. data/docs/routes.html +4 -4
  335. data/docs/security.html +4 -4
  336. data/docs/seed-data.html +4 -4
  337. data/docs/space-time-continuum.html +4 -4
  338. data/docs/tutorial.html +4 -4
  339. data/docs/unit-tests.html +4 -4
  340. data/lib/brut/cli/app.rb +7 -2
  341. data/lib/brut/cli/apps/deploy_base.rb +86 -0
  342. data/lib/brut/cli/apps/heroku_container_based_deploy.rb +194 -0
  343. data/lib/brut/cli/apps/test.rb +2 -1
  344. data/lib/brut/cli/command.rb +7 -13
  345. data/lib/brut/cli/executor.rb +31 -5
  346. data/lib/brut/cli/options.rb +4 -0
  347. data/lib/brut/cli.rb +4 -3
  348. data/lib/brut/framework/container.rb +25 -7
  349. data/lib/brut/framework/errors/abstract_method.rb +7 -0
  350. data/lib/brut/framework/errors.rb +4 -2
  351. data/lib/brut/front_end/component.rb +33 -9
  352. data/lib/brut/front_end/components/inputs/select_tag_with_options.rb +16 -74
  353. data/lib/brut/front_end/forms/constraint_violation.rb +2 -18
  354. data/lib/brut/front_end/forms/input.rb +8 -8
  355. data/lib/brut/front_end/forms/input_declarations.rb +3 -3
  356. data/lib/brut/front_end/forms/radio_button_group_input.rb +1 -1
  357. data/lib/brut/front_end/forms/select_input.rb +1 -1
  358. data/lib/brut/front_end/forms/validity_state.rb +23 -0
  359. data/lib/brut/front_end/middlewares/reload_app.rb +2 -0
  360. data/lib/brut/spec_support/handler_support.rb +1 -1
  361. data/lib/brut/spec_support/matcher.rb +1 -1
  362. data/lib/brut/spec_support/matchers/be_a_bug.rb +11 -0
  363. data/lib/brut/spec_support/matchers/be_page_for.rb +10 -0
  364. data/lib/brut/spec_support/matchers/be_routing_for.rb +18 -0
  365. data/lib/brut/spec_support/matchers/have_constraint_violation.rb +10 -0
  366. data/lib/brut/spec_support/matchers/have_generated.rb +28 -0
  367. data/lib/brut/spec_support/matchers/have_html_attribute.rb +10 -0
  368. data/lib/brut/spec_support/matchers/have_i18n_string.rb +13 -0
  369. data/lib/brut/spec_support/matchers/have_link_to.rb +15 -0
  370. data/lib/brut/spec_support/matchers/have_redirected_to.rb +23 -0
  371. data/lib/brut/spec_support/matchers/have_returned_http_status.rb +20 -0
  372. data/lib/brut/spec_support/matchers/have_returned_rack_response.rb +22 -0
  373. data/lib/brut/spec_support/rspec_setup.rb +42 -2
  374. data/lib/brut/version.rb +1 -1
  375. data/lib/sequel/extensions/brut_instrumentation.rb +4 -0
  376. metadata +51 -24
  377. data/docs/assets/ai.md.tZrjP9im.lean.js +0 -1
  378. data/docs/assets/chunks/@localSearchIndexroot.BsN5i0Fi.js +0 -1
  379. data/docs/assets/doc-conventions.md.DCfRXXi-.js +0 -1
  380. data/docs/assets/getting-started.md.Bz2s1Vjb.js +0 -2
  381. data/docs/assets/getting-started.md.Bz2s1Vjb.lean.js +0 -1
  382. data/lib/brut/spec_support/matchers/have_rendered.rb +0 -14
  383. /data/docs/assets/{components.md.eCttGlN-.lean.js → components.md.CRUMdRoN.lean.js} +0 -0
  384. /data/docs/assets/{configuration.md.BRriU0cL.lean.js → configuration.md.BGHl8oRC.lean.js} +0 -0
  385. /data/docs/assets/{dev-environment.md.BNc8AYiK.lean.js → dev-environment.md.GZv6xvi9.lean.js} +0 -0
  386. /data/docs/assets/{overview.md.CDalkuxV.lean.js → overview.md.C5wlBcR5.lean.js} +0 -0
@@ -0,0 +1,158 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: Brut::SpecSupport::Matchers::HaveReturnedHttpStatus
8
+
9
+ &mdash; Documentation by YARD 0.9.37
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../../css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="../../../css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "Brut::SpecSupport::Matchers::HaveReturnedHttpStatus";
19
+ relpath = '../../../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../../../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../../../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../../../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../../../_index.html">Index (H)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../../../Brut.html" title="Brut (module)">Brut</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../SpecSupport.html" title="Brut::SpecSupport (module)">SpecSupport</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Matchers.html" title="Brut::SpecSupport::Matchers (module)">Matchers</a></span></span>
41
+ &raquo;
42
+ <span class="title">HaveReturnedHttpStatus</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../../../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Class: Brut::SpecSupport::Matchers::HaveReturnedHttpStatus
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName">Object</span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next">Brut::SpecSupport::Matchers::HaveReturnedHttpStatus</li>
78
+
79
+ </ul>
80
+ <a href="#" class="inheritanceTree">show all</a>
81
+
82
+ </dd>
83
+ </dl>
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dl>
96
+ <dt>Defined in:</dt>
97
+ <dd>lib/brut/spec_support/matchers/have_returned_http_status.rb</dd>
98
+ </dl>
99
+
100
+ </div>
101
+
102
+ <h2>Overview</h2><div class="docstring">
103
+ <div class="discussion">
104
+ <p>Used on handler specs to check that a response returned
105
+ a particular HTTP status code. Can also be used
106
+ with <span class='object_link'><a href="../ComponentSupport.html#generate_result-instance_method" title="Brut::SpecSupport::ComponentSupport#generate_result (method)">ComponentSupport#generate_result</a></span> to
107
+ check that a Page's <span class='object_link'><a href="../../FrontEnd/Page.html#before_generate-instance_method" title="Brut::FrontEnd::Page#before_generate (method)">FrontEnd::Page#before_generate</a></span> method
108
+ did what you expect</p>
109
+
110
+
111
+ </div>
112
+ </div>
113
+ <div class="tags">
114
+
115
+ <div class="examples">
116
+ <h4 class="tag_title">Examples:</h4>
117
+
118
+
119
+ <pre class="example code"><code><span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_handler'>handler</span><span class='period'>.</span><span class='id identifier rubyid_handle'>handle</span>
120
+ <span class='id identifier rubyid_expect'>expect</span><span class='lparen'>(</span><span class='id identifier rubyid_result'>result</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to'>to</span> <span class='id identifier rubyid_have_returned_http_status'>have_returned_http_status</span><span class='lparen'>(</span><span class='int'>404</span><span class='rparen'>)</span></code></pre>
121
+
122
+
123
+ <h5 class="example_title"><div class='inline'><p>dont' care what status, just that one was returned instead of a page generation</p>
124
+ </div></h5>
125
+
126
+ <pre class="example code"><code><span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_handler'>handler</span><span class='period'>.</span><span class='id identifier rubyid_handle'>handle</span>
127
+ <span class='id identifier rubyid_expect'>expect</span><span class='lparen'>(</span><span class='id identifier rubyid_result'>result</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to'>to</span> <span class='id identifier rubyid_have_returned_http_status'>have_returned_http_status</span></code></pre>
128
+
129
+
130
+ <h5 class="example_title"><div class='inline'><p>testing a <code>before_generate</code> method</p>
131
+ </div></h5>
132
+
133
+ <pre class="example code"><code><span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_generate_result'>generate_result</span><span class='lparen'>(</span><span class='id identifier rubyid_page'>page</span><span class='rparen'>)</span>
134
+ <span class='id identifier rubyid_expect'>expect</span><span class='lparen'>(</span><span class='id identifier rubyid_result'>result</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to'>to</span> <span class='id identifier rubyid_have_returned_http_status'>have_returned_http_status</span><span class='lparen'>(</span><span class='int'>403</span><span class='rparen'>)</span></code></pre>
135
+
136
+ </div>
137
+
138
+
139
+ </div>
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+ </div>
149
+
150
+ <div id="footer">
151
+ Generated on Wed Jul 2 21:45:28 2025 by
152
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
153
+ 0.9.37 (ruby-3.4.4).
154
+ </div>
155
+
156
+ </div>
157
+ </body>
158
+ </html>
@@ -0,0 +1,156 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: Brut::SpecSupport::Matchers::HaveReturnedRackResponse
8
+
9
+ &mdash; Documentation by YARD 0.9.37
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../../css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="../../../css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "Brut::SpecSupport::Matchers::HaveReturnedRackResponse";
19
+ relpath = '../../../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../../../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../../../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../../../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../../../_index.html">Index (H)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../../../Brut.html" title="Brut (module)">Brut</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../SpecSupport.html" title="Brut::SpecSupport (module)">SpecSupport</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Matchers.html" title="Brut::SpecSupport::Matchers (module)">Matchers</a></span></span>
41
+ &raquo;
42
+ <span class="title">HaveReturnedRackResponse</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../../../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Class: Brut::SpecSupport::Matchers::HaveReturnedRackResponse
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName">Object</span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next">Brut::SpecSupport::Matchers::HaveReturnedRackResponse</li>
78
+
79
+ </ul>
80
+ <a href="#" class="inheritanceTree">show all</a>
81
+
82
+ </dd>
83
+ </dl>
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dl>
96
+ <dt>Defined in:</dt>
97
+ <dd>lib/brut/spec_support/matchers/have_returned_rack_response.rb</dd>
98
+ </dl>
99
+
100
+ </div>
101
+
102
+ <h2>Overview</h2><div class="docstring">
103
+ <div class="discussion">
104
+ <p>Used on handler specs to check that a response returned
105
+ a Rack response. Can also be used
106
+ with <span class='object_link'><a href="../ComponentSupport.html#generate_result-instance_method" title="Brut::SpecSupport::ComponentSupport#generate_result (method)">ComponentSupport#generate_result</a></span> to
107
+ check that a Page's <span class='object_link'><a href="../../FrontEnd/Page.html#before_generate-instance_method" title="Brut::FrontEnd::Page#before_generate (method)">FrontEnd::Page#before_generate</a></span> method
108
+ did what you expect</p>
109
+
110
+ <p>The matcher expects these keyword arguments:</p>
111
+
112
+ <ul>
113
+ <li><code>http_status:</code> - the expected HTTP status code as a number, or <code>:any</code> (the default), if it's not relevant to the test.</li>
114
+ <li><code>headers:</code> - the expected headers as a Hash of Strings to Strings, or <code>:any</code> (the default), if they are not relevant to the test.</li>
115
+ <li><code>body:</code> - the expected body, or <code>:any</code> (the default), if it is not relevant to the test.</li>
116
+ </ul>
117
+
118
+
119
+
120
+ </div>
121
+ </div>
122
+ <div class="tags">
123
+
124
+ <div class="examples">
125
+ <h4 class="tag_title">Examples:</h4>
126
+
127
+
128
+ <pre class="example code"><code><span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_handler'>handler</span><span class='period'>.</span><span class='id identifier rubyid_handle'>handle</span>
129
+ <span class='id identifier rubyid_expect'>expect</span><span class='lparen'>(</span><span class='id identifier rubyid_result'>result</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to'>to</span> <span class='id identifier rubyid_have_returned_rack_response'>have_returned_rack_response</span><span class='lparen'>(</span>
130
+ <span class='label'>http_status:</span> <span class='int'>200</span><span class='comma'>,</span>
131
+ <span class='label'>headers:</span> <span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Content-Type</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>text/html</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
132
+ <span class='rparen'>)</span></code></pre>
133
+
134
+ </div>
135
+
136
+
137
+ </div>
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+ </div>
147
+
148
+ <div id="footer">
149
+ Generated on Wed Jul 2 21:45:28 2025 by
150
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
151
+ 0.9.37 (ruby-3.4.4).
152
+ </div>
153
+
154
+ </div>
155
+ </body>
156
+ </html>
@@ -99,7 +99,7 @@
99
99
 
100
100
 
101
101
 
102
- <strong class="classes">Classes:</strong> <span class='object_link'><a href="Matchers/HaveConstraintViolation.html" title="Brut::SpecSupport::Matchers::HaveConstraintViolation (class)">HaveConstraintViolation</a></span>, <span class='object_link'><a href="Matchers/HaveHTMLAttribute.html" title="Brut::SpecSupport::Matchers::HaveHTMLAttribute (class)">HaveHTMLAttribute</a></span>
102
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Matchers/BeABug.html" title="Brut::SpecSupport::Matchers::BeABug (class)">BeABug</a></span>, <span class='object_link'><a href="Matchers/BePageFor.html" title="Brut::SpecSupport::Matchers::BePageFor (class)">BePageFor</a></span>, <span class='object_link'><a href="Matchers/BeRoutingFor.html" title="Brut::SpecSupport::Matchers::BeRoutingFor (class)">BeRoutingFor</a></span>, <span class='object_link'><a href="Matchers/HaveConstraintViolation.html" title="Brut::SpecSupport::Matchers::HaveConstraintViolation (class)">HaveConstraintViolation</a></span>, <span class='object_link'><a href="Matchers/HaveGenerated.html" title="Brut::SpecSupport::Matchers::HaveGenerated (class)">HaveGenerated</a></span>, <span class='object_link'><a href="Matchers/HaveHTMLAttribute.html" title="Brut::SpecSupport::Matchers::HaveHTMLAttribute (class)">HaveHTMLAttribute</a></span>, <span class='object_link'><a href="Matchers/HaveI18nString.html" title="Brut::SpecSupport::Matchers::HaveI18nString (class)">HaveI18nString</a></span>, <span class='object_link'><a href="Matchers/HaveLinkTo.html" title="Brut::SpecSupport::Matchers::HaveLinkTo (class)">HaveLinkTo</a></span>, <span class='object_link'><a href="Matchers/HaveRedirectedTo.html" title="Brut::SpecSupport::Matchers::HaveRedirectedTo (class)">HaveRedirectedTo</a></span>, <span class='object_link'><a href="Matchers/HaveReturnedHttpStatus.html" title="Brut::SpecSupport::Matchers::HaveReturnedHttpStatus (class)">HaveReturnedHttpStatus</a></span>, <span class='object_link'><a href="Matchers/HaveReturnedRackResponse.html" title="Brut::SpecSupport::Matchers::HaveReturnedRackResponse (class)">HaveReturnedRackResponse</a></span>
103
103
 
104
104
 
105
105
  </p>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Wed Jun 25 22:57:19 2025 by
118
+ Generated on Wed Jul 2 21:45:26 2025 by
119
119
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
120
120
  0.9.37 (ruby-3.4.4).
121
121
  </div>
@@ -216,12 +216,12 @@
216
216
  <pre class="lines">
217
217
 
218
218
 
219
- 161
220
- 162
221
- 163</pre>
219
+ 172
220
+ 173
221
+ 174</pre>
222
222
  </td>
223
223
  <td>
224
- <pre class="code"><span class="info file"># File 'lib/brut/spec_support/rspec_setup.rb', line 161</span>
224
+ <pre class="code"><span class="info file"># File 'lib/brut/spec_support/rspec_setup.rb', line 172</span>
225
225
 
226
226
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
227
227
  <span class='ivar'>@sidekiq_in_use</span> <span class='op'>=</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>Sidekiq</span><span class='rparen'>)</span>
@@ -253,14 +253,14 @@
253
253
  <pre class="lines">
254
254
 
255
255
 
256
- 177
257
- 178
258
- 179
259
- 180
260
- 181</pre>
256
+ 188
257
+ 189
258
+ 190
259
+ 191
260
+ 192</pre>
261
261
  </td>
262
262
  <td>
263
- <pre class="code"><span class="info file"># File 'lib/brut/spec_support/rspec_setup.rb', line 177</span>
263
+ <pre class="code"><span class="info file"># File 'lib/brut/spec_support/rspec_setup.rb', line 188</span>
264
264
 
265
265
  <span class='kw'>def</span> <span class='id identifier rubyid_clear_background_jobs'>clear_background_jobs</span>
266
266
  <span class='kw'>if</span> <span class='ivar'>@sidekiq_in_use</span>
@@ -287,21 +287,21 @@
287
287
  <pre class="lines">
288
288
 
289
289
 
290
- 165
291
- 166
292
- 167
293
- 168
294
- 169
295
- 170
296
- 171
297
- 172
298
- 173
299
- 174
300
- 175
301
- 176</pre>
290
+ 176
291
+ 177
292
+ 178
293
+ 179
294
+ 180
295
+ 181
296
+ 182
297
+ 183
298
+ 184
299
+ 185
300
+ 186
301
+ 187</pre>
302
302
  </td>
303
303
  <td>
304
- <pre class="code"><span class="info file"># File 'lib/brut/spec_support/rspec_setup.rb', line 165</span>
304
+ <pre class="code"><span class="info file"># File 'lib/brut/spec_support/rspec_setup.rb', line 176</span>
305
305
 
306
306
  <span class='kw'>def</span> <span class='id identifier rubyid_disable_sidekiq_testing'>disable_sidekiq_testing</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
307
307
  <span class='kw'>if</span> <span class='ivar'>@sidekiq_in_use</span>
@@ -325,7 +325,7 @@
325
325
  </div>
326
326
 
327
327
  <div id="footer">
328
- Generated on Wed Jun 25 22:57:20 2025 by
328
+ Generated on Wed Jul 2 21:45:27 2025 by
329
329
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
330
330
  0.9.37 (ruby-3.4.4).
331
331
  </div>
@@ -203,7 +203,7 @@ normally. You can also seed this with data that a component may need.</li>
203
203
  <li class="public ">
204
204
  <span class="summary_signature">
205
205
 
206
- <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(rspec_config:) &#x21d2; RSpecSetup </a>
206
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(rspec_config:, monkey_patch_summary_notification: true) &#x21d2; RSpecSetup </a>
207
207
 
208
208
 
209
209
 
@@ -257,7 +257,7 @@ normally. You can also seed this with data that a component may need.</li>
257
257
  <div class="method_details first">
258
258
  <h3 class="signature first" id="initialize-instance_method">
259
259
 
260
- #<strong>initialize</strong>(rspec_config:) &#x21d2; <tt><span class='object_link'><a href="" title="Brut::SpecSupport::RSpecSetup (class)">RSpecSetup</a></span></tt>
260
+ #<strong>initialize</strong>(rspec_config:, monkey_patch_summary_notification: true) &#x21d2; <tt><span class='object_link'><a href="" title="Brut::SpecSupport::RSpecSetup (class)">RSpecSetup</a></span></tt>
261
261
 
262
262
 
263
263
 
@@ -267,6 +267,10 @@ normally. You can also seed this with data that a component may need.</li>
267
267
  <div class="discussion">
268
268
  <p>Create the setup with the given RSpec configuration.</p>
269
269
 
270
+ <p>RSpec's Notifications::SumaryNotification will be monkey-patched to show
271
+ <code>bin/test</code> in the summary instead of <code>./rspec</code>, as that is how you would
272
+ re-run a test. But, it's still monkey-patching.</p>
273
+
270
274
 
271
275
  </div>
272
276
  </div>
@@ -289,6 +293,23 @@ normally. You can also seed this with data that a component may need.</li>
289
293
 
290
294
  </li>
291
295
 
296
+ <li>
297
+
298
+ <span class='name'>monkey_patch_summary_notification</span>
299
+
300
+
301
+ <span class='type'>(<tt>boolean</tt>)</span>
302
+
303
+
304
+ <em class="default">(defaults to: <tt>true</tt>)</em>
305
+
306
+
307
+ &mdash;
308
+ <div class='inline'><p>if true (the default),</p>
309
+ </div>
310
+
311
+ </li>
312
+
292
313
  </ul>
293
314
 
294
315
 
@@ -298,16 +319,24 @@ normally. You can also seed this with data that a component may need.</li>
298
319
  <pre class="lines">
299
320
 
300
321
 
301
- 46
302
- 47
303
- 48
304
- 49</pre>
322
+ 50
323
+ 51
324
+ 52
325
+ 53
326
+ 54
327
+ 55
328
+ 56
329
+ 57</pre>
305
330
  </td>
306
331
  <td>
307
- <pre class="code"><span class="info file"># File 'lib/brut/spec_support/rspec_setup.rb', line 46</span>
332
+ <pre class="code"><span class="info file"># File 'lib/brut/spec_support/rspec_setup.rb', line 50</span>
333
+
334
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>rspec_config:</span><span class='comma'>,</span>
335
+ <span class='label'>monkey_patch_summary_notification:</span> <span class='kw'>true</span><span class='rparen'>)</span>
336
+
337
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='id identifier rubyid_rspec_config'>rspec_config</span>
338
+ <span class='ivar'>@monkey_patch_summary_notification</span> <span class='op'>=</span> <span class='id identifier rubyid_monkey_patch_summary_notification'>monkey_patch_summary_notification</span>
308
339
 
309
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>rspec_config:</span><span class='rparen'>)</span>
310
- <span class='ivar'>@config</span> <span class='op'>=</span> <span class='id identifier rubyid_rspec_config'>rspec_config</span>
311
340
  <span class='const'>SemanticLogger</span><span class='period'>.</span><span class='id identifier rubyid_default_level'>default_level</span> <span class='op'>=</span> <span class='const'>ENV</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LOGGER_LEVEL_FOR_TESTS</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>warn</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
312
341
  <span class='kw'>end</span></pre>
313
342
  </td>
@@ -368,14 +397,6 @@ normally. You can also seed this with data that a component may need.</li>
368
397
  <pre class="lines">
369
398
 
370
399
 
371
- 54
372
- 55
373
- 56
374
- 57
375
- 58
376
- 59
377
- 60
378
- 61
379
400
  62
380
401
  63
381
402
  64
@@ -472,10 +493,21 @@ normally. You can also seed this with data that a component may need.</li>
472
493
  155
473
494
  156
474
495
  157
475
- 158</pre>
496
+ 158
497
+ 159
498
+ 160
499
+ 161
500
+ 162
501
+ 163
502
+ 164
503
+ 165
504
+ 166
505
+ 167
506
+ 168
507
+ 169</pre>
476
508
  </td>
477
509
  <td>
478
- <pre class="code"><span class="info file"># File 'lib/brut/spec_support/rspec_setup.rb', line 54</span>
510
+ <pre class="code"><span class="info file"># File 'lib/brut/spec_support/rspec_setup.rb', line 62</span>
479
511
 
480
512
  <span class='kw'>def</span> <span class='id identifier rubyid_setup!'>setup!</span><span class='lparen'>(</span><span class='label'>inside_db_transaction:</span> <span class='tlambda'>-&gt;</span><span class='lparen'>(</span><span class='rparen'>)</span> <span class='tlambeg'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
481
513
 
@@ -581,6 +613,9 @@ normally. You can also seed this with data that a component may need.</li>
581
613
  <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_after'>after</span><span class='lparen'>(</span><span class='symbol'>:suite</span><span class='rparen'>)</span> <span class='kw'>do</span>
582
614
  <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="../SpecSupport.html" title="Brut::SpecSupport (module)">SpecSupport</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="E2ETestServer.html" title="Brut::SpecSupport::E2ETestServer (class)">E2ETestServer</a></span></span><span class='period'>.</span><span class='id identifier rubyid_instance'><span class='object_link'><a href="E2ETestServer.html#instance-class_method" title="Brut::SpecSupport::E2ETestServer.instance (method)">instance</a></span></span><span class='period'>.</span><span class='id identifier rubyid_stop'>stop</span>
583
615
  <span class='kw'>end</span>
616
+ <span class='kw'>if</span> <span class='ivar'>@monkey_patch_summary_notification</span>
617
+ <span class='id identifier rubyid_monkey_patch_summary_notification!'>monkey_patch_summary_notification!</span>
618
+ <span class='kw'>end</span>
584
619
  <span class='kw'>end</span></pre>
585
620
  </td>
586
621
  </tr>
@@ -592,7 +627,7 @@ normally. You can also seed this with data that a component may need.</li>
592
627
  </div>
593
628
 
594
629
  <div id="footer">
595
- Generated on Wed Jun 25 22:57:20 2025 by
630
+ Generated on Wed Jul 2 21:45:27 2025 by
596
631
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
597
632
  0.9.37 (ruby-3.4.4).
598
633
  </div>
@@ -186,7 +186,7 @@
186
186
  </div>
187
187
 
188
188
  <div id="footer">
189
- Generated on Wed Jun 25 22:57:19 2025 by
189
+ Generated on Wed Jul 2 21:45:27 2025 by
190
190
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
191
191
  0.9.37 (ruby-3.4.4).
192
192
  </div>
@@ -119,7 +119,7 @@ Your app's <code>spec_helper.rb</code> should require these explicitly.</p>
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>
data/docs/api/Brut.html CHANGED
@@ -215,7 +215,7 @@ common tested Ruby libraries related to web development.</p>
215
215
  </div>
216
216
 
217
217
  <div id="footer">
218
- Generated on Wed Jun 25 22:57:19 2025 by
218
+ Generated on Wed Jul 2 21:45:26 2025 by
219
219
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
220
220
  0.9.37 (ruby-3.4.4).
221
221
  </div>
data/docs/api/Clock.html CHANGED
@@ -593,7 +593,7 @@ returned in the configured time zone.</p>
593
593
  </div>
594
594
 
595
595
  <div id="footer">
596
- Generated on Wed Jun 25 22:57:20 2025 by
596
+ Generated on Wed Jul 2 21:45:27 2025 by
597
597
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
598
598
  0.9.37 (ruby-3.4.4).
599
599
  </div>
@@ -958,7 +958,7 @@ letters save for the first.</p>
958
958
  </div>
959
959
 
960
960
  <div id="footer">
961
- Generated on Wed Jun 25 22:57:20 2025 by
961
+ Generated on Wed Jul 2 21:45:27 2025 by
962
962
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
963
963
  0.9.37 (ruby-3.4.4).
964
964
  </div>
@@ -209,7 +209,7 @@ SemanticLogger's appenders. Otherwise, the warning is legit.</p>
209
209
  </div>
210
210
 
211
211
  <div id="footer">
212
- Generated on Wed Jun 25 22:57:21 2025 by
212
+ Generated on Wed Jul 2 21:45:28 2025 by
213
213
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
214
214
  0.9.37 (ruby-3.4.4).
215
215
  </div>
@@ -87,6 +87,10 @@
87
87
  <div class="discussion">
88
88
  <p>Instruments all SQL executions.</p>
89
89
 
90
+ <p><em>NOTE</em> this will include the actual SQL query text in the
91
+ span, so any literal values in the query will be in the observability
92
+ platforms.</p>
93
+
90
94
 
91
95
  </div>
92
96
  </div>
@@ -105,7 +109,7 @@
105
109
  </div>
106
110
 
107
111
  <div id="footer">
108
- Generated on Wed Jun 25 22:57:19 2025 by
112
+ Generated on Wed Jul 2 21:45:27 2025 by
109
113
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
110
114
  0.9.37 (ruby-3.4.4).
111
115
  </div>