Sha256: de6f5ea7b88fc20aaf0ef2313df136e396de8cc1e1aa6a02ec7c82328dc9315e
Contents?: true
Size: 1.53 KB
Versions: 7
Compression:
Stored size: 1.53 KB
Contents
# frozen_string_literal: true module Bridgetown class PluginManager attr_reader :site # Create an instance of this class. # # site - the instance of Bridgetown::Site we're concerned with # # Returns nothing def initialize(site) @site = site end # Require all the plugins which are allowed. # # Returns nothing def conscientious_require require_plugin_files end def self.require_from_bundler if !ENV["BRIDGETOWN_NO_BUNDLER_REQUIRE"] && File.file?("Gemfile") require "bundler" Bundler.setup required_gems = Bundler.require(:bridgetown_plugins) message = "Required #{required_gems.map(&:name).join(", ")}" Bridgetown.logger.debug("PluginManager:", message) ENV["BRIDGETOWN_NO_BUNDLER_REQUIRE"] = "true" true else false end end # Require all .rb files # # Returns nothing. def require_plugin_files plugins_path.each do |plugin_search_path| plugin_files = Utils.safe_glob(plugin_search_path, File.join("**", "*.rb")) Bridgetown::External.require_with_graceful_fail(plugin_files) end end # Public: Setup the plugin search path # # Returns an Array of plugin search paths def plugins_path if site.config["plugins_dir"].eql? Bridgetown::Configuration::DEFAULTS["plugins_dir"] [site.in_root_dir(site.config["plugins_dir"])] else Array(site.config["plugins_dir"]).map { |d| File.expand_path(d) } end end end end
Version data entries
7 entries across 7 versions & 1 rubygems