Making sure excludes can work with a YAML array

This commit is contained in:
Nick Quaranto 2009-05-01 08:28:00 -04:00
parent 252ca94b81
commit 53368cc3e1
5 changed files with 41 additions and 10 deletions

View File

@ -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"

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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