module Middleman
def load_extensions_in_path
- Private: -
def load_extensions_in_path require 'rubygems' extensions = rubygems_latest_specs.select do |spec| spec_has_file?(spec, EXTENSION_FILE) end extensions.each do |spec| require spec.name end end
def locate_root(cwd=Pathname.new(Dir.pwd))
def locate_root(cwd=Pathname.new(Dir.pwd)) return cwd.to_s if (cwd + 'config.rb').exist? return false if cwd.root? locate_root(cwd.parent) end
def rubygems_latest_specs
-
(Array)
- Array of latest Gem::Specification
Other tags:
- Private: -
def rubygems_latest_specs # If newer Rubygems if ::Gem::Specification.respond_to? :latest_specs ::Gem::Specification.latest_specs(true) else ::Gem.source_index.latest_specs end end
def setup_load_paths
def setup_load_paths @_is_setup ||= begin # Only look for config.rb if MM_ROOT isn't set if !ENV['MM_ROOT'] && found_path = locate_root ENV['MM_ROOT'] = found_path end is_bundler_setup = false # If we've found the root, try to setup Bundler if ENV['MM_ROOT'] root_gemfile = File.expand_path('Gemfile', ENV['MM_ROOT']) ENV['BUNDLE_GEMFILE'] ||= root_gemfile unless File.exist?(ENV['BUNDLE_GEMFILE']) git_gemfile = Pathname.new(__FILE__).expand_path.parent.parent.parent + 'Gemfile' ENV['BUNDLE_GEMFILE'] = git_gemfile.to_s end if File.exist?(ENV['BUNDLE_GEMFILE']) is_bundler_setup = true require 'bundler/setup' end end # Automatically discover extensions in RubyGems require 'middleman-core/extensions' if is_bundler_setup Bundler.require else ::Middleman.load_extensions_in_path end true end end
def spec_has_file?(spec, path)
-
(Boolean)
- Whether the file exists
Parameters:
-
path
(String
) -- Path to look for -
spec
(Gem::Specification
) --
Other tags:
- Private: -
def spec_has_file?(spec, path) full_path = File.join(spec.full_gem_path, path) File.exist?(full_path) end