Class: Turbulence
- Inherits:
-
Object
- Object
- Turbulence
- Extended by:
- Forwardable
- Defined in:
- lib/turbulence.rb,
lib/turbulence/scm/git.rb,
lib/turbulence/version.rb,
lib/turbulence/cli_parser.rb,
lib/turbulence/scm/perforce.rb,
lib/turbulence/configuration.rb,
lib/turbulence/calculators/churn.rb,
lib/turbulence/file_name_mangler.rb,
lib/turbulence/checks_environment.rb,
lib/turbulence/generators/treemap.rb,
lib/turbulence/calculators/complexity.rb,
lib/turbulence/command_line_interface.rb,
lib/turbulence/generators/scatterplot.rb
Defined Under Namespace
Modules: Calculators, Generators, Scm Classes: ChecksEnvironment, CommandLineInterface, Configuration, FileNameMangler
Constant Summary collapse
- CODE_DIRECTORIES =
[ "app/models", "app/controllers", "app/helpers", "app/jobs", "app/mailers", "app/validators", "lib", ]
- CALCULATORS =
[ Turbulence::Calculators::Complexity, Turbulence::Calculators::Churn, ]
- VERSION =
"1.2.4"
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#metrics ⇒ Object
readonly
Returns the value of attribute metrics.
Class Method Summary collapse
-
.config ⇒ Object
Make a config instance available to anyone who wants one.
Instance Method Summary collapse
- #calculate_metrics_with(calculator) ⇒ Object
- #files_of_interest ⇒ Object
-
#initialize(config = nil) ⇒ Turbulence
constructor
A new instance of Turbulence.
- #metrics_for(filename) ⇒ Object
- #report(this) ⇒ Object
- #set_file_metric(filename, metric, value) ⇒ Object
Constructor Details
#initialize(config = nil) ⇒ Turbulence
Returns a new instance of Turbulence.
39 40 41 42 43 44 45 46 |
# File 'lib/turbulence.rb', line 39 def initialize(config = nil) @config = config || Turbulence.config @metrics = {} Dir.chdir(directory) do calculators.each(&method(:calculate_metrics_with)) end end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
29 30 31 |
# File 'lib/turbulence.rb', line 29 def config @config end |
#metrics ⇒ Object (readonly)
Returns the value of attribute metrics.
30 31 32 |
# File 'lib/turbulence.rb', line 30 def metrics @metrics end |
Class Method Details
.config ⇒ Object
Make a config instance available to anyone who wants one
25 26 27 |
# File 'lib/turbulence.rb', line 25 def self.config @config ||= Configuration.new end |
Instance Method Details
#calculate_metrics_with(calculator) ⇒ Object
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/turbulence.rb', line 53 def calculate_metrics_with(calculator) report "calculating metric: #{calculator}\n" calculator.for_these_files(files_of_interest) do |filename, score| report "." set_file_metric(filename, calculator.class, score) end report "\n" end |
#files_of_interest ⇒ Object
48 49 50 51 |
# File 'lib/turbulence.rb', line 48 def files_of_interest file_list = CODE_DIRECTORIES.map{|base_dir| "#{base_dir}/**/*\.rb"} @ruby_files ||= exclude_files(Dir[*file_list]) end |
#metrics_for(filename) ⇒ Object
72 73 74 |
# File 'lib/turbulence.rb', line 72 def metrics_for(filename) @metrics[filename] ||= {} end |
#report(this) ⇒ Object
64 65 66 |
# File 'lib/turbulence.rb', line 64 def report(this) output.print this unless output.nil? end |
#set_file_metric(filename, metric, value) ⇒ Object
68 69 70 |
# File 'lib/turbulence.rb', line 68 def set_file_metric(filename, metric, value) metrics_for(filename)[metric] = value end |