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