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