Class: Turbulence
- Inherits:
-
Object
show all
- Defined in:
- lib/turbulence.rb,
lib/turbulence/scm/git.rb,
lib/turbulence/version.rb,
lib/turbulence/scm/perforce.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, 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.2"
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(directory, output = nil, exclusion_pattern = nil) ⇒ Turbulence
Returns a new instance of Turbulence.
23
24
25
26
27
28
29
30
31
|
# File 'lib/turbulence.rb', line 23
def initialize(directory, output = nil, exclusion_pattern = nil)
@output = output
@metrics = {}
@exclusion_pattern = exclusion_pattern
Dir.chdir(directory) do
CALCULATORS.each(&method(:calculate_metrics_with))
end
end
|
Instance Attribute Details
#exclusion_pattern ⇒ Object
Returns the value of attribute exclusion_pattern.
20
21
22
|
# File 'lib/turbulence.rb', line 20
def exclusion_pattern
@exclusion_pattern
end
|
#metrics ⇒ Object
Returns the value of attribute metrics.
21
22
23
|
# File 'lib/turbulence.rb', line 21
def metrics
@metrics
end
|
Instance Method Details
#calculate_metrics_with(calculator) ⇒ Object
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/turbulence.rb', line 38
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, score)
end
report "\n"
end
|
#files_of_interest ⇒ Object
33
34
35
36
|
# File 'lib/turbulence.rb', line 33
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
57
58
59
|
# File 'lib/turbulence.rb', line 57
def metrics_for(filename)
@metrics[filename] ||= {}
end
|
#report(this) ⇒ Object
49
50
51
|
# File 'lib/turbulence.rb', line 49
def report(this)
@output.print this unless @output.nil?
end
|
#set_file_metric(filename, metric, value) ⇒ Object
53
54
55
|
# File 'lib/turbulence.rb', line 53
def set_file_metric(filename, metric, value)
metrics_for(filename)[metric] = value
end
|