Class: Jekyll::Spaceship::Config
- Inherits:
-
Object
- Object
- Jekyll::Spaceship::Config
- Defined in:
- lib/jekyll-spaceship/cores/config.rb
Constant Summary collapse
- CONFIG_NAME =
'jekyll-spaceship'
- DEFAULT_CONFIG =
{ 'processors' => [ 'table-processor', 'mathjax-processor', 'plantuml-processor', 'polyfill-processor', 'video-processor', 'emoji-processor' ] }
- @@store =
{}
Class Method Summary collapse
- .deep_merge(first, second) ⇒ Object
- .load(filename = '_config.yml') ⇒ Object
- .store(section, default) ⇒ Object
- .use_processors(config) ⇒ Object
Class Method Details
.deep_merge(first, second) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/jekyll-spaceship/cores/config.rb', line 21 def self.deep_merge(first, second) merger = proc do |_, f, s| if Hash === f && Hash === s f.merge(s, &merger) elsif Array === f && Array === s s || f else [:undefined, nil, :nil].include?(s) ? f : s end end first.merge(second.to_h, &merger) end |
.load(filename = '_config.yml') ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/jekyll-spaceship/cores/config.rb', line 40 def self.load(filename = '_config.yml') config = deep_merge( { CONFIG_NAME => DEFAULT_CONFIG }, YAML.load_file(File.(filename)) )[CONFIG_NAME] @@store = config self.use_processors(config) end |
.store(section, default) ⇒ Object
34 35 36 37 38 |
# File 'lib/jekyll-spaceship/cores/config.rb', line 34 def self.store(section, default) return if @@store[section].nil? return @@store[section] if default.nil? @@store[section] = deep_merge(@@store[section], default) end |