brut 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/Gemfile.lock +1 -1
  4. data/brut-js/CHANGELOG.md +5 -0
  5. data/brut-js/package-lock.json +2 -2
  6. data/brut-js/package.json +1 -1
  7. data/brut-js/specs/ConstraintViolationMessage.spec.js +1 -1
  8. data/brut-js/specs/ConstraintViolationMessages.spec.js +2 -2
  9. data/brut-js/specs/Form.spec.js +5 -5
  10. data/brut-js/src/ConstraintViolationMessage.js +3 -3
  11. data/brut-js/src/ConstraintViolationMessages.js +2 -2
  12. data/brutrb.com/.vitepress/config.mjs +1 -0
  13. data/brutrb.com/database-schema.md +22 -2
  14. data/brutrb.com/dev-environment.md +1 -0
  15. data/brutrb.com/form-constraints.md +2 -2
  16. data/brutrb.com/handlers.md +1 -1
  17. data/brutrb.com/i18n.md +2 -2
  18. data/brutrb.com/layouts.md +1 -1
  19. data/brutrb.com/recipes/migrations.md +210 -0
  20. data/docs/404.html +2 -2
  21. data/docs/adrs.html +4 -4
  22. data/docs/ai.html +4 -4
  23. data/docs/api/Brut/BackEnd/SeedData.html +1 -1
  24. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +1 -1
  25. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +1 -1
  26. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +1 -1
  27. data/docs/api/Brut/BackEnd/Sidekiq.html +1 -1
  28. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +1 -1
  29. data/docs/api/Brut/BackEnd/Validators.html +1 -1
  30. data/docs/api/Brut/BackEnd.html +1 -1
  31. data/docs/api/Brut/CLI/App.html +1 -1
  32. data/docs/api/Brut/CLI/AppRunner.html +1 -1
  33. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +2 -2
  34. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +6 -6
  35. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +1 -1
  36. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +6 -6
  37. data/docs/api/Brut/CLI/Apps/BuildAssets.html +2 -2
  38. data/docs/api/Brut/CLI/Apps/DB/Create.html +1 -1
  39. data/docs/api/Brut/CLI/Apps/DB/Drop.html +1 -1
  40. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +1 -1
  41. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +6 -2
  42. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +1 -1
  43. data/docs/api/Brut/CLI/Apps/DB/Seed.html +1 -1
  44. data/docs/api/Brut/CLI/Apps/DB/Status.html +9 -9
  45. data/docs/api/Brut/CLI/Apps/DB.html +1 -1
  46. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +1 -1
  47. data/docs/api/Brut/CLI/Apps/DeployBase.html +1 -1
  48. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +1 -1
  49. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +1 -1
  50. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +1 -1
  51. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +8 -12
  52. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +1 -1
  53. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +5 -5
  54. data/docs/api/Brut/CLI/Apps/Scaffold/DbModel.html +384 -0
  55. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +1 -1
  56. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +5 -5
  57. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +1 -1
  58. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +1 -1
  59. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +36 -36
  60. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +1 -1
  61. data/docs/api/Brut/CLI/Apps/Scaffold.html +2 -2
  62. data/docs/api/Brut/CLI/Apps/Test/Audit.html +1 -1
  63. data/docs/api/Brut/CLI/Apps/Test/E2e.html +1 -1
  64. data/docs/api/Brut/CLI/Apps/Test/JS.html +1 -1
  65. data/docs/api/Brut/CLI/Apps/Test/Run.html +1 -1
  66. data/docs/api/Brut/CLI/Apps/Test.html +1 -1
  67. data/docs/api/Brut/CLI/Apps.html +1 -1
  68. data/docs/api/Brut/CLI/Command.html +29 -31
  69. data/docs/api/Brut/CLI/Error.html +1 -1
  70. data/docs/api/Brut/CLI/ExecutionResults/Result.html +1 -1
  71. data/docs/api/Brut/CLI/ExecutionResults.html +1 -1
  72. data/docs/api/Brut/CLI/Executor.html +1 -1
  73. data/docs/api/Brut/CLI/InvalidOption.html +1 -1
  74. data/docs/api/Brut/CLI/Options.html +1 -1
  75. data/docs/api/Brut/CLI/Output.html +1 -1
  76. data/docs/api/Brut/CLI/SystemExecError.html +1 -1
  77. data/docs/api/Brut/CLI.html +1 -1
  78. data/docs/api/Brut/FactoryBot.html +1 -1
  79. data/docs/api/Brut/Framework/App.html +1 -1
  80. data/docs/api/Brut/Framework/Config.html +16 -2
  81. data/docs/api/Brut/Framework/Container.html +1 -1
  82. data/docs/api/Brut/Framework/Error.html +1 -1
  83. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +1 -1
  84. data/docs/api/Brut/Framework/Errors/Bug.html +1 -1
  85. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +1 -1
  86. data/docs/api/Brut/Framework/Errors/MissingParameter.html +1 -1
  87. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +1 -1
  88. data/docs/api/Brut/Framework/Errors/NotFound.html +1 -1
  89. data/docs/api/Brut/Framework/Errors/NotImplemented.html +1 -1
  90. data/docs/api/Brut/Framework/Errors.html +1 -1
  91. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +1 -1
  92. data/docs/api/Brut/Framework/MCP.html +1 -1
  93. data/docs/api/Brut/Framework/ProjectEnvironment.html +1 -1
  94. data/docs/api/Brut/Framework.html +1 -1
  95. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +1 -1
  96. data/docs/api/Brut/FrontEnd/Component/Helpers.html +1 -1
  97. data/docs/api/Brut/FrontEnd/Component.html +1 -1
  98. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +3 -3
  99. data/docs/api/Brut/FrontEnd/Components/FormTag.html +1 -1
  100. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +10 -14
  101. data/docs/api/Brut/FrontEnd/Components/Input.html +1 -1
  102. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +1 -1
  103. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +1 -1
  104. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +1 -1
  105. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +3 -3
  106. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +1 -1
  107. data/docs/api/Brut/FrontEnd/Components/Inputs.html +1 -1
  108. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +1 -1
  109. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +1 -1
  110. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +1 -1
  111. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +1 -1
  112. data/docs/api/Brut/FrontEnd/Components.html +1 -1
  113. data/docs/api/Brut/FrontEnd/Download.html +1 -1
  114. data/docs/api/Brut/FrontEnd/Flash.html +1 -1
  115. data/docs/api/Brut/FrontEnd/Form.html +92 -20
  116. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +1 -1
  117. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +1 -1
  118. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +1 -1
  119. data/docs/api/Brut/FrontEnd/Forms/Input.html +1 -1
  120. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +1 -1
  121. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +1 -1
  122. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +1 -1
  123. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +1 -1
  124. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +1 -1
  125. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +1 -1
  126. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +1 -1
  127. data/docs/api/Brut/FrontEnd/Forms.html +1 -1
  128. data/docs/api/Brut/FrontEnd/GenericResponse.html +1 -1
  129. data/docs/api/Brut/FrontEnd/Handler.html +1 -1
  130. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +1 -1
  131. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +1 -1
  132. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +1 -1
  133. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +1 -1
  134. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +2 -2
  135. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +1 -1
  136. data/docs/api/Brut/FrontEnd/Handlers.html +1 -1
  137. data/docs/api/Brut/FrontEnd/HandlingResults.html +1 -1
  138. data/docs/api/Brut/FrontEnd/HttpMethod.html +1 -1
  139. data/docs/api/Brut/FrontEnd/HttpStatus.html +1 -1
  140. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +1 -1
  141. data/docs/api/Brut/FrontEnd/Layout.html +1 -1
  142. data/docs/api/Brut/FrontEnd/Middleware.html +1 -1
  143. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +1 -1
  144. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +1 -1
  145. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +1 -1
  146. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +1 -1
  147. data/docs/api/Brut/FrontEnd/Middlewares.html +1 -1
  148. data/docs/api/Brut/FrontEnd/Page.html +1 -1
  149. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +1 -1
  150. data/docs/api/Brut/FrontEnd/Pages.html +1 -1
  151. data/docs/api/Brut/FrontEnd/RequestContext.html +1 -1
  152. data/docs/api/Brut/FrontEnd/RouteHook.html +1 -1
  153. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +1 -1
  154. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +1 -1
  155. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +1 -1
  156. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +1 -1
  157. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +1 -1
  158. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +1 -1
  159. data/docs/api/Brut/FrontEnd/RouteHooks.html +1 -1
  160. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +1 -1
  161. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +1 -1
  162. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +1 -1
  163. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +1 -1
  164. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +1 -1
  165. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +1 -1
  166. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +1 -1
  167. data/docs/api/Brut/FrontEnd/Routing/Route.html +1 -1
  168. data/docs/api/Brut/FrontEnd/Routing.html +1 -1
  169. data/docs/api/Brut/FrontEnd/Session.html +1 -1
  170. data/docs/api/Brut/FrontEnd.html +1 -1
  171. data/docs/api/Brut/I18n/BaseMethods.html +1 -1
  172. data/docs/api/Brut/I18n/ForBackEnd.html +1 -1
  173. data/docs/api/Brut/I18n/ForCLI.html +1 -1
  174. data/docs/api/Brut/I18n/ForHTML.html +1 -1
  175. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +1 -1
  176. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +1 -1
  177. data/docs/api/Brut/I18n.html +1 -1
  178. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +1 -1
  179. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +1 -1
  180. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +1 -1
  181. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +1 -1
  182. data/docs/api/Brut/Instrumentation.html +1 -1
  183. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +1 -1
  184. data/docs/api/Brut/SinatraHelpers.html +1 -1
  185. data/docs/api/Brut/SpecSupport/ClockSupport.html +1 -1
  186. data/docs/api/Brut/SpecSupport/ComponentSupport.html +1 -1
  187. data/docs/api/Brut/SpecSupport/E2ETestServer.html +1 -1
  188. data/docs/api/Brut/SpecSupport/E2eSupport.html +1 -1
  189. data/docs/api/Brut/SpecSupport/EnhancedNode.html +1 -1
  190. data/docs/api/Brut/SpecSupport/FlashSupport.html +1 -1
  191. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +1 -1
  192. data/docs/api/Brut/SpecSupport/GeneralSupport.html +1 -1
  193. data/docs/api/Brut/SpecSupport/HandlerSupport.html +1 -1
  194. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +1 -1
  195. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +1 -1
  196. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +1 -1
  197. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +1 -1
  198. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +1 -1
  199. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +1 -1
  200. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +1 -1
  201. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +1 -1
  202. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +1 -1
  203. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +1 -1
  204. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +1 -1
  205. data/docs/api/Brut/SpecSupport/Matchers.html +1 -1
  206. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +1 -1
  207. data/docs/api/Brut/SpecSupport/RSpecSetup.html +1 -1
  208. data/docs/api/Brut/SpecSupport/SessionSupport.html +1 -1
  209. data/docs/api/Brut/SpecSupport.html +1 -1
  210. data/docs/api/Brut.html +1 -1
  211. data/docs/api/Clock.html +1 -1
  212. data/docs/api/ModuleName.html +595 -0
  213. data/docs/api/RichString.html +1 -1
  214. data/docs/api/SemanticLogger/Appender/Async.html +1 -1
  215. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +1 -1
  216. data/docs/api/Sequel/Extensions/BrutMigrations.html +1 -1
  217. data/docs/api/Sequel/Extensions.html +1 -1
  218. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +1 -1
  219. data/docs/api/Sequel/Plugins/CreatedAt.html +1 -1
  220. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +1 -1
  221. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +1 -1
  222. data/docs/api/Sequel/Plugins/ExternalId.html +1 -1
  223. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +1 -1
  224. data/docs/api/Sequel/Plugins/FindBang.html +1 -1
  225. data/docs/api/Sequel/Plugins.html +1 -1
  226. data/docs/api/Sequel.html +1 -1
  227. data/docs/api/_index.html +24 -12
  228. data/docs/api/class_list.html +1 -1
  229. data/docs/api/file.README.html +1 -1
  230. data/docs/api/index.html +1 -1
  231. data/docs/api/method_list.html +478 -406
  232. data/docs/api/top-level-namespace.html +2 -2
  233. data/docs/assets/{app._UukLsdv.js → app.AkS4fHzI.js} +1 -1
  234. data/docs/assets/chunks/@localSearchIndexroot.C9FqcQxD.js +1 -0
  235. data/docs/assets/chunks/{VPLocalSearchBox.DhYUVvsa.js → VPLocalSearchBox.By6un1FD.js} +1 -1
  236. data/docs/assets/chunks/{theme.DHNq8t6D.js → theme.DwiUPdci.js} +2 -2
  237. data/docs/assets/{components.md.DP8maNoF.js → components.md.BfeWD9sX.js} +3 -3
  238. data/docs/assets/{configuration.md.BDXwuZHU.js → configuration.md.DoSBNc0H.js} +1 -1
  239. data/docs/assets/{database-schema.md.CSYk6E6v.js → database-schema.md.C5gXexJi.js} +10 -3
  240. data/docs/assets/{database-schema.md.CSYk6E6v.lean.js → database-schema.md.C5gXexJi.lean.js} +1 -1
  241. data/docs/assets/{dev-environment.md.Dy6EldaM.js → dev-environment.md.DRH2D2-O.js} +3 -3
  242. data/docs/assets/dev-environment.md.DRH2D2-O.lean.js +1 -0
  243. data/docs/assets/{form-constraints.md.x5tNpTTI.js → form-constraints.md.DK5adCgM.js} +2 -2
  244. data/docs/assets/{forms.md.BwBNYrrL.js → forms.md.DFveP5g_.js} +1 -1
  245. data/docs/assets/{getting-started.md.B4LlHfav.js → getting-started.md.DZWjCVC0.js} +2 -2
  246. data/docs/assets/{handlers.md.Chyri6KA.js → handlers.md.h84MMB1R.js} +1 -1
  247. data/docs/assets/{i18n.md.xQhiGo1G.js → i18n.md.BAm9t9JJ.js} +1 -1
  248. data/docs/assets/{layouts.md.CJGDFY-m.js → layouts.md.CVGl9xIO.js} +1 -1
  249. data/docs/assets/recipes_migrations.md.DPN3gQE3.js +97 -0
  250. data/docs/assets/recipes_migrations.md.DPN3gQE3.lean.js +1 -0
  251. data/docs/assets.html +4 -4
  252. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  253. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  254. data/docs/brut-js/api/Autosubmit.html +1 -1
  255. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  256. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  257. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  258. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  259. data/docs/brut-js/api/BufferedLogger.html +1 -1
  260. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  261. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  262. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  263. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  264. data/docs/brut-js/api/ConstraintViolationMessage.html +2 -2
  265. data/docs/brut-js/api/ConstraintViolationMessage.js.html +4 -4
  266. data/docs/brut-js/api/ConstraintViolationMessages.html +3 -3
  267. data/docs/brut-js/api/ConstraintViolationMessages.js.html +3 -3
  268. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  269. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  270. data/docs/brut-js/api/Form.html +1 -1
  271. data/docs/brut-js/api/Form.js.html +1 -1
  272. data/docs/brut-js/api/I18nTranslation.html +1 -1
  273. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  274. data/docs/brut-js/api/LocaleDetection.html +1 -1
  275. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  276. data/docs/brut-js/api/Logger.html +1 -1
  277. data/docs/brut-js/api/Logger.js.html +1 -1
  278. data/docs/brut-js/api/Message.html +1 -1
  279. data/docs/brut-js/api/Message.js.html +1 -1
  280. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  281. data/docs/brut-js/api/RichString.html +1 -1
  282. data/docs/brut-js/api/RichString.js.html +1 -1
  283. data/docs/brut-js/api/Tabs.html +1 -1
  284. data/docs/brut-js/api/Tabs.js.html +1 -1
  285. data/docs/brut-js/api/Tracing.html +1 -1
  286. data/docs/brut-js/api/Tracing.js.html +1 -1
  287. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  288. data/docs/brut-js/api/external-Performance.html +1 -1
  289. data/docs/brut-js/api/external-Promise.html +1 -1
  290. data/docs/brut-js/api/external-ValidityState.html +1 -1
  291. data/docs/brut-js/api/external-Window.html +1 -1
  292. data/docs/brut-js/api/external-fetch.html +1 -1
  293. data/docs/brut-js/api/global.html +1 -1
  294. data/docs/brut-js/api/index.html +1 -1
  295. data/docs/brut-js/api/index.js.html +1 -1
  296. data/docs/brut-js/api/module-testing.html +1 -1
  297. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  298. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  299. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  300. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  301. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  302. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  303. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  304. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  305. data/docs/brut-js/api/testing_index.js.html +1 -1
  306. data/docs/brut-js.html +4 -4
  307. data/docs/business-logic.html +4 -4
  308. data/docs/cli.html +4 -4
  309. data/docs/components.html +8 -8
  310. data/docs/configuration.html +5 -5
  311. data/docs/css.html +4 -4
  312. data/docs/custom-element-tests.html +4 -4
  313. data/docs/database-access.html +4 -4
  314. data/docs/database-schema.html +13 -6
  315. data/docs/deployment.html +4 -4
  316. data/docs/dev-environment.html +6 -6
  317. data/docs/dir-structure.html +4 -4
  318. data/docs/doc-conventions.html +4 -4
  319. data/docs/end-to-end-tests.html +4 -4
  320. data/docs/features.html +4 -4
  321. data/docs/flash-and-session.html +4 -4
  322. data/docs/form-constraints.html +7 -7
  323. data/docs/forms.html +6 -6
  324. data/docs/getting-started.html +7 -7
  325. data/docs/handlers.html +6 -6
  326. data/docs/hashmap.json +1 -1
  327. data/docs/hooks.html +4 -4
  328. data/docs/i18n.html +6 -6
  329. data/docs/index.html +3 -3
  330. data/docs/instrumentation.html +4 -4
  331. data/docs/javascript.html +4 -4
  332. data/docs/jobs.html +4 -4
  333. data/docs/keyword-injection.html +4 -4
  334. data/docs/layouts.html +6 -6
  335. data/docs/lsp.html +4 -4
  336. data/docs/markdown-examples.html +4 -4
  337. data/docs/middleware.html +4 -4
  338. data/docs/overview.html +4 -4
  339. data/docs/pages.html +4 -4
  340. data/docs/recipes/alternate-layouts.html +4 -4
  341. data/docs/recipes/authentication.html +5 -5
  342. data/docs/recipes/blank-layouts.html +4 -4
  343. data/docs/recipes/custom-flash.html +4 -4
  344. data/docs/recipes/indexed-forms.html +4 -4
  345. data/docs/recipes/migrations.html +125 -0
  346. data/docs/recipes/text-field-component.html +4 -4
  347. data/docs/roadmap.html +4 -4
  348. data/docs/routes.html +4 -4
  349. data/docs/security.html +4 -4
  350. data/docs/seed-data.html +4 -4
  351. data/docs/space-time-continuum.html +4 -4
  352. data/docs/tutorial.html +4 -4
  353. data/docs/unit-tests.html +4 -4
  354. data/docs/why.html +4 -4
  355. data/lib/brut/cli/apps/db.rb +2 -0
  356. data/lib/brut/cli/apps/scaffold.rb +77 -0
  357. data/lib/brut/cli/command.rb +1 -2
  358. data/lib/brut/framework/config.rb +7 -0
  359. data/lib/brut/front_end/components/constraint_violations.rb +2 -2
  360. data/lib/brut/front_end/components/i18n_translations.rb +6 -10
  361. data/lib/brut/front_end/form.rb +5 -2
  362. data/lib/brut/junk_drawer.rb +53 -0
  363. data/lib/brut/version.rb +1 -1
  364. metadata +32 -25
  365. data/docs/assets/chunks/@localSearchIndexroot.DkpwyjLd.js +0 -1
  366. data/docs/assets/dev-environment.md.Dy6EldaM.lean.js +0 -1
  367. /data/docs/assets/{components.md.DP8maNoF.lean.js → components.md.BfeWD9sX.lean.js} +0 -0
  368. /data/docs/assets/{configuration.md.BDXwuZHU.lean.js → configuration.md.DoSBNc0H.lean.js} +0 -0
  369. /data/docs/assets/{form-constraints.md.x5tNpTTI.lean.js → form-constraints.md.DK5adCgM.lean.js} +0 -0
  370. /data/docs/assets/{forms.md.BwBNYrrL.lean.js → forms.md.DFveP5g_.lean.js} +0 -0
  371. /data/docs/assets/{getting-started.md.B4LlHfav.lean.js → getting-started.md.DZWjCVC0.lean.js} +0 -0
  372. /data/docs/assets/{handlers.md.Chyri6KA.lean.js → handlers.md.h84MMB1R.lean.js} +0 -0
  373. /data/docs/assets/{i18n.md.xQhiGo1G.lean.js → i18n.md.BAm9t9JJ.lean.js} +0 -0
  374. /data/docs/assets/{layouts.md.CJGDFY-m.lean.js → layouts.md.CVGl9xIO.lean.js} +0 -0
