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