Class: FixedWidthFileValidator::TextReportFormatter
- Inherits:
-
Object
- Object
- FixedWidthFileValidator::TextReportFormatter
- Defined in:
- lib/fixed_width_file_validator/report_formatter.rb
Instance Attribute Summary collapse
-
#line_no_width ⇒ Object
Returns the value of attribute line_no_width.
Instance Method Summary collapse
-
#initialize(args = {}) ⇒ TextReportFormatter
constructor
A new instance of TextReportFormatter.
- #write(err, file = $stderr) ⇒ Object
- #write_unique_errors(errors, file = $stderr) ⇒ Object
Constructor Details
#initialize(args = {}) ⇒ TextReportFormatter
Returns a new instance of TextReportFormatter.
7 8 9 |
# File 'lib/fixed_width_file_validator/report_formatter.rb', line 7 def initialize(args = {}) @line_no_width = args[:line_no_width] || 5 end |
Instance Attribute Details
#line_no_width ⇒ Object
Returns the value of attribute line_no_width.
5 6 7 |
# File 'lib/fixed_width_file_validator/report_formatter.rb', line 5 def line_no_width @line_no_width end |
Instance Method Details
#write(err, file = $stderr) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/fixed_width_file_validator/report_formatter.rb', line 11 def write(err, file = $stderr) return if err.nil? line_prefix = format("%0#{line_no_width}i:", err.line_num) marker = line_prefix + ' ' * (err.pos - 1) + '^' * err.width = line_prefix + ' ' * (err.pos - 1) + "field #{err.failed_field} does not satisfy #{err.failed_validation}" file.puts line_prefix + err.raw.chop file.puts marker file.puts file.puts end |
#write_unique_errors(errors, file = $stderr) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/fixed_width_file_validator/report_formatter.rb', line 23 def write_unique_errors(errors, file = $stderr) return if errors.empty? err = errors.first pos = err.pos - 1 width = err.width line_prefix = format("%0#{line_no_width}i:", err.line_num) errors.each { |e| file.puts line_prefix + e.raw.chop } file.puts line_prefix + ' ' * pos + '^' * width file.puts line_prefix + ' ' * pos + "field #{err.failed_field} is not #{err.failed_validation}" end |