Custom Flash Class
If you want to have a more sophisticated Flash, you can do this by overriding Brut's configuration.
Recipe
First, create your new class in app/support/app_flash.rb. You can implement your new methods using [] and []=.
ruby
class AppFlash < Brut::FrontEnd::Flash
def debug = self[:debug]
def debug? = !!self.debug
def debug=(debug_message)
self[:debug] = debug_message
end
endNow, in app/src/app.rb's initializer, use Brut.container.override:
ruby
class App < Brut::Framework::App
def initialize
# ...
Brut.container.override("flash_class",AppFlash)
end
endNow, any time you inject flash: into a component, it'll be an instance of AppFlash:
ruby
class HomePage < AppPage
def initialize(flash:)
@flash = flash
end
def page_template
h1 { "Welcome!" }
if @flash.debug?
aside { @flash.debug }
end
end
end