Move more things over to new configs. Don't let root be configured
This commit is contained in:
parent
a50ca56fbc
commit
4fe22e3fb5
|
@ -29,26 +29,25 @@ module Middleman
|
||||||
# Ready (all loading and parsing of extensions complete) hook
|
# Ready (all loading and parsing of extensions complete) hook
|
||||||
define_hook :ready
|
define_hook :ready
|
||||||
|
|
||||||
class << self
|
# Mix-in helper methods. Accepts either a list of Modules
|
||||||
|
# and/or a block to be evaluated
|
||||||
# Mix-in helper methods. Accepts either a list of Modules
|
# @return [void]
|
||||||
# and/or a block to be evaluated
|
def self.helpers(*extensions, &block)
|
||||||
# @return [void]
|
class_eval(&block) if block_given?
|
||||||
def helpers(*extensions, &block)
|
include(*extensions) if extensions.any?
|
||||||
class_eval(&block) if block_given?
|
|
||||||
include(*extensions) if extensions.any?
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
delegate :helpers, :to => :"self.class"
|
delegate :helpers, :to => :"self.class"
|
||||||
|
|
||||||
# Root project directory (overwritten in middleman build/server)
|
# Root project directory (overwritten in middleman build/server)
|
||||||
# @return [String]
|
# @return [String]
|
||||||
config.define_setting :root, (ENV["MM_ROOT"] || Dir.pwd), 'Root project directory'
|
def self.root
|
||||||
|
ENV["MM_ROOT"] || Dir.pwd
|
||||||
|
end
|
||||||
|
delegate :root, :to => :"self.class"
|
||||||
|
|
||||||
# Pathname-addressed root
|
# Pathname-addressed root
|
||||||
def self.root_path
|
def self.root_path
|
||||||
Pathname(config[:root])
|
Pathname(root)
|
||||||
end
|
end
|
||||||
delegate :root_path, :to => :"self.class"
|
delegate :root_path, :to => :"self.class"
|
||||||
|
|
||||||
|
@ -96,14 +95,6 @@ module Middleman
|
||||||
# @return [String]
|
# @return [String]
|
||||||
config.define_setting :http_prefix, "/", 'Default prefix for building paths'
|
config.define_setting :http_prefix, "/", 'Default prefix for building paths'
|
||||||
|
|
||||||
# Default string encoding for templates and output.
|
|
||||||
# @return [String]
|
|
||||||
config.define_setting :encoding, "utf-8", 'Default string encoding for templates and output'
|
|
||||||
|
|
||||||
# Whether to catch and display exceptions
|
|
||||||
# @return [Boolean]
|
|
||||||
config.define_setting :show_exceptions, true, 'Whether to catch and display exceptions'
|
|
||||||
|
|
||||||
# Default layout name
|
# Default layout name
|
||||||
# @return [String, Symbold]
|
# @return [String, Symbold]
|
||||||
config.define_setting :layout, :_auto_layout, 'Default layout name'
|
config.define_setting :layout, :_auto_layout, 'Default layout name'
|
||||||
|
@ -182,7 +173,7 @@ module Middleman
|
||||||
#
|
#
|
||||||
# @return [String]
|
# @return [String]
|
||||||
def source_dir
|
def source_dir
|
||||||
File.join(config[:root], config[:source])
|
File.join(root, config[:source])
|
||||||
end
|
end
|
||||||
|
|
||||||
delegate :logger, :instrument, :to => ::Middleman::Util
|
delegate :logger, :instrument, :to => ::Middleman::Util
|
||||||
|
|
|
@ -114,7 +114,7 @@ module Middleman::Cli
|
||||||
# @param [Middleman::Sitemap::Resource] resource
|
# @param [Middleman::Sitemap::Resource] resource
|
||||||
# @return [String] The full path of the file that was written
|
# @return [String] The full path of the file that was written
|
||||||
def render_to_file(resource)
|
def render_to_file(resource)
|
||||||
build_dir = self.class.shared_instance.build_dir
|
build_dir = self.class.shared_instance.config[:build_dir]
|
||||||
output_file = File.join(build_dir, resource.destination_path)
|
output_file = File.join(build_dir, resource.destination_path)
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
|
|
@ -18,7 +18,7 @@ module Middleman
|
||||||
|
|
||||||
# After config
|
# After config
|
||||||
app.after_configuration do
|
app.after_configuration do
|
||||||
helpers_path = File.expand_path(config[:helpers_dir], config[:root])
|
helpers_path = File.join(root, config[:helpers_dir])
|
||||||
next unless File.exists?(helpers_path)
|
next unless File.exists?(helpers_path)
|
||||||
|
|
||||||
Dir[File.join(helpers_path, config[:helpers_filename_glob])].each do |filename|
|
Dir[File.join(helpers_path, config[:helpers_filename_glob])].each do |filename|
|
||||||
|
|
|
@ -29,7 +29,7 @@ module Middleman
|
||||||
|
|
||||||
# Before parsing config, load the data/ directory
|
# Before parsing config, load the data/ directory
|
||||||
app.before_configuration do
|
app.before_configuration do
|
||||||
files.reload_path(data_dir)
|
files.reload_path(config[:data_dir])
|
||||||
end
|
end
|
||||||
|
|
||||||
# After config, load everything else
|
# After config, load everything else
|
||||||
|
|
|
@ -62,7 +62,7 @@ module Middleman::CoreExtensions
|
||||||
def clear_data(file)
|
def clear_data(file)
|
||||||
# Copied from Sitemap::Store#file_to_path, but without
|
# Copied from Sitemap::Store#file_to_path, but without
|
||||||
# removing the file extension
|
# removing the file extension
|
||||||
file = File.expand_path(file, @app.root)
|
file = File.join(@app.root, file)
|
||||||
prefix = @app.source_dir.sub(/\/$/, "") + "/"
|
prefix = @app.source_dir.sub(/\/$/, "") + "/"
|
||||||
return unless file.include?(prefix)
|
return unless file.include?(prefix)
|
||||||
path = file.sub(prefix, "")
|
path = file.sub(prefix, "")
|
||||||
|
|
|
@ -272,7 +272,7 @@ module Middleman
|
||||||
# @return [String]
|
# @return [String]
|
||||||
def fetch_layout(engine, opts)
|
def fetch_layout(engine, opts)
|
||||||
# The layout name comes from either the system default or the options
|
# The layout name comes from either the system default or the options
|
||||||
local_layout = opts.has_key?(:layout) ? opts[:layout] : layout
|
local_layout = opts.has_key?(:layout) ? opts[:layout] : config[:layout]
|
||||||
return false unless local_layout
|
return false unless local_layout
|
||||||
|
|
||||||
# Look for engine-specific options
|
# Look for engine-specific options
|
||||||
|
|
|
@ -28,7 +28,7 @@ module Middleman
|
||||||
# @param [String, Symbol] layout_name
|
# @param [String, Symbol] layout_name
|
||||||
# @return [void]
|
# @return [void]
|
||||||
def with_layout(layout_name, &block)
|
def with_layout(layout_name, &block)
|
||||||
old_layout = layout
|
old_layout = config[:layout]
|
||||||
|
|
||||||
config[:layout] = layout_name
|
config[:layout] = layout_name
|
||||||
instance_exec(&block) if block_given?
|
instance_exec(&block) if block_given?
|
||||||
|
@ -50,7 +50,7 @@ module Middleman
|
||||||
blocks << block if block_given?
|
blocks << block if block_given?
|
||||||
|
|
||||||
# Default layout
|
# Default layout
|
||||||
opts[:layout] = layout if opts[:layout].nil?
|
opts[:layout] = config[:layout] if opts[:layout].nil?
|
||||||
|
|
||||||
# If the url is a regexp
|
# If the url is a regexp
|
||||||
if url.is_a?(Regexp) || url.include?("*")
|
if url.is_a?(Regexp) || url.include?("*")
|
||||||
|
@ -66,7 +66,7 @@ module Middleman
|
||||||
# Normalized path
|
# Normalized path
|
||||||
url = '/' + Middleman::Util.normalize_path(url)
|
url = '/' + Middleman::Util.normalize_path(url)
|
||||||
if url.end_with?('/') || File.directory?(File.join(source_dir, url))
|
if url.end_with?('/') || File.directory?(File.join(source_dir, url))
|
||||||
url = File.join(url, index_file)
|
url = File.join(url, config[:index_file])
|
||||||
end
|
end
|
||||||
|
|
||||||
# Setup proxy
|
# Setup proxy
|
||||||
|
|
|
@ -6,6 +6,10 @@ module Middleman::CoreExtensions::RubyEncoding
|
||||||
|
|
||||||
# Once registerd
|
# Once registerd
|
||||||
def registered(app)
|
def registered(app)
|
||||||
|
# Default string encoding for templates and output.
|
||||||
|
# @return [String]
|
||||||
|
app.config.define_setting :encoding, "utf-8", 'Default string encoding for templates and output'
|
||||||
|
|
||||||
app.send :include, InstanceMethods
|
app.send :include, InstanceMethods
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -15,8 +19,8 @@ module Middleman::CoreExtensions::RubyEncoding
|
||||||
module InstanceMethods
|
module InstanceMethods
|
||||||
def initialize
|
def initialize
|
||||||
if Object.const_defined?(:Encoding)
|
if Object.const_defined?(:Encoding)
|
||||||
Encoding.default_internal = encoding
|
Encoding.default_internal = config[:encoding]
|
||||||
Encoding.default_external = encoding
|
Encoding.default_external = config[:encoding]
|
||||||
end
|
end
|
||||||
|
|
||||||
super
|
super
|
||||||
|
|
|
@ -11,10 +11,14 @@ module Middleman
|
||||||
|
|
||||||
# Once registered
|
# Once registered
|
||||||
def registered(app)
|
def registered(app)
|
||||||
|
# Whether to catch and display exceptions
|
||||||
|
# @return [Boolean]
|
||||||
|
app.config.define_setting :show_exceptions, true, 'Whether to catch and display exceptions'
|
||||||
|
|
||||||
# When in dev
|
# When in dev
|
||||||
app.configure :development do
|
app.configure :development do
|
||||||
# Include middlemare
|
# Include middlemare
|
||||||
if show_exceptions
|
if config[:show_exceptions]
|
||||||
use ::Middleman::CoreExtensions::ShowExceptions::Middleware
|
use ::Middleman::CoreExtensions::ShowExceptions::Middleware
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,7 +19,7 @@ module Middleman
|
||||||
end
|
end
|
||||||
|
|
||||||
app.after_configuration do
|
app.after_configuration do
|
||||||
::Less.paths << File.expand_path(css_dir, source_dir)
|
::Less.paths << File.join(source_dir, config[:css_dir])
|
||||||
end
|
end
|
||||||
|
|
||||||
# Tell Tilt to use it as well (for inline sass blocks)
|
# Tell Tilt to use it as well (for inline sass blocks)
|
||||||
|
|
|
@ -45,7 +45,7 @@ module Middleman
|
||||||
path = @sitemap.file_to_path(file)
|
path = @sitemap.file_to_path(file)
|
||||||
return false unless path
|
return false unless path
|
||||||
|
|
||||||
ignored = @app.ignored_sitemap_matchers.any? do |name, callback|
|
ignored = @app.config[:ignored_sitemap_matchers].any? do |name, callback|
|
||||||
callback.call(file)
|
callback.call(file)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ module Middleman
|
||||||
::Middleman::Sitemap::Resource.new(
|
::Middleman::Sitemap::Resource.new(
|
||||||
@sitemap,
|
@sitemap,
|
||||||
@sitemap.file_to_path(file),
|
@sitemap.file_to_path(file),
|
||||||
File.expand_path(file, @app.root)
|
File.join(@app.root, file)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -164,7 +164,7 @@ module Middleman
|
||||||
# @param [String] file
|
# @param [String] file
|
||||||
# @return [String]
|
# @return [String]
|
||||||
def file_to_path(file)
|
def file_to_path(file)
|
||||||
file = File.expand_path(file, @app.root)
|
file = File.join(@app.root, file)
|
||||||
|
|
||||||
prefix = @app.source_dir.sub(/\/$/, "") + "/"
|
prefix = @app.source_dir.sub(/\/$/, "") + "/"
|
||||||
return false unless file.start_with?(prefix)
|
return false unless file.start_with?(prefix)
|
||||||
|
@ -172,8 +172,8 @@ module Middleman
|
||||||
path = file.sub(prefix, "")
|
path = file.sub(prefix, "")
|
||||||
|
|
||||||
# Replace a file name containing automatic_directory_matcher with a folder
|
# Replace a file name containing automatic_directory_matcher with a folder
|
||||||
unless @app.automatic_directory_matcher.nil?
|
unless @app.config[:automatic_directory_matcher].nil?
|
||||||
path = path.gsub(@app.automatic_directory_matcher, "/")
|
path = path.gsub(@app.config[:automatic_directory_matcher], "/")
|
||||||
end
|
end
|
||||||
|
|
||||||
extensionless_path(path)
|
extensionless_path(path)
|
||||||
|
|
|
@ -10,9 +10,12 @@ end
|
||||||
Given /^an empty app$/ do
|
Given /^an empty app$/ do
|
||||||
step %Q{a directory named "empty_app"}
|
step %Q{a directory named "empty_app"}
|
||||||
step %Q{I cd to "empty_app"}
|
step %Q{I cd to "empty_app"}
|
||||||
|
ENV["MM_ROOT"] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
Given /^a fixture app "([^\"]*)"$/ do |path|
|
Given /^a fixture app "([^\"]*)"$/ do |path|
|
||||||
|
ENV["MM_ROOT"] = nil
|
||||||
|
|
||||||
# This step can be reentered from several places but we don't want
|
# This step can be reentered from several places but we don't want
|
||||||
# to keep re-copying and re-cd-ing into ever-deeper directories
|
# to keep re-copying and re-cd-ing into ever-deeper directories
|
||||||
next if File.basename(current_dir) == path
|
next if File.basename(current_dir) == path
|
||||||
|
|
|
@ -40,9 +40,10 @@ Given /^the Server is running$/ do
|
||||||
ENV["MM_SOURCE"] = ""
|
ENV["MM_SOURCE"] = ""
|
||||||
end
|
end
|
||||||
|
|
||||||
|
ENV["MM_ROOT"] = root_dir
|
||||||
|
|
||||||
initialize_commands = @initialize_commands || []
|
initialize_commands = @initialize_commands || []
|
||||||
initialize_commands.unshift lambda {
|
initialize_commands.unshift lambda {
|
||||||
set :root, root_dir
|
|
||||||
set :environment, @current_env || :development
|
set :environment, @current_env || :development
|
||||||
set :show_exceptions, false
|
set :show_exceptions, false
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue