Sha256: 638975b4c7607dece2f180492655516eca49f5e509084061f58335b6de4c29a6
Contents?: true
Size: 1.56 KB
Versions: 2
Compression:
Stored size: 1.56 KB
Contents
require 'codeclimate_engine' module Reek module Report # Generates a hash in the structure specified by the Code Climate engine spec class CodeClimateFormatter def initialize(warning) @warning = warning end def render CCEngine::Issue.new(check_name: check_name, description: description, categories: categories, location: location, remediation_points: remediation_points, content: content ).render end private attr_reader :warning def description [warning.context, warning.message].join(' ') end def check_name [warning.smell_category, warning.smell_type].join('/') end def categories # TODO: provide mappings for Reek's smell categories ['Complexity'] end def location warning_lines = warning.lines CCEngine::Location::LineRange.new( path: warning.source, line_range: warning_lines.first..warning_lines.last ) end def remediation_points configuration[warning.smell_type].fetch('remediation_points') end def content configuration[warning.smell_type].fetch('content') end def configuration @configuration ||= begin config_file = File.expand_path('../code_climate_configuration.yml', __FILE__) YAML.load_file config_file end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
reek-3.11 | lib/reek/report/code_climate/code_climate_formatter.rb |
reek-3.10.2 | lib/reek/report/code_climate/code_climate_formatter.rb |