class ALineEnding
Parse, model, and print a line ending. Distinct from Ruby's built-in Encoding class.
Attributes
filename[RW]
final_eol[RW]
line_ending[RW]
Public Class Methods
new(filename, line_ending, final_eol)
click to toggle source
# File lib/lili.rb, line 81 def initialize(filename, line_ending, final_eol) @filename = filename @line_ending = line_ending @final_eol = final_eol end
parse(filename, report)
click to toggle source
# File lib/lili.rb, line 77 def self.parse(filename, report) ALineEnding.new(filename, report.line_ending.to_s, report.final_eol.to_s) end
Public Instance Methods
to_s(line_ending_difference = false)
click to toggle source
# File lib/lili.rb, line 111 def to_s(line_ending_difference = false) if line_ending_difference observed = line_ending_difference[0] preferred = line_ending_difference[1].inspect if observed == NO_SUCH_FILE "#{@filename}: #{NO_SUCH_FILE}" else "#{@filename}: observed #{observed} preferred: #{preferred}" end else "#{@filename}: #{@line_ending}" end end
violate?(rules)
click to toggle source
# File lib/lili.rb, line 87 def violate?(rules) preferred = rules.select do |rule| Dotsmack::fnmatch?(rule.first, @filename) end.first[1] preferred_line_ending = preferred[0] preferred_final_eol = preferred[1] if ! (@line_ending =~ preferred_line_ending) [@line_ending, preferred_line_ending] elsif ! (@final_eol =~ preferred_final_eol) [ if !final_eol 'with final eol' else 'without final eol' end, preferred_final_eol ] else false end end