Class: CloudCannonJekyll::Setup

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

Overview

Processes Jekyll configuration to enable the plugin and fix common issues

Class Method Summary collapse

Class Method Details

.overridden_config(user_config) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/cloudcannon-jekyll/setup.rb', line 16

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



12
13
14
# File 'lib/cloudcannon-jekyll/setup.rb', line 12

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

.processed?(site) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/cloudcannon-jekyll/setup.rb', line 8

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

.set(site) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/cloudcannon-jekyll/setup.rb', line 30

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