Class: CloudCannonJekyll::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/cloudcannon-jekyll/configuration.rb

Overview

Processes Jekyll configuration to enable the plugin is run and fix common issues

Class Method Summary collapse

Class Method Details

.overridden_config(user_config) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/cloudcannon-jekyll/configuration.rb', line 14

def self.overridden_config(user_config)
  config = Jekyll::Utils.deep_merge_hashes(Jekyll::Configuration::DEFAULTS, user_config)
  config = config.add_default_collections if config.respond_to? :add_default_collections
  config = config.fix_common_issues if config.respond_to? :fix_common_issues
  config = config.add_default_excludes if config.respond_to? :add_default_excludes

  key = Jekyll::VERSION.start_with?("2.") ? "gems" : "plugins"

  config[key] = Array(config[key])
  config[key].push("cloudcannon-jekyll") unless config[key].include? "cloudcannon-jekyll"
  config
end

.process(site) ⇒ Object



10
11
12
# File 'lib/cloudcannon-jekyll/configuration.rb', line 10

def self.process(site)
  site.instance_variable_set :@_cloudcannon_jekyll_processed, true
end

.processed?(site) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/cloudcannon-jekyll/configuration.rb', line 6

def self.processed?(site)
  site.instance_variable_get(:@_cloudcannon_jekyll_processed) == true
end

.set(site) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/cloudcannon-jekyll/configuration.rb', line 27

def self.set(site)
  return if processed? site

  if site.respond_to? :config=
    site.config = overridden_config(site.config)
  else # Jekyll pre 3.5
    site.instance_variable_set :@config, overridden_config(site.config)
  end

  process(site)
end