Class: Turbulence
- Inherits:
-
Object
show all
- 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
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(config = nil) ⇒ 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
Returns the value of attribute config.
29
30
31
|
# File 'lib/turbulence.rb', line 29
def config
@config
end
|
#metrics ⇒ Object
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
|