module Middleman

Top-level Middleman namespace

Core Middleman Class

Immutable Callback Management, complete with Contracts validation.

Routing extension

rubocop:disable GlobalVars

ERb renderer

rubocop:disable ModuleLength

Constants

MapDescriptor
MiddlewareDescriptor
SourceFile

The standard “record” that contains information about a file on disk.

VERSION

Current Version @return [String]

Public Class Methods

server() click to toggle source
# File lib/middleman/rack.rb, line 9
def self.server
  ::Middleman::Rack.new(::Middleman::Application.new)
end
setup_load_paths() click to toggle source
# File lib/middleman-core/load_paths.rb, line 6
def setup_load_paths
  @_is_setup ||= begin

    # Only look for config.rb if MM_ROOT isn't set
    if !ENV['MM_ROOT'] && (found_path = findup('config.rb'))
      ENV['MM_ROOT'] = found_path
    end

    # If we've found the root, try to setup Bundler
    setup_bundler if ENV['MM_ROOT']

    true
  end
end

Private Class Methods

findup(filename, cwd=Dir.pwd) click to toggle source

Recursive method to find a file in parent directories

# File lib/middleman-core/load_paths.rb, line 42
def findup(filename, cwd=Dir.pwd)
  cwd = Pathname(cwd)
  return cwd.to_s if (cwd + filename).exist?
  return false if cwd.root?
  findup(filename, cwd.parent)
end
setup_bundler() click to toggle source

Set BUNDLE_GEMFILE and run Bundler setup. Raises an exception if there is no Gemfile

# File lib/middleman-core/load_paths.rb, line 24
def setup_bundler
  if found_gemfile_root = findup('Gemfile', ENV['MM_ROOT'])
    ENV['BUNDLE_GEMFILE'] ||= File.join(found_gemfile_root, 'Gemfile')
  end

  unless File.exist?(ENV['BUNDLE_GEMFILE'])
    ENV['BUNDLE_GEMFILE'] = File.expand_path('../../../../Gemfile', __FILE__)
  end

  if File.exist?(ENV['BUNDLE_GEMFILE'])
    require 'bundler/setup'
    Bundler.require
  else
    raise "Couldn't find your Gemfile. Middleman projects require a Gemfile for specifying dependencies."
  end
end