class Madness::Settings
Handle the configuration options Each configuration option has three sources
-
The default value
-
The setting as provided in the ./.madness.yml
-
Any override provided later (for example, by the CommandLine class)
Public Class Methods
new()
click to toggle source
# File lib/madness/settings.rb, line 14 def initialize reset end
Public Instance Methods
data()
click to toggle source
# File lib/madness/settings.rb, line 50 def data @data ||= defaults.merge(file_data) end
defaults()
click to toggle source
# File lib/madness/settings.rb, line 54 def defaults { path: '.', port: 3000, bind: '0.0.0.0', renderer: 'redcarpet', base_uri: nil, sort_order: 'dirs_first', sidebar: true, auto_h1: true, auto_nav: true, auto_toc: true, highlighter: true, copy_code: true, shortlinks: false, source_link: nil, source_link_label: 'Page Source', source_link_pos: 'bottom', toc: nil, theme: nil, open: false, auth: false, auth_zone: 'Restricted Documentation', expose_extensions: nil, exclude: ['^[a-z_\-0-9]+$'], } end
dir_glob()
click to toggle source
# File lib/madness/settings.rb, line 46 def dir_glob data[:expose_extensions] ? "*.{md,#{data[:expose_extensions].delete(' ')}}" : '*.md' end
file_exist?()
click to toggle source
# File lib/madness/settings.rb, line 38 def file_exist? File.exist? filename end
filename()
click to toggle source
# File lib/madness/settings.rb, line 42 def filename '.madness.yml' end
method_missing(name, *args, &_block)
click to toggle source
# File lib/madness/settings.rb, line 18 def method_missing(name, *args, &_block) name_string = name.to_s if name_string.end_with? '=' data[name_string.chop.to_sym] = args.first else data[name] end end
reset()
click to toggle source
Force reload of the config file, set defaults, and then read from file.
# File lib/madness/settings.rb, line 34 def reset @data = nil end
respond_to_missing?(*_args)
click to toggle source
# File lib/madness/settings.rb, line 28 def respond_to_missing?(*_args) true end
Private Instance Methods
file_data()
click to toggle source
# File lib/madness/settings.rb, line 84 def file_data result = if file_exist? ExtendedYAML.load(filename)&.symbolize_keys else {} end result || {} end