lib/voom/presenters/settings.rb in voom-presenters-0.1.13 vs lib/voom/presenters/settings.rb in voom-presenters-0.2.0

- old
+ new

@@ -1,49 +1,70 @@ include Voom::Trace trace {"Loading Presenters Settings"} -require_relative 'helpers/route' +require 'voom/presenters/helpers/route' -module Voom - module Presenters - class Settings - extend Dry::Configurable - setting :presenters do - setting :root, [] - # You can add helpers that will automatically be included - # For example: - # For example: - # Voom::Presenters::Settings.configure do |config| - # config.presenters.helpers << YourHelperModule # Passing a module - # config.presenters.helpers << &->{ def foo; :foo; end } # Passing a block - # end - setting :helpers, [Voom::Presenters::Helpers::Route] - setting :deep_freeze, true - setting :id_generator, ->(node) {"id-#{SecureRandom.hex}"} - setting :web_client do - # Add lambda's to modify the context for the presenters +unless defined?(Voom::Presenters::Settings) + module Voom + module Presenters + class Settings + extend Dry::Configurable + setting :presenters do + setting :root, [] + # You can add helpers that will automatically be included # For example: + # For example: # Voom::Presenters::Settings.configure do |config| - # config.presenters.web_client.prepare_context << ->(context, session, _env){ - # identity_id = session[:aaa_identity] - # context.merge(aaa_identity: identity_id) - # } + # config.presenters.helpers << YourHelperModule # Passing a module + # config.presenters.helpers << &->{ def foo; :foo; end } # Passing a block # end - setting :prepare_context, [] - end - setting :components do - setting :defaults do - setting :datetime do - setting :format, 'F j, Y h:i K' - setting :time_24hr, false + setting :helpers, [Voom::Presenters::Helpers::Route] + setting :deep_freeze, true + setting :id_generator, ->(node) {"id-#{SecureRandom.hex}"} + setting :web_client do + # Add lambda's to modify the context for the presenters + # For example: + # Voom::Presenters::Settings.configure do |config| + # config.presenters.web_client.prepare_context << ->(context, session, _env){ + # identity_id = session[:aaa_identity] + # context.merge(aaa_identity: identity_id) + # } + # end + setting :prepare_context, [] + setting :custom_css, 'public/presenters/*.css' + end + setting :components do + setting :defaults do + setting :datetime do + setting :format, 'M j, y h:i K' + setting :time_24hr, false + end + setting :date do + setting :format, 'F j, Y' + end + setting :time do + setting :format, 'h:i K' + setting :time_24hr, false + end + setting :text_area do + setting :rows, 3 + setting :cols, 80 + end + # Typography + setting :headline do + setting :level, 5 + end + setting :title do + setting :level, 6 + end + setting :rich_text_area do + setting :rows, 25 + end end - setting :date do - setting :format, 'F j, Y' - end - setting :time do - setting :format, 'h:i K' - setting :time_24hr, false - end end + end + + def self.default(type, key) + config.presenters.components.defaults&.public_send(type)&.public_send(key) end end end end end