Module: MasterView::DirectivesInfo
- Defined in:
- lib/masterview/masterview_info.rb
Overview
:nodoc:
Constant Summary collapse
- DEFAULT_RENDERING_OPTIONS =
ConfigInfoHelpers::DEFAULT_RENDERING_OPTIONS.clone
Class Method Summary collapse
- .getHtmlTemplate(element_option_name, params) ⇒ Object
-
.to_html(params = {}) ⇒ Object
Answer an html rendering of the Configuration Optionally provide HTML fragment templates and class/style attributes to customize rendering.
Class Method Details
.getHtmlTemplate(element_option_name, params) ⇒ Object
174 175 176 |
# File 'lib/masterview/masterview_info.rb', line 174 def self.getHtmlTemplate(element_option_name, params) ConfigInfoHelpers.getHtmlTemplate( element_option_name, params, DEFAULT_RENDERING_OPTIONS ) end |
.to_html(params = {}) ⇒ Object
Answer an html rendering of the Configuration Optionally provide HTML fragment templates and class/style attributes to customize rendering
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 |
# File 'lib/masterview/masterview_info.rb', line 180 def self.to_html( params={} ) default_priority = MasterView::DirectiveMetadata::DirectivePriorities::Default default_priority = MasterView::DirectiveMetadata.get_priority_name(default_priority) # organize the directives info we want to present directive_load_path = MasterView::DirectiveLoadPath.current directive_registry = MasterView::DirectiveRegistry.current namespaces = directive_registry.loaded_namespaces.sort directives = {} namespaces.each { | ns_name | directives[ns_name] = {} } directive_registry.loaded_classes.each { | directive_class | ns_name = directive_class.namespace_name attr_name = directive_class.attribute_name directives[ns_name][attr_name] = directive_class } # unpack the supported keyword args title_html_template = getHtmlTemplate( :title, params ) #parms: config settings title preamble_html_template = getHtmlTemplate( :preamble, params ) #parms: MasterView version config_notes_html_template = getHtmlTemplate( :config_notes, params ) #parms: default priority level config_settings_html_template = getHtmlTemplate( :container, params ) #parms: section/option entries section_entry_html_template = getHtmlTemplate( :section_entry, params ) #parms: :section_attrs, section_name option_entry_html_template = getHtmlTemplate( :option_entry, params ) #parms: :option_name_attrs, option_name, :option_value_attrs, option_value option_subentry_entry_html_template = getHtmlTemplate( :option_subentry_entry, params ) #parms: value postscript_html = getHtmlTemplate( :postscript, params ) # prepare our templates for convenient use during the generation loop below config_settings_html_start, config_settings_html_end = config_settings_html_template.split('%s') # and off we go at last config = MasterView::ConfigSettings html = [] unless title_html_template == :none # allow client to suppress html << title_html_template % [ 'MasterView Configuration' ] end unless preamble_html_template == :none # allow client to suppress html << preamble_html_template % [ MasterView::VERSION::STRING ] end unless config_notes_html_template == :none # allow client to suppress html << config_notes_html_template % [ default_priority ] end html << config_settings_html_start # Loaded directives namespaces.each { | ns_name | html << section_entry_html_template % "#{ns_name}: Namespace Directives" directives_map = directives[ns_name] ###[attr_name] = directive_class directives_map.keys.sort.each { | attr_name | directive_class = directives_map[attr_name] attr_qname = directive_class.attribute_qname priority = MasterView::DirectiveMetadata.get_priority_label(directive_class.priority) description = priority #too verbose: "priority #{priority}" html << option_entry_html_template % [ attr_qname, description ] description = directive_class.[:description] if description html << option_subentry_entry_html_template % description end } } # load path html << section_entry_html_template % 'Directives Load Path' directive_load_path.each { | dpe | option_name = dpe.dir_path option_value = ' ' #TODO: dpe.options.inspect html << option_entry_html_template % [ option_name, option_value ] } html << config_settings_html_end unless postscript_html == :none # allow client to suppress html << postscript_html end html.join("\n") end |