Sha256: 57dc34ad9d93b8f348658882163f76326fd333b7f774528c6af847406ffadbf9

Contents?: true

Size: 651 Bytes

Versions: 24

Compression:

Stored size: 651 Bytes

Contents

module SSHScan
  # A very crude means of translating # of compliance recommendations into a a grade
  # Basic formula is 100 - (# of recommendations * 10)
  class Grader
    GRADE_MAP = {
      91..100 => "A",
      81..90 => "B",
      71..80 => "C",
      61..70 => "D",
      0..60 => "F",
    }

    def initialize(result)
      @result = result
    end

    def grade
      score = 100

      if @result.compliance_recommendations.each do |recommendation|
          score -= 10
        end
      end

      GRADE_MAP.each do |score_range,grade|
        if score_range.include?(score)
          return grade
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
ssh_scan-0.0.44 lib/ssh_scan/grader.rb
ssh_scan-0.0.43 lib/ssh_scan/grader.rb
ssh_scan-0.0.42 lib/ssh_scan/grader.rb
ssh_scan-0.0.41 lib/ssh_scan/grader.rb
ssh_scan-0.0.40 lib/ssh_scan/grader.rb
ssh_scan-0.0.39 lib/ssh_scan/grader.rb
ssh_scan-0.0.38 lib/ssh_scan/grader.rb
ssh_scan-0.0.38.pre lib/ssh_scan/grader.rb
ssh_scan-0.0.37 lib/ssh_scan/grader.rb
ssh_scan-0.0.36 lib/ssh_scan/grader.rb
ssh_scan-0.0.35 lib/ssh_scan/grader.rb
ssh_scan-0.0.34 lib/ssh_scan/grader.rb
ssh_scan-0.0.33 lib/ssh_scan/grader.rb
ssh_scan-0.0.32 lib/ssh_scan/grader.rb
ssh_scan-0.0.31 lib/ssh_scan/grader.rb
ssh_scan-0.0.30 lib/ssh_scan/grader.rb
ssh_scan-0.0.29 lib/ssh_scan/grader.rb
ssh_scan-0.0.28 lib/ssh_scan/grader.rb
ssh_scan-0.0.27 lib/ssh_scan/grader.rb
ssh_scan-0.0.26 lib/ssh_scan/grader.rb