From 8deeaa8e39ede52e29500cbca750576139fe135d Mon Sep 17 00:00:00 2001 From: Jason Langenauer Date: Sat, 21 Aug 2010 17:00:21 +1000 Subject: [PATCH] Don't indent HEREDOCs --- lib/eden/formatters/indenter.rb | 1 + test/indenter_test.rb | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/lib/eden/formatters/indenter.rb b/lib/eden/formatters/indenter.rb index cf71b76..ad0e165 100644 --- a/lib/eden/formatters/indenter.rb +++ b/lib/eden/formatters/indenter.rb @@ -3,6 +3,7 @@ def self.format( source_file ) return unless options[:adjust_indents] @current_indent = 0 source_file.each_line do |line| + next if line.tokens[0] && line.tokens[0].is?(:heredoc_body) calculate_pre_indent(line) adjust_indent(line) calculate_post_indent(line) diff --git a/test/indenter_test.rb b/test/indenter_test.rb index bc56ac7..3928f05 100644 --- a/test/indenter_test.rb +++ b/test/indenter_test.rb @@ -42,6 +42,26 @@ def test_should_use_correct_indent_character_when_indenting end end + def test_should_not_indent_heredoc + @sf.stubs(:source).returns(<<-SOURCE) +class Test +def function +rah = <<-HEREDOC +rah234 +HEREDOC +end +end +SOURCE + @sf.tokenize! + Indenter.format( @sf ) + assert_equal "class Test\n", @sf.lines[0].joined_tokens + assert_equal " def function\n", @sf.lines[1].joined_tokens + assert_equal " rah = <<-HEREDOC\n", @sf.lines[2].joined_tokens + assert_equal "rah234\nHEREDOC\n", @sf.lines[3].joined_tokens + assert_equal " end\n", @sf.lines[4].joined_tokens + assert_equal "end\n", @sf.lines[5].joined_tokens + end + def test_should_indent_function_body @sf.stubs(:source).returns("def function\nreturn nil\nend\n") @sf.tokenize!