@@ -0,0 +1,595 @@
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: ModuleName
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 = "ModuleName";
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 (M)</a> &raquo;
40
+
41
+
42
+ <span class="title">ModuleName</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: ModuleName
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">ModuleName</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/junk_drawer.rb</dd>
98
+ </dl>
99
+
100
+ </div>
101
+
102
+
103
+
104
+
105
+
106
+ <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
107
+ <ul class="summary">
108
+
109
+ <li class="public ">
110
+ <span class="summary_signature">
111
+
112
+ <a href="#parts_of_module-instance_method" title="#parts_of_module (instance method)">#<strong>parts_of_module</strong> &#x21d2; Object </a>
113
+
114
+
115
+
116
+ </span>
117
+
118
+
119
+
120
+
121
+ <span class="note title readonly">readonly</span>
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute parts_of_module.</p>
132
+ </div></span>
133
+
134
+ </li>
135
+
136
+
137
+ </ul>
138
+
139
+
140
+
141
+
142
+
143
+ <h2>
144
+ Class Method Summary
145
+ <small><a href="#" class="summary_toggle">collapse</a></small>
146
+ </h2>
147
+
148
+ <ul class="summary">
149
+
150
+ <li class="public ">
151
+ <span class="summary_signature">
152
+
153
+ <a href="#from_string-class_method" title="from_string (class method)">.<strong>from_string</strong>(string) &#x21d2; Object </a>
154
+
155
+
156
+
157
+ </span>
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+ <span class="summary_desc"><div class='inline'>
168
+ </div></span>
169
+
170
+ </li>
171
+
172
+
173
+ </ul>
174
+
175
+ <h2>
176
+ Instance Method Summary
177
+ <small><a href="#" class="summary_toggle">collapse</a></small>
178
+ </h2>
179
+
180
+ <ul class="summary">
181
+
182
+ <li class="public ">
183
+ <span class="summary_signature">
184
+
185
+ <a href="#append-instance_method" title="#append (instance method)">#<strong>append</strong>(module_name) &#x21d2; Object </a>
186
+
187
+
188
+
189
+ </span>
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+ <span class="summary_desc"><div class='inline'>
200
+ </div></span>
201
+
202
+ </li>
203
+
204
+
205
+ <li class="public ">
206
+ <span class="summary_signature">
207
+
208
+ <a href="#in_module-instance_method" title="#in_module (instance method)">#<strong>in_module</strong>(module_name) &#x21d2; Object </a>
209
+
210
+
211
+
212
+ </span>
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+ <span class="summary_desc"><div class='inline'>
223
+ </div></span>
224
+
225
+ </li>
226
+
227
+
228
+ <li class="public ">
229
+ <span class="summary_signature">
230
+
231
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(parts_of_module) &#x21d2; ModuleName </a>
232
+
233
+
234
+
235
+ </span>
236
+
237
+
238
+ <span class="note title constructor">constructor</span>
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+ <span class="summary_desc"><div class='inline'><p>A new instance of ModuleName.</p>
248
+ </div></span>
249
+
250
+ </li>
251
+
252
+
253
+ <li class="public ">
254
+ <span class="summary_signature">
255
+
256
+ <a href="#path_from-instance_method" title="#path_from (instance method)">#<strong>path_from</strong>(base_path, extname: &quot;.rb&quot;) &#x21d2; Object </a>
257
+
258
+
259
+
260
+ </span>
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+ <span class="summary_desc"><div class='inline'>
271
+ </div></span>
272
+
273
+ </li>
274
+
275
+
276
+ <li class="public ">
277
+ <span class="summary_signature">
278
+
279
+ <a href="#to_s-instance_method" title="#to_s (instance method)">#<strong>to_s</strong> &#x21d2; Object </a>
280
+
281
+
282
+
283
+ </span>
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+ <span class="summary_desc"><div class='inline'>
294
+ </div></span>
295
+
296
+ </li>
297
+
298
+
299
+ </ul>
300
+
301
+
302
+ <div id="constructor_details" class="method_details_list">
303
+ <h2>Constructor Details</h2>
304
+
305
+ <div class="method_details first">
306
+ <h3 class="signature first" id="initialize-instance_method">
307
+
308
+ #<strong>initialize</strong>(parts_of_module) &#x21d2; <tt><span class='object_link'><a href="" title="ModuleName (class)">ModuleName</a></span></tt>
309
+
310
+
311
+
312
+
313
+
314
+ </h3><div class="docstring">
315
+ <div class="discussion">
316
+ <p>Returns a new instance of ModuleName.</p>
317
+
318
+
319
+ </div>
320
+ </div>
321
+ <div class="tags">
322
+
323
+
324
+ </div><table class="source_code">
325
+ <tr>
326
+ <td>
327
+ <pre class="lines">
328
+
329
+
330
+ 189
331
+ 190
332
+ 191</pre>
333
+ </td>
334
+ <td>
335
+ <pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 189</span>
336
+
337
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_parts_of_module'>parts_of_module</span><span class='rparen'>)</span>
338
+ <span class='ivar'>@parts_of_module</span> <span class='op'>=</span> <span class='id identifier rubyid_parts_of_module'>parts_of_module</span>
339
+ <span class='kw'>end</span></pre>
340
+ </td>
341
+ </tr>
342
+ </table>
343
+ </div>
344
+
345
+ </div>
346
+
347
+ <div id="instance_attr_details" class="attr_details">
348
+ <h2>Instance Attribute Details</h2>
349
+
350
+
351
+ <span id=""></span>
352
+ <div class="method_details first">
353
+ <h3 class="signature first" id="parts_of_module-instance_method">
354
+
355
+ #<strong>parts_of_module</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
356
+
357
+
358
+
359
+
360
+
361
+ </h3><div class="docstring">
362
+ <div class="discussion">
363
+ <p>Returns the value of attribute parts_of_module.</p>
364
+
365
+
366
+ </div>
367
+ </div>
368
+ <div class="tags">
369
+
370
+
371
+ </div><table class="source_code">
372
+ <tr>
373
+ <td>
374
+ <pre class="lines">
375
+
376
+
377
+ 187
378
+ 188
379
+ 189</pre>
380
+ </td>
381
+ <td>
382
+ <pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 187</span>
383
+
384
+ <span class='kw'>def</span> <span class='id identifier rubyid_parts_of_module'>parts_of_module</span>
385
+ <span class='ivar'>@parts_of_module</span>
386
+ <span class='kw'>end</span></pre>
387
+ </td>
388
+ </tr>
389
+ </table>
390
+ </div>
391
+
392
+ </div>
393
+
394
+
395
+ <div id="class_method_details" class="method_details_list">
396
+ <h2>Class Method Details</h2>
397
+
398
+
399
+ <div class="method_details first">
400
+ <h3 class="signature first" id="from_string-class_method">
401
+
402
+ .<strong>from_string</strong>(string) &#x21d2; <tt>Object</tt>
403
+
404
+
405
+
406
+
407
+
408
+ </h3><table class="source_code">
409
+ <tr>
410
+ <td>
411
+ <pre class="lines">
412
+
413
+
414
+ 179
415
+ 180
416
+ 181
417
+ 182
418
+ 183
419
+ 184
420
+ 185</pre>
421
+ </td>
422
+ <td>
423
+ <pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 179</span>
424
+
425
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_from_string'>from_string</span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
426
+ <span class='id identifier rubyid_string'>string</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_string'><span class='object_link'><a href="RichString.html#from_string-class_method" title="RichString.from_string (method)">from_string</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
427
+ <span class='kw'>if</span> <span class='id identifier rubyid_string'>string</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
428
+ <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='tstring_content'>ClassName cannot be initialized with a blank string</span><span class='tstring_end'>&quot;</span></span>
429
+ <span class='kw'>end</span>
430
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='period'>.</span><span class='id identifier rubyid_camelize'>camelize</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_map'>map</span> <span class='lbrace'>{</span> <span class='const'><span class='object_link'><a href="RichString.html" title="RichString (class)">RichString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="RichString.html#initialize-instance_method" title="RichString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_it'>it</span><span class='rparen'>)</span> <span class='rbrace'>}</span><span class='rparen'>)</span>
431
+ <span class='kw'>end</span></pre>
432
+ </td>
433
+ </tr>
434
+ </table>
435
+ </div>
436
+
437
+ </div>
438
+
439
+ <div id="instance_method_details" class="method_details_list">
440
+ <h2>Instance Method Details</h2>
441
+
442
+
443
+ <div class="method_details first">
444
+ <h3 class="signature first" id="append-instance_method">
445
+
446
+ #<strong>append</strong>(module_name) &#x21d2; <tt>Object</tt>
447
+
448
+
449
+
450
+
451
+
452
+ </h3><table class="source_code">
453
+ <tr>
454
+ <td>
455
+ <pre class="lines">
456
+
457
+
458
+ 201
459
+ 202
460
+ 203</pre>
461
+ </td>
462
+ <td>
463
+ <pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 201</span>
464
+
465
+ <span class='kw'>def</span> <span class='id identifier rubyid_append'>append</span><span class='lparen'>(</span><span class='id identifier rubyid_module_name'>module_name</span><span class='rparen'>)</span>
466
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@parts_of_module</span> <span class='op'>+</span> <span class='id identifier rubyid_module_name'>module_name</span><span class='period'>.</span><span class='id identifier rubyid_parts_of_module'>parts_of_module</span><span class='rparen'>)</span>
467
+ <span class='kw'>end</span></pre>
468
+ </td>
469
+ </tr>
470
+ </table>
471
+ </div>
472
+
473
+ <div class="method_details ">
474
+ <h3 class="signature " id="in_module-instance_method">
475
+
476
+ #<strong>in_module</strong>(module_name) &#x21d2; <tt>Object</tt>
477
+
478
+
479
+
480
+
481
+
482
+ </h3><table class="source_code">
483
+ <tr>
484
+ <td>
485
+ <pre class="lines">
486
+
487
+
488
+ 193
489
+ 194
490
+ 195
491
+ 196
492
+ 197
493
+ 198
494
+ 199</pre>
495
+ </td>
496
+ <td>
497
+ <pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 193</span>
498
+
499
+ <span class='kw'>def</span> <span class='id identifier rubyid_in_module'>in_module</span><span class='lparen'>(</span><span class='id identifier rubyid_module_name'>module_name</span><span class='rparen'>)</span>
500
+ <span class='kw'>if</span> <span class='id identifier rubyid_in_module?'>in_module?</span><span class='lparen'>(</span><span class='id identifier rubyid_module_name'>module_name</span><span class='rparen'>)</span>
501
+ <span class='kw'>return</span> <span class='kw'>self</span>
502
+ <span class='kw'>else</span>
503
+ <span class='id identifier rubyid_module_name'>module_name</span><span class='period'>.</span><span class='id identifier rubyid_append'>append</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
504
+ <span class='kw'>end</span>
505
+ <span class='kw'>end</span></pre>
506
+ </td>
507
+ </tr>
508
+ </table>
509
+ </div>
510
+
511
+ <div class="method_details ">
512
+ <h3 class="signature " id="path_from-instance_method">
513
+
514
+ #<strong>path_from</strong>(base_path, extname: &quot;.rb&quot;) &#x21d2; <tt>Object</tt>
515
+
516
+
517
+
518
+
519
+
520
+ </h3><table class="source_code">
521
+ <tr>
522
+ <td>
523
+ <pre class="lines">
524
+
525
+
526
+ 207
527
+ 208
528
+ 209
529
+ 210
530
+ 211
531
+ 212
532
+ 213
533
+ 214
534
+ 215
535
+ 216
536
+ 217</pre>
537
+ </td>
538
+ <td>
539
+ <pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 207</span>
540
+
541
+ <span class='kw'>def</span> <span class='id identifier rubyid_path_from'>path_from</span><span class='lparen'>(</span><span class='id identifier rubyid_base_path'>base_path</span><span class='comma'>,</span> <span class='label'>extname:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>.rb</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
542
+ <span class='id identifier rubyid_parts_as_path_segment'>parts_as_path_segment</span> <span class='op'>=</span> <span class='ivar'>@parts_of_module</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_part'>part</span><span class='op'>|</span>
543
+ <span class='kw'>if</span> <span class='id identifier rubyid_part'>part</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'>DB</span><span class='tstring_end'>&quot;</span></span>
544
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>db</span><span class='tstring_end'>&quot;</span></span>
545
+ <span class='kw'>else</span>
546
+ <span class='id identifier rubyid_part'>part</span><span class='period'>.</span><span class='id identifier rubyid_underscorized'>underscorized</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
547
+ <span class='kw'>end</span>
548
+ <span class='rbrace'>}</span>
549
+ <span class='op'>*</span><span class='id identifier rubyid_subdir_parts'>subdir_parts</span><span class='comma'>,</span><span class='id identifier rubyid_file_name_part'>file_name_part</span> <span class='op'>=</span> <span class='id identifier rubyid_parts_as_path_segment'>parts_as_path_segment</span>
550
+ <span class='id identifier rubyid_base_path'>base_path</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_subdir_parts'>subdir_parts</span><span class='comma'>,</span><span class='id identifier rubyid_file_name_part'>file_name_part</span> <span class='op'>+</span> <span class='id identifier rubyid_extname'>extname</span><span class='rparen'>)</span>
551
+ <span class='kw'>end</span></pre>
552
+ </td>
553
+ </tr>
554
+ </table>
555
+ </div>
556
+
557
+ <div class="method_details ">
558
+ <h3 class="signature " id="to_s-instance_method">
559
+
560
+ #<strong>to_s</strong> &#x21d2; <tt>Object</tt>
561
+
562
+
563
+
564
+
565
+
566
+ </h3><table class="source_code">
567
+ <tr>
568
+ <td>
569
+ <pre class="lines">
570
+
571
+
572
+ 205</pre>
573
+ </td>
574
+ <td>
575
+ <pre class="code"><span class="info file"># File 'lib/brut/junk_drawer.rb', line 205</span>
576
+
577
+ <span class='kw'>def</span> <span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>=</span> <span class='ivar'>@parts_of_module</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>::</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span></pre>
578
+ </td>
579
+ </tr>
580
+ </table>
581
+ </div>
582
+
583
+ </div>
584
+
585
+ </div>
586
+
587
+ <div id="footer">
588
+ Generated on Sat Jul 12 21:25:21 2025 by
589
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
590
+ 0.9.37 (ruby-3.4.4).
591
+ </div>
592
+
593
+ </div>
594
+ </body>
595
+ </html>
@@ -765,7 +765,7 @@ string is blank or nil, accounting for <code>blank_is_nil:</code></p>
765
765
  </div>
