Merge pull request #179 from bhollis/master

Fix two bugs around "build --clean"
This commit is contained in:
Thomas Reynolds 2011-11-30 23:57:16 -08:00
commit f1074ed1e2
4 changed files with 25 additions and 7 deletions

View file

@ -7,3 +7,14 @@ Feature: Build Clean
Then "should_be_ignored.html" should not exist at "clean-app"
And "should_be_ignored2.html" should not exist at "clean-app"
And "should_be_ignored3.html" should not exist at "clean-app"
Scenario: Clean an app with directory indexes
Given a built app at "clean-dir-app"
Then "about/index.html" should exist at "clean-dir-app"
Given a built app at "clean-dir-app" with flags "--clean"
Then "about/index.html" should exist at "clean-dir-app"
Then cleanup built app at "clean-dir-app"
Scenario: Clean build an app that's never been built
Given a built app at "clean-dir-app" with flags "--clean"
Then "about/index.html" should exist at "clean-dir-app"

View file

@ -0,0 +1,2 @@
activate :directory_indexes

View file

@ -0,0 +1 @@
Fun times

View file

@ -30,6 +30,8 @@ module Middleman
# @private
module ThorActions
# Render a template to a file.
# @return [String] the actual destination file path that was created
def tilt_template(source, *args, &block)
config = args.last.is_a?(Hash) ? args.pop : {}
destination = args.first || source
@ -41,6 +43,8 @@ module Middleman
response = ::Middleman::Builder.shared_rack.get(request_path.gsub(/\s/, "%20"))
create_file(destination, response.body, config) if response.status == 200
destination
# rescue
# say_status :error, destination, :red
# end
@ -130,11 +134,11 @@ module Middleman
def queue_current_paths
@cleaning_queue = []
Find.find(@destination) do |path|
next if path.match(/\/\./)
next if path.match(/\/\./) && !path.match(/\.htaccess/)
unless path == destination
@cleaning_queue << path.sub(@destination, destination[/([^\/]+?)$/])
end
end
end if File.exist?(@destination)
end
def execute!
@ -163,13 +167,13 @@ module Middleman
next
end
@cleaning_queue.delete(file_destination) if cleaning?
if @config[:glob]
next unless File.fnmatch(@config[:glob], file_source)
end
base.tilt_template(file_source, file_destination, { :force => true })
file_destination = base.tilt_template(file_source, file_destination, { :force => true })
@cleaning_queue.delete(file_destination) if cleaning?
end
end
end