Module: DebtCeiling

Extended by:
DebtCeiling, Forwardable
Includes:
Configurations
Included in:
DebtCeiling
Defined in:
lib/debt_ceiling/source_control_systems/base.rb,
lib/debt_ceiling.rb,
lib/debt_ceiling/debt.rb,
lib/debt_ceiling/audit.rb,
lib/debt_ceiling/version.rb,
lib/debt_ceiling/accounting.rb,
lib/debt_ceiling/custom_debt.rb,
lib/debt_ceiling/common_methods.rb,
lib/debt_ceiling/archeological_dig.rb,
lib/debt_ceiling/static_analysis_debt.rb,
lib/debt_ceiling/source_control_systems/git.rb,
lib/debt_ceiling/source_control_systems/double.rb,
lib/debt_ceiling/source_control_systems/mercurial.rb

Overview

copied from rubycritic, hope/plan to augment, pull into seperate gem and PR as shared code?

Defined Under Namespace

Modules: CommonMethods, SourceControlSystem Classes: Accounting, ArcheologicalDig, Audit, CustomDebt, Debt, StaticAnalysisDebt

Constant Summary collapse

CONFIGURATION_OPTIONS =
[
  :extension_path,
  :blacklist, :whitelist,
  :max_debt_per_module,
  :reduction_date,
  :reduction_target,
  :debt_ceiling,
  :deprecated_reference_pairs,
  :manual_callouts,
  :grade_points,
  :complexity_multiplier,
  :method_count_multiplier,
  :smells_multiplier,
  :duplication_multiplier,
  :ideal_max_line_count,
  :cost_per_line_over_ideal,
  :debt_types,
  :archeology_detail,
  :memoize_records_in_repo
]
CONFIG_FILE_NAME =
".debt_ceiling.rb"
CONFIG_LOCATIONS =
["#{Dir.pwd}/#{CONFIG_FILE_NAME}", "#{Dir.home}/#{CONFIG_FILE_NAME}"]
NO_CONFIG_FOUND =
"No #{CONFIG_FILE_NAME} configuration file detected in #{Dir.pwd} or ~/, using defaults"
VERSION =
'0.4.0'

Instance Method Summary collapse

Instance Method Details

#audit(dir = '.', opts = {}) ⇒ Object



68
69
70
# File 'lib/debt_ceiling.rb', line 68

def audit(dir='.', opts= {})
  Audit.new(dir, opts)
end

#config_arrayObject



89
90
91
# File 'lib/debt_ceiling.rb', line 89

def config_array
  CONFIGURATION_OPTIONS.map {|option| public_send(option) }
end

#config_file_locationObject



85
86
87
# File 'lib/debt_ceiling.rb', line 85

def config_file_location
  CONFIG_LOCATIONS.find {|loc| File.exist?(loc) }
end

#dig(dir = '.', opts = {}) ⇒ Object



72
73
74
75
76
# File 'lib/debt_ceiling.rb', line 72

def dig(dir='.', opts={})
  dig = ArcheologicalDig.new(dir, opts)
  puts Sparkr.sparkline(dig.records.map {|r| r['debt'] })
  dig
end

#load_configurationObject



78
79
80
81
82
83
# File 'lib/debt_ceiling.rb', line 78

def load_configuration
  config_file_location ? load(config_file_location) : puts(NO_CONFIG_FOUND)

  load extension_path if extension_path && File.exist?(extension_path)
  @loaded = true
end