module Lookbook
def after_change(&block)
def after_change(&block) Engine.hooks.add_hook(:after_change, block) end
def after_initialize(&block)
def after_initialize(&block) Engine.hooks.add_hook(:after_initialize, block) end
def amend_panel(*args)
def amend_panel(*args) Engine.panels.update_panel(*args) end
def before_exit(&block)
def before_exit(&block) Engine.hooks.add_hook(:before_exit, block) end
def broadcast(event_name, data = {})
def broadcast(event_name, data = {}) Engine.websocket&.broadcast(event_name.to_s, data) end
def config
def config @_config ||= ConfigStore.init_from_config end
def configure
def configure yield(config) end
def data
def data @_data ||= Store.new end
def data=(new_data)
def data=(new_data) @_data = Store.new(new_data) end
def debug_data
def debug_data { version: version, env: Rails.env.to_s, config: [ config.to_h, {panels: Engine.panels.to_h}, {inputs: Engine.inputs.to_h}, {tags: Engine.tags.to_h} ].inject(:merge) } end
def define_panel(name, *args)
def define_panel(name, *args) Engine.panels.add_panel(name, :drawer, *args) end
def define_param_input(*args)
def define_param_input(*args) Engine.inputs.add_input(*args) end
def define_tag(name, args = nil, &block)
def define_tag(name, args = nil, &block) Engine.tags.add_tag(name, { named_args: args.to_a, after_parse: block }) end
def engine
def engine Engine end
def logger
def logger @_logger ||= if Rails.logger.present? && config.log_use_rails_logger Rails.logger else logger = Logger.new($stdout) logger.level = config.log_level logger end end
def pages
def pages Engine.pages end
def previews
def previews Engine.previews end
def remove_panel(name)
def remove_panel(name) Engine.panels.remove_panel(name) end
def theme
def theme @_theme ||= Lookbook::Theme.new(config.ui_theme, config.ui_theme_overrides) end
def version
def version Lookbook::VERSION end