module Jekyll::Favicon::Configuration::Defaults

Create configurable for include

Public Class Methods

base_name_to_parts(name) click to toggle source
# File lib/jekyll/favicon/configuration/defaults.rb, line 35
def self.base_name_to_parts(name)
  name.split("::").collect do |module_or_class|
    camelcase_to_snakecase module_or_class
  end
end
camelcase_to_snakecase(camelcase) click to toggle source
# File lib/jekyll/favicon/configuration/defaults.rb, line 41
def self.camelcase_to_snakecase(camelcase)
  camelcase.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
    .gsub(/([a-z\d])([A-Z])/, '\1_\2')
    .downcase
end
define_defaults(base, method_name, &block) click to toggle source
# File lib/jekyll/favicon/configuration/defaults.rb, line 30
def self.define_defaults(base, method_name, &block)
  base.define_singleton_method("defaults", &block)
  define_method(method_name, &block)
end
included(base) click to toggle source
# File lib/jekyll/favicon/configuration/defaults.rb, line 12
def self.included(base)
  *modules, class_or_module_name = base_name_to_parts base.name
  method_name = "#{class_or_module_name}_defaults"
  define_defaults base, method_name do
    Defaults.load_defaults(*modules, class_or_module_name)
  end
end
load_defaults(*parts) click to toggle source
# File lib/jekyll/favicon/configuration/defaults.rb, line 20
def self.load_defaults(*parts)
  load_file "config", *parts
end
load_file(*parts) click to toggle source
# File lib/jekyll/favicon/configuration/defaults.rb, line 24
def self.load_file(*parts)
  path = Favicon::ROOT.join(*parts).to_s
  path = "#{path}.yml"
  YAML.load_file path
end