766
766
 
767
767
  <div id="footer">
768
- Generated on Thu Jul 10 13:41:04 2025 by
768
+ Generated on Sat Jul 12 21:25:21 2025 by
769
769
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
770
770
  0.9.37 (ruby-3.4.4).
771
771
  </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 Thu Jul 10 13:41:04 2025 by
212
+ Generated on Sat Jul 12 21:25:22 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>
@@ -109,7 +109,7 @@ platforms.</p>
109
109
  </div>
110
110
 
111
111
  <div id="footer">
112
- Generated on Thu Jul 10 13:41:03 2025 by
112
+ Generated on Sat Jul 12 21:25:21 2025 by
113
113
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
114
114
  0.9.37 (ruby-3.4.4).
115
115
  </div>
@@ -531,7 +531,7 @@ Inside a <code>create_table</code> block, this can be called via <code>key</code
531
531
  </div>
532
532
 
533
533
  <div id="footer">
534
- Generated on Thu Jul 10 13:41:03 2025 by
534
+ Generated on Sat Jul 12 21:25:21 2025 by
535
535
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
536
536
  0.9.37 (ruby-3.4.4).
537
537
  </div>
@@ -107,7 +107,7 @@
107
107
  </div>
108
108
 
109
109
  <div id="footer">
110
- Generated on Thu Jul 10 13:41:03 2025 by
110
+ Generated on Sat Jul 12 21:25:21 2025 by
111
111
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
112
112
  0.9.37 (ruby-3.4.4).
113
113
  </div>
@@ -95,7 +95,7 @@
95
95
  </div>
96
96
 
97
97
  <div id="footer">
98
- Generated on Thu Jul 10 13:41:03 2025 by
98
+ Generated on Sat Jul 12 21:25:20 2025 by
99
99
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
100
100
  0.9.37 (ruby-3.4.4).
101
101
  </div>
@@ -115,7 +115,7 @@
115
115
  </div>
116
116
 
117
117
  <div id="footer">
118
- Generated on Thu Jul 10 13:41:03 2025 by
118
+ Generated on Sat Jul 12 21:25:20 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>
@@ -197,7 +197,7 @@ prefix should be used. Calling this will also alter <span class='object_link'><
197
197
  </div>
198
198
 
199
199
  <div id="footer">
200
- Generated on Thu Jul 10 13:41:03 2025 by
200
+ Generated on Sat Jul 12 21:25:20 2025 by
201
201
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
202
202
  0.9.37 (ruby-3.4.4).
203
203
  </div>