Sha256: f64afab730ad9c67ff348beb64f62adb4a97cc588216c8506c7f9b06ed3bf16d

Contents?: true

Size: 1.27 KB

Versions: 2

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true

module CloudCannonJekyll
  # Processes Jekyll configuration to enable the plugin is run and fix common issues
  class Configuration
    def self.processed?(site)
      site.instance_variable_get(:@_cloudcannon_jekyll_processed) == true
    end

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

    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

    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
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cloudcannon-jekyll-1.4.3 lib/cloudcannon-jekyll/configuration.rb
cloudcannon-jekyll-1.4.2 lib/cloudcannon-jekyll/configuration.rb