Merge branch 'master' of git://github.com/tdreyno/middleman
This commit is contained in:
commit
c6209b2869
|
@ -7,3 +7,14 @@ Feature: Build Clean
|
||||||
Then "should_be_ignored.html" should not exist at "clean-app"
|
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_ignored2.html" should not exist at "clean-app"
|
||||||
And "should_be_ignored3.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"
|
||||||
|
|
2
fixtures/clean-dir-app/config.rb
Normal file
2
fixtures/clean-dir-app/config.rb
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
activate :directory_indexes
|
1
fixtures/clean-dir-app/source/about.html
Normal file
1
fixtures/clean-dir-app/source/about.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fun times
|
|
@ -30,6 +30,8 @@ module Middleman
|
||||||
|
|
||||||
# @private
|
# @private
|
||||||
module ThorActions
|
module ThorActions
|
||||||
|
# Render a template to a file.
|
||||||
|
# @return [String] the actual destination file path that was created
|
||||||
def tilt_template(source, *args, &block)
|
def tilt_template(source, *args, &block)
|
||||||
config = args.last.is_a?(Hash) ? args.pop : {}
|
config = args.last.is_a?(Hash) ? args.pop : {}
|
||||||
destination = args.first || source
|
destination = args.first || source
|
||||||
|
@ -41,6 +43,8 @@ module Middleman
|
||||||
|
|
||||||
response = ::Middleman::Builder.shared_rack.get(request_path.gsub(/\s/, "%20"))
|
response = ::Middleman::Builder.shared_rack.get(request_path.gsub(/\s/, "%20"))
|
||||||
create_file(destination, response.body, config) if response.status == 200
|
create_file(destination, response.body, config) if response.status == 200
|
||||||
|
|
||||||
|
destination
|
||||||
# rescue
|
# rescue
|
||||||
# say_status :error, destination, :red
|
# say_status :error, destination, :red
|
||||||
# end
|
# end
|
||||||
|
@ -130,11 +134,11 @@ module Middleman
|
||||||
def queue_current_paths
|
def queue_current_paths
|
||||||
@cleaning_queue = []
|
@cleaning_queue = []
|
||||||
Find.find(@destination) do |path|
|
Find.find(@destination) do |path|
|
||||||
next if path.match(/\/\./)
|
next if path.match(/\/\./) && !path.match(/\.htaccess/)
|
||||||
unless path == destination
|
unless path == destination
|
||||||
@cleaning_queue << path.sub(@destination, destination[/([^\/]+?)$/])
|
@cleaning_queue << path.sub(@destination, destination[/([^\/]+?)$/])
|
||||||
end
|
end
|
||||||
end
|
end if File.exist?(@destination)
|
||||||
end
|
end
|
||||||
|
|
||||||
def execute!
|
def execute!
|
||||||
|
@ -154,7 +158,7 @@ module Middleman
|
||||||
file_source = path
|
file_source = path
|
||||||
file_destination = File.join(given_destination, file_source.gsub(source, '.'))
|
file_destination = File.join(given_destination, file_source.gsub(source, '.'))
|
||||||
file_destination.gsub!('/./', '/')
|
file_destination.gsub!('/./', '/')
|
||||||
|
|
||||||
if @app.sitemap.generic?(file_source)
|
if @app.sitemap.generic?(file_source)
|
||||||
# no-op
|
# no-op
|
||||||
elsif @app.sitemap.proxied?(file_source)
|
elsif @app.sitemap.proxied?(file_source)
|
||||||
|
@ -163,14 +167,14 @@ module Middleman
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
||||||
@cleaning_queue.delete(file_destination) if cleaning?
|
|
||||||
|
|
||||||
if @config[:glob]
|
if @config[:glob]
|
||||||
next unless File.fnmatch(@config[:glob], file_source)
|
next unless File.fnmatch(@config[:glob], file_source)
|
||||||
end
|
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
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue