class RubyCriticSmallBadge::Report

Basic Badge Formater Class that creates the badges.

Public Class Methods

new(analysed_modules) click to toggle source
# File lib/rubycritic_small_badge/report.rb, line 9
def initialize(analysed_modules)
  @config = RubyCriticSmallBadge.config
  @analysed_modules = analysed_modules
end

Public Instance Methods

generate_report() click to toggle source
# File lib/rubycritic_small_badge/report.rb, line 14
def generate_report
  mk_output_dir!
  score =  @analysed_modules.score
  @image = RepoSmallBadge::Image.new(map_image_config(state(score)))
  badge('score', 'score', score)
  true
end

Private Instance Methods

badge(name, title, score) click to toggle source
# File lib/rubycritic_small_badge/report.rb, line 32
def badge(name, title, score)
  value_txt = score_text(score)
  @image.config_merge(map_image_config(state(score)))
  @image.badge(name, title, value_txt)
end
map_image_config(state) click to toggle source
# File lib/rubycritic_small_badge/report.rb, line 54
def map_image_config(state)
  hash = {}
  @config.to_hash.map do |key, value|
    key = key
          .to_s.sub(/^score_background_#{state}/, 'value_background')
          .to_sym
    key = key.to_s.sub(/^score_/, 'value_').to_sym
    hash[key] = value
  end
  hash
end
max_score() click to toggle source
# File lib/rubycritic_small_badge/report.rb, line 24
def max_score
  100.0
end
mk_output_dir!() click to toggle source
# File lib/rubycritic_small_badge/report.rb, line 28
def mk_output_dir!
  FileUtils.mkdir_p(@config.output_path)
end
score_text(score) click to toggle source
# File lib/rubycritic_small_badge/report.rb, line 38
def score_text(score)
  "#{score}/#{max_score}"
end
state(value) click to toggle source
# File lib/rubycritic_small_badge/report.rb, line 42
def state(value)
  if @config.minimum_score&.positive?
    if value >= @config.minimum_score
      'good'
    else
      'bad'
    end
  else
    'unknown'
  end
end