Try to load _config.yaml if _config.yml is nonexistent.

This commit is contained in:
Yihang Ho 2014-05-14 10:07:00 +08:00
parent 8fc1e4b5ea
commit 658a4d0b47
2 changed files with 14 additions and 2 deletions

View File

@ -123,7 +123,10 @@ module Jekyll
# Get configuration from <source>/_config.yml or <source>/<config_file>
config_files = override.delete('config')
if config_files.to_s.empty?
config_files = File.join(source(override), "_config.yml")
default = %w[yml yaml].find(Proc.new { 'yml' }) do |ext|
File.exists? Jekyll.sanitized_path(source(override), "_config.#{ext}")
end
config_files = Jekyll.sanitized_path(source(override), "_config.#{default}")
@default_config_file = true
end
config_files = [config_files] unless config_files.is_a? Array

View File

@ -39,7 +39,16 @@ class TestConfiguration < Test::Unit::TestCase
assert @config.config_files(@multiple_files).is_a?(Array)
end
should "return the default config path if no config files are specified" do
assert_equal [File.join(source_dir, "_config.yml")], @config.config_files(@no_override)
assert_equal [source_dir("_config.yml")], @config.config_files(@no_override)
end
should "return .yaml if it exists but .yml does not" do
mock(File).exists?(source_dir("_config.yml")) { false }
mock(File).exists?(source_dir("_config.yaml")) { true }
assert_equal [source_dir("_config.yaml")], @config.config_files(@no_override)
end
should "return .yml if both .yml and .yaml exist" do
mock(File).exists?(source_dir("_config.yml")) { true }
assert_equal [source_dir("_config.yml")], @config.config_files(@no_override)
end
should "return the config if given one config file" do
assert_equal %w[config.yml], @config.config_files(@one_config_file)