diff --git a/lib/jekyll/configuration.rb b/lib/jekyll/configuration.rb index 0c68365a..20bbbb67 100644 --- a/lib/jekyll/configuration.rb +++ b/lib/jekyll/configuration.rb @@ -123,7 +123,10 @@ module Jekyll # Get configuration from /_config.yml or / 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 diff --git a/test/test_configuration.rb b/test/test_configuration.rb index bfb37adf..bdb4dc83 100644 --- a/test/test_configuration.rb +++ b/test/test_configuration.rb @@ -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)