class Jekyll::Theme
Attributes
name[R]
Public Class Methods
new(name)
click to toggle source
# File lib/ngage/jekyll/theme.rb, line 9 def initialize(name) @name = name.downcase.strip Jekyll.logger.debug "Theme:", name Jekyll.logger.debug "Theme source:", root configure_sass end
Public Instance Methods
assets_path()
click to toggle source
# File lib/ngage/jekyll/theme.rb, line 37 def assets_path @assets_path ||= path_for "assets" end
configure_sass()
click to toggle source
# File lib/ngage/jekyll/theme.rb, line 41 def configure_sass return unless sass_path External.require_with_graceful_fail("sass") unless defined?(Sass) Sass.load_paths << sass_path end
includes_path()
click to toggle source
# File lib/ngage/jekyll/theme.rb, line 25 def includes_path @includes_path ||= path_for "_includes" end
layouts_path()
click to toggle source
# File lib/ngage/jekyll/theme.rb, line 29 def layouts_path @layouts_path ||= path_for "_layouts" end
root()
click to toggle source
# File lib/ngage/jekyll/theme.rb, line 16 def root # Must use File.realpath to resolve symlinks created by rbenv # Otherwise, Jekyll.sanitized path with prepend the unresolved root @root ||= File.realpath(gemspec.full_gem_path) rescue Errno::ENOENT, Errno::EACCES, Errno::ELOOP raise "Path #{gemspec.full_gem_path} does not exist, is not accessible "\ "or includes a symbolic link loop" end
runtime_dependencies()
click to toggle source
# File lib/ngage/jekyll/theme.rb, line 48 def runtime_dependencies gemspec.runtime_dependencies end
sass_path()
click to toggle source
# File lib/ngage/jekyll/theme.rb, line 33 def sass_path @sass_path ||= path_for "_sass" end
Private Instance Methods
gemspec()
click to toggle source
# File lib/ngage/jekyll/theme.rb, line 66 def gemspec @gemspec ||= Gem::Specification.find_by_name(name) rescue Gem::LoadError raise Jekyll::Errors::MissingDependencyException, "The #{name} theme could not be found." end
path_for(folder)
click to toggle source
# File lib/ngage/jekyll/theme.rb, line 54 def path_for(folder) path = realpath_for(folder) path if path && File.directory?(path) end
realpath_for(folder)
click to toggle source
# File lib/ngage/jekyll/theme.rb, line 59 def realpath_for(folder) File.realpath(Jekyll.sanitized_path(root, folder.to_s)) rescue Errno::ENOENT, Errno::EACCES, Errno::ELOOP Jekyll.logger.warn "Invalid theme folder:", folder nil end