class FashionPolice
Attributes
errors[RW]
rules[RW]
Public Class Methods
new()
click to toggle source
# File lib/fashion-police.rb, line 158 def initialize @errors = [] @rules = [ SpacesNotTabs.new, FourSpaces.new, SpacesInFunctionDeclarations.new, SpacesAroundElses.new, SpacesAroundEqualsSigns.new, SpacesAroundArgumentsInForLoops.new, SpacesAroundArgumentsInParens.new, SpacesBeforeAngleBrackets.new, SpacesAroundArgumentsInAngleBrackets.new, SpacesAroundArgumentsInSquareBrackets.new, SpacesAroundArgumentsInFunctionDeclarations.new, ColumnWidth.new ] end
Public Instance Methods
comment?(line)
click to toggle source
# File lib/fashion-police.rb, line 182 def comment?(line) line.match(/^ *\/\//) end
investigate(code)
click to toggle source
# File lib/fashion-police.rb, line 174 def investigate(code) code.split("\n").each_with_index do |line, index| next if comment?(line) line_number = index + 1 raise(BadCode) unless permit?(line_number, line) end end
permit?(line_number, string)
click to toggle source
# File lib/fashion-police.rb, line 186 def permit?(line_number, string) @rules.inject(true) do |memo, rule| unless rule.test(string) memo = false @errors << {line_number => rule.error_message} end memo end end