Class: DontRepeatYourself::DefaultFormatter
- Inherits:
-
Object
- Object
- DontRepeatYourself::DefaultFormatter
- Defined in:
- lib/dont_repeat_yourself/formatter.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#simian_results ⇒ Object
readonly
Returns the value of attribute simian_results.
Instance Method Summary collapse
- #format_duplicate_lines_snippet(block) ⇒ Object
-
#format_sentence_between_lines_x_and_y_in_filepath(block) ⇒ Object
Default, return the sentence.
-
#initialize(snippet_extractor, simian_results) ⇒ DefaultFormatter
constructor
Inject dependency thtough.
- #report ⇒ Object
-
#report_body ⇒ Object
Protected methods to be used by formatters protected.
Constructor Details
#initialize(snippet_extractor, simian_results) ⇒ DefaultFormatter
Inject dependency thtough
22 23 24 25 |
# File 'lib/dont_repeat_yourself/formatter.rb', line 22 def initialize(snippet_extractor, simian_results) @snippet_extractor = snippet_extractor @simian_results = simian_results end |
Instance Attribute Details
#simian_results ⇒ Object (readonly)
Returns the value of attribute simian_results.
19 20 21 |
# File 'lib/dont_repeat_yourself/formatter.rb', line 19 def simian_results @simian_results end |
Instance Method Details
#format_duplicate_lines_snippet(block) ⇒ Object
53 54 55 56 |
# File 'lib/dont_repeat_yourself/formatter.rb', line 53 def format_duplicate_lines_snippet(block) snippet = "Duplicate lines:\n" snippet << @snippet_extractor.plain_source_code(block.line_number_of_first_duplicate_line, block.line_number_of_last_duplicate_line, block.file_path) end |
#format_sentence_between_lines_x_and_y_in_filepath(block) ⇒ Object
Default, return the sentence
49 50 51 |
# File 'lib/dont_repeat_yourself/formatter.rb', line 49 def format_sentence_between_lines_x_and_y_in_filepath(block) block.sentence_between_lines_x_and_y_in_filepath end |
#report ⇒ Object
27 28 29 |
# File 'lib/dont_repeat_yourself/formatter.rb', line 27 def report report_body.gsub(/TWO_SPACE_CHARS/, " ") end |
#report_body ⇒ Object
Protected methods to be used by formatters
protected
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/dont_repeat_yourself/formatter.rb', line 34 def report_body body = "" body << @simian_results.sentence_processed_a_total_of_x_significant_lines_in_y_files << "\n" body << @simian_results.sentence_found_x_duplicate_lines_in_y_blocks_in_z_files << "\n\n" @simian_results.sets.each{|set| body << set.sentence_found_x_duplicate_lines_in_the_following_files << "\n" set.blocks.each{ |block| body << "TWO_SPACE_CHARS" << format_sentence_between_lines_x_and_y_in_filepath(block) << "\n" } body << "TWO_SPACE_CHARS" << format_duplicate_lines_snippet(set.blocks.last) << "\n" } body end |