Making sure excludes can work with a YAML array
This commit is contained in:
parent
252ca94b81
commit
53368cc3e1
|
@ -18,7 +18,7 @@ Feature: Site configuration
|
||||||
Then the _mysite directory should exist
|
Then the _mysite directory should exist
|
||||||
And I should see "Changing destination directory" in "_mysite/index.html"
|
And I should see "Changing destination directory" in "_mysite/index.html"
|
||||||
|
|
||||||
Scenario: Exclude files
|
Scenario: Exclude files inline
|
||||||
Given I have an "Rakefile" file that contains "I want to be excluded"
|
Given I have an "Rakefile" file that contains "I want to be excluded"
|
||||||
And I have an "README" file that contains "I want to be excluded"
|
And I have an "README" file that contains "I want to be excluded"
|
||||||
And I have an "index.html" file that contains "I want to be included"
|
And I have an "index.html" file that contains "I want to be included"
|
||||||
|
@ -28,6 +28,19 @@ Feature: Site configuration
|
||||||
And the "_site/Rakefile" file should not exist
|
And the "_site/Rakefile" file should not exist
|
||||||
And the "_site/README" file should not exist
|
And the "_site/README" file should not exist
|
||||||
|
|
||||||
|
Scenario: Exclude files with YAML array
|
||||||
|
Given I have an "Rakefile" file that contains "I want to be excluded"
|
||||||
|
And I have an "README" file that contains "I want to be excluded"
|
||||||
|
And I have an "index.html" file that contains "I want to be included"
|
||||||
|
And I have a configuration file with "exclude" set to:
|
||||||
|
| Value |
|
||||||
|
| README |
|
||||||
|
| Rakefile |
|
||||||
|
When I run jekyll
|
||||||
|
Then I should see "I want to be included" in "_site/index.html"
|
||||||
|
And the "_site/Rakefile" file should not exist
|
||||||
|
And the "_site/README" file should not exist
|
||||||
|
|
||||||
Scenario: Use RDiscount for markup
|
Scenario: Use RDiscount for markup
|
||||||
Given I have an "index.markdown" page that contains "[Google](http://google.com)"
|
Given I have an "index.markdown" page that contains "[Google](http://google.com)"
|
||||||
And I have a configuration file with "markdown" set to "rdiscount"
|
And I have a configuration file with "markdown" set to "rdiscount"
|
||||||
|
|
|
@ -86,10 +86,25 @@ Given /^I have a configuration file with "(.*)" set to "(.*)"$/ do |key, value|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Given /^I have a configuration file with "([^\"]*)" set to:$/ do |key, table|
|
||||||
|
File.open('_config.yml', 'w') do |f|
|
||||||
|
f.write("#{key}:\n")
|
||||||
|
table.hashes.each do |row|
|
||||||
|
f.write("- #{row["Value"]}\n")
|
||||||
|
end
|
||||||
|
f.close
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
When /^I run jekyll$/ do
|
When /^I run jekyll$/ do
|
||||||
run_jekyll
|
run_jekyll
|
||||||
end
|
end
|
||||||
|
|
||||||
|
When /^I debug jekyll$/ do
|
||||||
|
run_jekyll(:debug => true)
|
||||||
|
end
|
||||||
|
|
||||||
When /^I change "(.*)" to contain "(.*)"$/ do |file, text|
|
When /^I change "(.*)" to contain "(.*)"$/ do |file, text|
|
||||||
File.open(file, 'a') do |f|
|
File.open(file, 'a') do |f|
|
||||||
f.write(text)
|
f.write(text)
|
||||||
|
|
|
@ -10,9 +10,7 @@ TEST_DIR = File.join('/', 'tmp', 'jekyll')
|
||||||
JEKYLL_PATH = File.join(ENV['PWD'], 'bin', 'jekyll')
|
JEKYLL_PATH = File.join(ENV['PWD'], 'bin', 'jekyll')
|
||||||
|
|
||||||
def run_jekyll(opts = {})
|
def run_jekyll(opts = {})
|
||||||
if opts[:bg]
|
command = JEKYLL_PATH
|
||||||
bg = '&'
|
command << " >> /dev/null" if opts[:debug].nil?
|
||||||
end
|
system command
|
||||||
|
|
||||||
system "#{JEKYLL_PATH} >> /dev/null"
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -16,7 +16,6 @@ module Jekyll
|
||||||
self.lsi = config['lsi']
|
self.lsi = config['lsi']
|
||||||
self.pygments = config['pygments']
|
self.pygments = config['pygments']
|
||||||
self.permalink_style = config['permalink'].to_sym
|
self.permalink_style = config['permalink'].to_sym
|
||||||
|
|
||||||
self.exclude = config['exclude'] || []
|
self.exclude = config['exclude'] || []
|
||||||
|
|
||||||
self.reset
|
self.reset
|
||||||
|
@ -230,11 +229,9 @@ module Jekyll
|
||||||
def filter_entries(entries)
|
def filter_entries(entries)
|
||||||
entries = entries.reject do |e|
|
entries = entries.reject do |e|
|
||||||
unless ['_posts', '.htaccess'].include?(e)
|
unless ['_posts', '.htaccess'].include?(e)
|
||||||
# Reject backup/hidden
|
['.', '_', '#'].include?(e[0..0]) || e[-1..-1] == '~' || self.exclude.include?(e)
|
||||||
['.', '_', '#'].include?(e[0..0]) or e[-1..-1] == '~' or self.exclude.include?(e)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -53,5 +53,13 @@ class TestSite < Test::Unit::TestCase
|
||||||
assert_equal %w[foo.markdown bar.markdown baz.markdown], @site.filter_entries(ent1)
|
assert_equal %w[foo.markdown bar.markdown baz.markdown], @site.filter_entries(ent1)
|
||||||
assert_equal ent2, @site.filter_entries(ent2)
|
assert_equal ent2, @site.filter_entries(ent2)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
should "filter entries with exclude" do
|
||||||
|
excludes = %w[README TODO]
|
||||||
|
includes = %w[index.html site.css]
|
||||||
|
|
||||||
|
@site.exclude = excludes
|
||||||
|
assert_equal includes, @site.filter_entries(excludes + includes)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue