Skip to content

Instantly share code, notes, and snippets.

@yukihr
Last active December 18, 2015 04:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yukihr/5727163 to your computer and use it in GitHub Desktop.
Save yukihr/5727163 to your computer and use it in GitHub Desktop.
Rake Task to convert ERB to Slim using html2slim gem.
# Rake convert:erb2:slim converts every ERB files under `/app/views/**`.
# Original ERB files will be kept otherwise `delete` option is passed like:
# `$ rake "convert:erb2:slim[delete]"` .
namespace :convert do
namespace :erb2 do
ERBS = FileList["#{Rails.root}/app/views/**/*.erb"]
### Slim
require 'html2slim'
# generate tasks for slim files
slims = ERBS.map do |erb|
slim = erb.sub(/\.erb$/, '.slim')
file slim, [:option] => [erb] do |_task, args|
puts "conventing #{erb} .."
File.open erb, 'r' do |f|
content = HTML2Slim.convert!(f, :erb)
IO.write(slim, content)
end
puts "convented to #{slim} ."
if args[:option] == 'delete'
File.delete(erb)
puts "deleted #{erb} ."
end
end
slim
end
desc 'Convert erb tempaltes to slim. `rake "convert:erb2:slim[delete]"` to delete source erb files'
task :slim, [:option] => slims
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment