From 04fd68a232258e004caa59c4e3c6b9e008896f1a Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Fri, 12 Apr 2013 21:19:20 +0200 Subject: [PATCH] Move Jekyll::DEFAULTS to Jekyll::Configuration::DEFAULTS --- lib/jekyll.rb | 68 ++----------------------------------- lib/jekyll/site.rb | 2 +- test/test_configuration.rb | 16 ++++----- test/test_generated_site.rb | 6 ++-- test/test_page.rb | 2 +- test/test_pager.rb | 4 +-- test/test_post.rb | 6 ++-- test/test_site.rb | 32 ++++++++--------- test/test_tags.rb | 2 +- 9 files changed, 37 insertions(+), 101 deletions(-) diff --git a/lib/jekyll.rb b/lib/jekyll.rb index b3f6b22f..12082194 100644 --- a/lib/jekyll.rb +++ b/lib/jekyll.rb @@ -28,6 +28,7 @@ require 'pygments' # internal requires require 'jekyll/core_ext' +require 'jekyll/configuration' require 'jekyll/site' require 'jekyll/convertible' require 'jekyll/layout' @@ -54,76 +55,11 @@ SafeYAML::OPTIONS[:suppress_warnings] = true module Jekyll VERSION = '1.0.0.beta4' - # Default options. Overriden by values in _config.yml. - # Strings rather than symbols are used for compatability with YAML. - DEFAULTS = { - 'source' => Dir.pwd, - 'destination' => File.join(Dir.pwd, '_site'), - 'plugins' => '_plugins', - 'layouts' => '_layouts', - 'keep_files' => ['.git','.svn'], - - 'future' => true, # remove and make true just default - 'pygments' => true, # remove and make true just default - - 'markdown' => 'maruku', - 'permalink' => 'date', - 'baseurl' => '/', - 'include' => ['.htaccess'], - 'paginate_path' => 'page:num', - - 'markdown_ext' => 'markdown,mkd,mkdn,md', - 'textile_ext' => 'textile', - - 'port' => '4000', - 'host' => '0.0.0.0', - - 'excerpt_separator' => "\n\n", - - 'maruku' => { - 'use_tex' => false, - 'use_divs' => false, - 'png_engine' => 'blahtex', - 'png_dir' => 'images/latex', - 'png_url' => '/images/latex' - }, - - 'rdiscount' => { - 'extensions' => [] - }, - - 'redcarpet' => { - 'extensions' => [] - }, - - 'kramdown' => { - 'auto_ids' => true, - 'footnote_nr' => 1, - 'entity_output' => 'as_char', - 'toc_levels' => '1..6', - 'smart_quotes' => 'lsquo,rsquo,ldquo,rdquo', - 'use_coderay' => false, - - 'coderay' => { - 'coderay_wrap' => 'div', - 'coderay_line_numbers' => 'inline', - 'coderay_line_number_start' => 1, - 'coderay_tab_width' => 4, - 'coderay_bold_every' => 10, - 'coderay_css' => 'style' - } - }, - - 'redcloth' => { - 'hard_breaks' => true - } - } - # Public: Generate a Jekyll configuration Hash by merging the default # options with anything in _config.yml, and adding the given options on top. # # override - A Hash of config directives that override any options in both - # the defaults and the config file. See Jekyll::DEFAULTS for a + # the defaults and the config file. See Jekyll::Configuration::DEFAULTS for a # list of option names and their defaults. # # Returns the final configuration Hash. diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index d5901886..6e23edf4 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -97,7 +97,7 @@ module Jekyll # # Returns an Array of plugin search paths def plugins_path - if (config['plugins'] == Jekyll::DEFAULTS['plugins']) + if (config['plugins'] == Jekyll::Configuration::DEFAULTS['plugins']) [File.join(self.source, config['plugins'])] else Array(config['plugins']).map { |d| File.expand_path(d) } diff --git a/test/test_configuration.rb b/test/test_configuration.rb index 988d1c7d..64975552 100644 --- a/test/test_configuration.rb +++ b/test/test_configuration.rb @@ -9,20 +9,20 @@ class TestConfiguration < Test::Unit::TestCase should "fire warning with no _config.yml" do mock(YAML).safe_load_file(@path) { raise SystemCallError, "No such file or directory - #{@path}" } mock($stderr).puts("Configuration file: none") - assert_equal Jekyll::DEFAULTS, Jekyll.configuration({}) + assert_equal Jekyll::Configuration::DEFAULTS, Jekyll.configuration({}) end should "load configuration as hash" do mock(YAML).safe_load_file(@path) { Hash.new } mock($stdout).puts("Configuration file: #{@path}") - assert_equal Jekyll::DEFAULTS, Jekyll.configuration({}) + assert_equal Jekyll::Configuration::DEFAULTS, Jekyll.configuration({}) end should "fire warning with bad config" do mock(YAML).safe_load_file(@path) { Array.new } mock($stderr).puts(" WARNING: Error reading configuration. Using defaults (and options).") mock($stderr).puts("Configuration file: (INVALID) #{@path}") - assert_equal Jekyll::DEFAULTS, Jekyll.configuration({}) + assert_equal Jekyll::Configuration::DEFAULTS, Jekyll.configuration({}) end end context "loading config from external file" do @@ -37,19 +37,19 @@ class TestConfiguration < Test::Unit::TestCase should "load default config if no config_file is set" do mock(YAML).safe_load_file(@paths[:default]) { Hash.new } mock($stdout).puts("Configuration file: #{@paths[:default]}") - assert_equal Jekyll::DEFAULTS, Jekyll.configuration({}) + assert_equal Jekyll::Configuration::DEFAULTS, Jekyll.configuration({}) end should "load different config if specified" do mock(YAML).safe_load_file(@paths[:other]) { {"baseurl" => "http://wahoo.dev"} } mock($stdout).puts("Configuration file: #{@paths[:other]}") - assert_equal Jekyll::DEFAULTS.deep_merge({ "baseurl" => "http://wahoo.dev" }), Jekyll.configuration({ "config" => @paths[:other] }) + assert_equal Jekyll::Configuration::DEFAULTS.deep_merge({ "baseurl" => "http://wahoo.dev" }), Jekyll.configuration({ "config" => @paths[:other] }) end should "load default config if path passed is empty" do mock(YAML).safe_load_file(@paths[:default]) { Hash.new } mock($stdout).puts("Configuration file: #{@paths[:default]}") - assert_equal Jekyll::DEFAULTS, Jekyll.configuration({ "config" => @paths[:empty] }) + assert_equal Jekyll::Configuration::DEFAULTS, Jekyll.configuration({ "config" => @paths[:empty] }) end should "load multiple config files" do @@ -57,7 +57,7 @@ class TestConfiguration < Test::Unit::TestCase mock(YAML).safe_load_file(@paths[:other]) { Hash.new } mock($stdout).puts("Configuration file: #{@paths[:default]}") mock($stdout).puts("Configuration file: #{@paths[:other]}") - assert_equal Jekyll::DEFAULTS, Jekyll.configuration({ "config" => [@paths[:default], @paths[:other]] }) + assert_equal Jekyll::Configuration::DEFAULTS, Jekyll.configuration({ "config" => [@paths[:default], @paths[:other]] }) end should "load multiple config files and last config should win" do @@ -65,7 +65,7 @@ class TestConfiguration < Test::Unit::TestCase mock(YAML).safe_load_file(@paths[:other]) { {"baseurl" => "http://wahoo.dev"} } mock($stdout).puts("Configuration file: #{@paths[:default]}") mock($stdout).puts("Configuration file: #{@paths[:other]}") - assert_equal Jekyll::DEFAULTS.deep_merge({ "baseurl" => "http://wahoo.dev" }), Jekyll.configuration({ "config" => [@paths[:default], @paths[:other]] }) + assert_equal Jekyll::Configuration::DEFAULTS.deep_merge({ "baseurl" => "http://wahoo.dev" }), Jekyll.configuration({ "config" => [@paths[:default], @paths[:other]] }) end end end diff --git a/test/test_generated_site.rb b/test/test_generated_site.rb index 56413466..ca676861 100644 --- a/test/test_generated_site.rb +++ b/test/test_generated_site.rb @@ -5,7 +5,7 @@ class TestGeneratedSite < Test::Unit::TestCase setup do clear_dest stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir}) + Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir}) end @site = Site.new(Jekyll.configuration) @@ -46,7 +46,7 @@ class TestGeneratedSite < Test::Unit::TestCase setup do clear_dest stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'limit_posts' => 5}) + Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'limit_posts' => 5}) end @site = Site.new(Jekyll.configuration) @@ -62,7 +62,7 @@ class TestGeneratedSite < Test::Unit::TestCase assert_raise ArgumentError do clear_dest stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'limit_posts' => 0}) + Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'limit_posts' => 0}) end @site = Site.new(Jekyll.configuration) diff --git a/test/test_page.rb b/test/test_page.rb index fda7cd9c..58e7b1fa 100644 --- a/test/test_page.rb +++ b/test/test_page.rb @@ -15,7 +15,7 @@ class TestPage < Test::Unit::TestCase context "A Page" do setup do clear_dest - stub(Jekyll).configuration { Jekyll::DEFAULTS } + stub(Jekyll).configuration { Jekyll::Configuration::DEFAULTS } @site = Site.new(Jekyll.configuration) end diff --git a/test/test_pager.rb b/test/test_pager.rb index 4d420f79..fe1156ca 100644 --- a/test/test_pager.rb +++ b/test/test_pager.rb @@ -14,7 +14,7 @@ class TestPager < Test::Unit::TestCase context "pagination disabled" do setup do stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({ + Jekyll::Configuration::DEFAULTS.merge({ 'source' => source_dir, 'destination' => dest_dir }) @@ -31,7 +31,7 @@ class TestPager < Test::Unit::TestCase context "pagination enabled for 2" do setup do stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({ + Jekyll::Configuration::DEFAULTS.merge({ 'source' => source_dir, 'destination' => dest_dir, 'paginate' => 2 diff --git a/test/test_post.rb b/test/test_post.rb index 62da1343..e57c7c6a 100644 --- a/test/test_post.rb +++ b/test/test_post.rb @@ -13,7 +13,7 @@ class TestPost < Test::Unit::TestCase context "A Post" do setup do clear_dest - stub(Jekyll).configuration { Jekyll::DEFAULTS } + stub(Jekyll).configuration { Jekyll::Configuration::DEFAULTS } @site = Site.new(Jekyll.configuration) end @@ -344,7 +344,7 @@ class TestPost < Test::Unit::TestCase context "when in a site" do setup do clear_dest - stub(Jekyll).configuration { Jekyll::DEFAULTS } + stub(Jekyll).configuration { Jekyll::Configuration::DEFAULTS } @site = Site.new(Jekyll.configuration) @site.posts = [setup_post('2008-02-02-published.textile'), setup_post('2009-01-27-categories.textile')] @@ -537,7 +537,7 @@ class TestPost < Test::Unit::TestCase context "converter file extension settings" do setup do - stub(Jekyll).configuration { Jekyll::DEFAULTS } + stub(Jekyll).configuration { Jekyll::Configuration::DEFAULTS } @site = Site.new(Jekyll.configuration) end diff --git a/test/test_site.rb b/test/test_site.rb index 57b29f16..e8eb104d 100644 --- a/test/test_site.rb +++ b/test/test_site.rb @@ -3,49 +3,49 @@ require 'helper' class TestSite < Test::Unit::TestCase context "configuring sites" do should "have an array for plugins by default" do - site = Site.new(Jekyll::DEFAULTS) + site = Site.new(Jekyll::Configuration::DEFAULTS) assert_equal [File.join(Dir.pwd, '_plugins')], site.plugins end should "look for plugins under the site directory by default" do - site = Site.new(Jekyll::DEFAULTS.merge({'source' => File.expand_path(source_dir)})) + site = Site.new(Jekyll::Configuration::DEFAULTS.merge({'source' => File.expand_path(source_dir)})) assert_equal [File.join(source_dir, '_plugins')], site.plugins end should "have an array for plugins if passed as a string" do - site = Site.new(Jekyll::DEFAULTS.merge({'plugins' => '/tmp/plugins'})) + site = Site.new(Jekyll::Configuration::DEFAULTS.merge({'plugins' => '/tmp/plugins'})) assert_equal ['/tmp/plugins'], site.plugins end should "have an array for plugins if passed as an array" do - site = Site.new(Jekyll::DEFAULTS.merge({'plugins' => ['/tmp/plugins', '/tmp/otherplugins']})) + site = Site.new(Jekyll::Configuration::DEFAULTS.merge({'plugins' => ['/tmp/plugins', '/tmp/otherplugins']})) assert_equal ['/tmp/plugins', '/tmp/otherplugins'], site.plugins end should "have an empty array for plugins if nothing is passed" do - site = Site.new(Jekyll::DEFAULTS.merge({'plugins' => []})) + site = Site.new(Jekyll::Configuration::DEFAULTS.merge({'plugins' => []})) assert_equal [], site.plugins end should "have an empty array for plugins if nil is passed" do - site = Site.new(Jekyll::DEFAULTS.merge({'plugins' => nil})) + site = Site.new(Jekyll::Configuration::DEFAULTS.merge({'plugins' => nil})) assert_equal [], site.plugins end should "expose default baseurl" do - site = Site.new(Jekyll::DEFAULTS) - assert_equal Jekyll::DEFAULTS['baseurl'], site.baseurl + site = Site.new(Jekyll::Configuration::DEFAULTS) + assert_equal Jekyll::Configuration::DEFAULTS['baseurl'], site.baseurl end should "expose baseurl passed in from config" do - site = Site.new(Jekyll::DEFAULTS.merge({'baseurl' => '/blog'})) + site = Site.new(Jekyll::Configuration::DEFAULTS.merge({'baseurl' => '/blog'})) assert_equal '/blog', site.baseurl end end context "creating sites" do setup do stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir}) + Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir}) end @site = Site.new(Jekyll.configuration) end @@ -205,7 +205,7 @@ class TestSite < Test::Unit::TestCase should "filter symlink entries when safe mode enabled" do stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => true}) + Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => true}) end site = Site.new(Jekyll.configuration) stub(File).symlink?('symlink.js') {true} @@ -221,7 +221,7 @@ class TestSite < Test::Unit::TestCase should "not include symlinks in safe mode" do stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => true}) + Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => true}) end site = Site.new(Jekyll.configuration) @@ -232,7 +232,7 @@ class TestSite < Test::Unit::TestCase should "include symlinks in unsafe mode" do stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => false}) + Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => false}) end site = Site.new(Jekyll.configuration) @@ -244,7 +244,7 @@ class TestSite < Test::Unit::TestCase context 'error handling' do should "raise if destination is included in source" do stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => source_dir}) + Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => source_dir}) end assert_raise Jekyll::FatalException do @@ -254,7 +254,7 @@ class TestSite < Test::Unit::TestCase should "raise if destination is source" do stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => File.join(source_dir, "..")}) + Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => File.join(source_dir, "..")}) end assert_raise Jekyll::FatalException do @@ -303,7 +303,7 @@ class TestSite < Test::Unit::TestCase end should 'remove orphaned files in destination - keep_files .svn' do - config = Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'keep_files' => ['.svn']}) + config = Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'keep_files' => ['.svn']}) @site = Site.new(config) @site.process assert !File.exist?(dest_dir('.htpasswd')) diff --git a/test/test_tags.rb b/test/test_tags.rb index f7916fc5..0ba6b647 100644 --- a/test/test_tags.rb +++ b/test/test_tags.rb @@ -6,7 +6,7 @@ class TestTags < Test::Unit::TestCase def create_post(content, override = {}, converter_class = Jekyll::Converters::Markdown) stub(Jekyll).configuration do - Jekyll::DEFAULTS.deep_merge({'pygments' => true}).deep_merge(override) + Jekyll::Configuration::DEFAULTS.deep_merge({'pygments' => true}).deep_merge(override) end site = Site.new(Jekyll.configuration)