Class: Middleman::RemoveIndent::Extension
- Inherits:
-
Extension
- Object
- Extension
- Middleman::RemoveIndent::Extension
- Defined in:
- lib/middleman-remove-indent/extension.rb
Overview
Middleman Remove Indent Extension
Instance Method Summary collapse
-
#initialize(app, options_hash = {}, &block) ⇒ Extension
constructor
A new instance of Extension.
- #remove_indent(line) ⇒ Object
- #target_files(dir, exts) ⇒ Object
- #update_file!(target_files) ⇒ Object
Constructor Details
#initialize(app, options_hash = {}, &block) ⇒ Extension
Returns a new instance of Extension.
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/middleman-remove-indent/extension.rb', line 8 def initialize(app, = {}, &block) super extension = self build_dir = app.config.build_dir exts = .exts exts = Array(exts) if exts.instance_of? String app.after_build do targets = extension.target_files(build_dir, exts) extension.update_file!(targets) end end |
Instance Method Details
#remove_indent(line) ⇒ Object
42 43 44 45 |
# File 'lib/middleman-remove-indent/extension.rb', line 42 def remove_indent(line) line.gsub!(/^(\s|\t)+/, '') (line.empty? && !.remove_blank_line) ? "\n" : line end |
#target_files(dir, exts) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/middleman-remove-indent/extension.rb', line 21 def target_files(dir, exts) paths = [] exts.each do |ext| paths.concat(Dir.glob(dir + "/**/*#{ext}")) end paths end |
#update_file!(target_files) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/middleman-remove-indent/extension.rb', line 29 def update_file!(target_files) target_files.each do |file| open(file) do |f| data = [] f.each_line do |line| line = remove_indent(line) data.push(line) end File.write(file, data.join) end end end |