metric_fu 4.11.3 → 4.11.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.rubocop.yml +15 -0
  5. data/.rubocop_todo.yml +69 -0
  6. data/.travis.yml +0 -1
  7. data/CONTRIBUTORS +1 -1
  8. data/Gemfile +23 -20
  9. data/Guardfile +9 -9
  10. data/HISTORY.md +10 -1
  11. data/checksum/metric_fu-4.11.3.gem.sha512 +1 -0
  12. data/config/rubocop.yml +269 -0
  13. data/gem_tasks/rubocop.rake +10 -0
  14. data/lib/metric_fu.rb +11 -9
  15. data/lib/metric_fu/calculate.rb +0 -1
  16. data/lib/metric_fu/cli/client.rb +6 -6
  17. data/lib/metric_fu/cli/helper.rb +22 -13
  18. data/lib/metric_fu/cli/parser.rb +14 -18
  19. data/lib/metric_fu/configuration.rb +7 -11
  20. data/lib/metric_fu/constantize.rb +4 -4
  21. data/lib/metric_fu/data_structures/line_numbers.rb +10 -11
  22. data/lib/metric_fu/data_structures/location.rb +12 -14
  23. data/lib/metric_fu/data_structures/sexp_node.rb +31 -13
  24. data/lib/metric_fu/environment.rb +29 -31
  25. data/lib/metric_fu/formatter.rb +4 -6
  26. data/lib/metric_fu/formatter/html.rb +13 -13
  27. data/lib/metric_fu/formatter/syntax.rb +5 -7
  28. data/lib/metric_fu/formatter/yaml.rb +1 -1
  29. data/lib/metric_fu/gem_run.rb +13 -15
  30. data/lib/metric_fu/gem_version.rb +9 -11
  31. data/lib/metric_fu/generator.rb +5 -8
  32. data/lib/metric_fu/io.rb +13 -15
  33. data/lib/metric_fu/loader.rb +17 -18
  34. data/lib/metric_fu/logger.rb +15 -18
  35. data/lib/metric_fu/logging/mf_debugger.rb +4 -4
  36. data/lib/metric_fu/metric.rb +11 -12
  37. data/lib/metric_fu/metrics/cane/generator.rb +10 -9
  38. data/lib/metric_fu/metrics/cane/grapher.rb +5 -7
  39. data/lib/metric_fu/metrics/cane/metric.rb +6 -8
  40. data/lib/metric_fu/metrics/cane/report.html.erb +3 -3
  41. data/lib/metric_fu/metrics/cane/violations.rb +6 -6
  42. data/lib/metric_fu/metrics/churn/generator.rb +2 -6
  43. data/lib/metric_fu/metrics/churn/hotspot.rb +1 -3
  44. data/lib/metric_fu/metrics/churn/metric.rb +5 -7
  45. data/lib/metric_fu/metrics/flay/generator.rb +7 -11
  46. data/lib/metric_fu/metrics/flay/grapher.rb +5 -6
  47. data/lib/metric_fu/metrics/flay/hotspot.rb +5 -7
  48. data/lib/metric_fu/metrics/flay/metric.rb +5 -7
  49. data/lib/metric_fu/metrics/flog/generator.rb +22 -23
  50. data/lib/metric_fu/metrics/flog/grapher.rb +11 -11
  51. data/lib/metric_fu/metrics/flog/hotspot.rb +3 -5
  52. data/lib/metric_fu/metrics/flog/metric.rb +3 -5
  53. data/lib/metric_fu/metrics/hotspots/analysis/analyzed_problems.rb +0 -1
  54. data/lib/metric_fu/metrics/hotspots/analysis/analyzer_tables.rb +19 -18
  55. data/lib/metric_fu/metrics/hotspots/analysis/grouping.rb +0 -2
  56. data/lib/metric_fu/metrics/hotspots/analysis/groupings.rb +1 -3
  57. data/lib/metric_fu/metrics/hotspots/analysis/problems.rb +4 -6
  58. data/lib/metric_fu/metrics/hotspots/analysis/ranked_problem_location.rb +14 -9
  59. data/lib/metric_fu/metrics/hotspots/analysis/ranking.rb +4 -5
  60. data/lib/metric_fu/metrics/hotspots/analysis/rankings.rb +1 -3
  61. data/lib/metric_fu/metrics/hotspots/analysis/record.rb +3 -5
  62. data/lib/metric_fu/metrics/hotspots/analysis/scoring_strategies.rb +0 -2
  63. data/lib/metric_fu/metrics/hotspots/analysis/table.rb +3 -4
  64. data/lib/metric_fu/metrics/hotspots/generator.rb +3 -6
  65. data/lib/metric_fu/metrics/hotspots/hotspot.rb +13 -13
  66. data/lib/metric_fu/metrics/hotspots/hotspot_analyzer.rb +5 -8
  67. data/lib/metric_fu/metrics/hotspots/metric.rb +1 -3
  68. data/lib/metric_fu/metrics/hotspots/report.html.erb +1 -1
  69. data/lib/metric_fu/metrics/rails_best_practices/generator.rb +10 -12
  70. data/lib/metric_fu/metrics/rails_best_practices/grapher.rb +5 -6
  71. data/lib/metric_fu/metrics/rails_best_practices/metric.rb +1 -3
  72. data/lib/metric_fu/metrics/rcov/external_client.rb +1 -3
  73. data/lib/metric_fu/metrics/rcov/generator.rb +13 -15
  74. data/lib/metric_fu/metrics/rcov/grapher.rb +6 -7
  75. data/lib/metric_fu/metrics/rcov/hotspot.rb +5 -7
  76. data/lib/metric_fu/metrics/rcov/metric.rb +5 -7
  77. data/lib/metric_fu/metrics/rcov/rcov_format_coverage.rb +16 -55
  78. data/lib/metric_fu/metrics/rcov/rcov_line.rb +48 -0
  79. data/lib/metric_fu/metrics/rcov/report.html.erb +2 -2
  80. data/lib/metric_fu/metrics/rcov/simplecov_formatter.rb +10 -11
  81. data/lib/metric_fu/metrics/reek/generator.rb +22 -23
  82. data/lib/metric_fu/metrics/reek/grapher.rb +5 -6
  83. data/lib/metric_fu/metrics/reek/hotspot.rb +5 -7
  84. data/lib/metric_fu/metrics/reek/metric.rb +2 -4
  85. data/lib/metric_fu/metrics/roodi/generator.rb +9 -10
  86. data/lib/metric_fu/metrics/roodi/grapher.rb +5 -6
  87. data/lib/metric_fu/metrics/roodi/hotspot.rb +1 -3
  88. data/lib/metric_fu/metrics/roodi/metric.rb +2 -4
  89. data/lib/metric_fu/metrics/saikuro/generator.rb +23 -27
  90. data/lib/metric_fu/metrics/saikuro/hotspot.rb +1 -3
  91. data/lib/metric_fu/metrics/saikuro/metric.rb +7 -8
  92. data/lib/metric_fu/metrics/saikuro/parsing_element.rb +6 -8
  93. data/lib/metric_fu/metrics/saikuro/report.html.erb +1 -1
  94. data/lib/metric_fu/metrics/saikuro/scratch_file.rb +24 -29
  95. data/lib/metric_fu/metrics/stats/generator.rb +9 -12
  96. data/lib/metric_fu/metrics/stats/grapher.rb +8 -9
  97. data/lib/metric_fu/metrics/stats/hotspot.rb +1 -3
  98. data/lib/metric_fu/metrics/stats/metric.rb +3 -5
  99. data/lib/metric_fu/reporter.rb +1 -1
  100. data/lib/metric_fu/reporting/graphs/graph.rb +8 -12
  101. data/lib/metric_fu/reporting/graphs/grapher.rb +7 -9
  102. data/lib/metric_fu/reporting/result.rb +0 -3
  103. data/lib/metric_fu/run.rb +12 -3
  104. data/lib/metric_fu/tasks/metric_fu.rake +8 -8
  105. data/lib/metric_fu/templates/configuration.rb +2 -5
  106. data/lib/metric_fu/templates/metrics_template.rb +19 -19
  107. data/lib/metric_fu/templates/report.rb +5 -8
  108. data/lib/metric_fu/templates/template.rb +20 -24
  109. data/lib/metric_fu/utility.rb +7 -8
  110. data/lib/metric_fu/version.rb +1 -1
  111. data/metric_fu.gemspec +31 -32
  112. data/spec/cli/helper_spec.rb +7 -14
  113. data/spec/dummy/lib/bad_encoding.rb +1 -1
  114. data/spec/fixtures/coverage-153.rb +2 -2
  115. data/spec/fixtures/coverage.rb +2 -2
  116. data/spec/metric_fu/calculate_spec.rb +3 -3
  117. data/spec/metric_fu/configuration_spec.rb +70 -82
  118. data/spec/metric_fu/data_structures/line_numbers_spec.rb +3 -5
  119. data/spec/metric_fu/data_structures/location_spec.rb +13 -31
  120. data/spec/metric_fu/formatter/configuration_spec.rb +11 -13
  121. data/spec/metric_fu/formatter/html_spec.rb +21 -28
  122. data/spec/metric_fu/formatter/yaml_spec.rb +9 -17
  123. data/spec/metric_fu/formatter_spec.rb +6 -6
  124. data/spec/metric_fu/gem_version_spec.rb +3 -5
  125. data/spec/metric_fu/generator_spec.rb +28 -38
  126. data/spec/metric_fu/loader_spec.rb +1 -3
  127. data/spec/metric_fu/metric_spec.rb +17 -21
  128. data/spec/metric_fu/metrics/cane/configuration_spec.rb +8 -8
  129. data/spec/metric_fu/metrics/cane/generator_spec.rb +26 -29
  130. data/spec/metric_fu/metrics/churn/configuration_spec.rb +6 -8
  131. data/spec/metric_fu/metrics/churn/generator_spec.rb +6 -11
  132. data/spec/metric_fu/metrics/flay/configuration_spec.rb +6 -8
  133. data/spec/metric_fu/metrics/flay/generator_spec.rb +36 -37
  134. data/spec/metric_fu/metrics/flay/grapher_spec.rb +2 -2
  135. data/spec/metric_fu/metrics/flog/configuration_spec.rb +11 -13
  136. data/spec/metric_fu/metrics/flog/generator_spec.rb +29 -31
  137. data/spec/metric_fu/metrics/flog/grapher_spec.rb +8 -10
  138. data/spec/metric_fu/metrics/hotspots/analysis/analyzed_problems_spec.rb +18 -24
  139. data/spec/metric_fu/metrics/hotspots/analysis/analyzer_tables_spec.rb +12 -17
  140. data/spec/metric_fu/metrics/hotspots/analysis/ranking_spec.rb +2 -6
  141. data/spec/metric_fu/metrics/hotspots/analysis/rankings_spec.rb +5 -14
  142. data/spec/metric_fu/metrics/hotspots/analysis/table_spec.rb +1 -3
  143. data/spec/metric_fu/metrics/hotspots/generator_spec.rb +6 -8
  144. data/spec/metric_fu/metrics/hotspots/hotspot_analyzer_spec.rb +1 -3
  145. data/spec/metric_fu/metrics/hotspots/hotspot_spec.rb +4 -5
  146. data/spec/metric_fu/metrics/rails_best_practices/configuration_spec.rb +6 -10
  147. data/spec/metric_fu/metrics/rails_best_practices/generator_spec.rb +2 -3
  148. data/spec/metric_fu/metrics/rails_best_practices/grapher_spec.rb +3 -3
  149. data/spec/metric_fu/metrics/rcov/configuration_spec.rb +20 -22
  150. data/spec/metric_fu/metrics/rcov/generator_spec.rb +6 -10
  151. data/spec/metric_fu/metrics/rcov/grapher_spec.rb +2 -2
  152. data/spec/metric_fu/metrics/rcov/hotspot_spec.rb +8 -8
  153. data/spec/metric_fu/metrics/rcov/rcov_line_spec.rb +89 -0
  154. data/spec/metric_fu/metrics/rcov/simplecov_formatter_spec.rb +31 -33
  155. data/spec/metric_fu/metrics/reek/configuration_spec.rb +6 -6
  156. data/spec/metric_fu/metrics/reek/generator_spec.rb +19 -20
  157. data/spec/metric_fu/metrics/reek/grapher_spec.rb +4 -4
  158. data/spec/metric_fu/metrics/roodi/configuration_spec.rb +7 -9
  159. data/spec/metric_fu/metrics/roodi/generator_spec.rb +3 -3
  160. data/spec/metric_fu/metrics/roodi/grapher_spec.rb +2 -2
  161. data/spec/metric_fu/metrics/saikuro/configuration_spec.rb +18 -19
  162. data/spec/metric_fu/metrics/saikuro/generator_spec.rb +7 -7
  163. data/spec/metric_fu/metrics/stats/generator_spec.rb +9 -9
  164. data/spec/metric_fu/metrics/stats/grapher_spec.rb +2 -2
  165. data/spec/metric_fu/reporter_spec.rb +3 -4
  166. data/spec/metric_fu/reporting/graphs/graph_spec.rb +1 -4
  167. data/spec/metric_fu/reporting/graphs/grapher_spec.rb +5 -5
  168. data/spec/metric_fu/reporting/result_spec.rb +9 -11
  169. data/spec/metric_fu/run_spec.rb +18 -32
  170. data/spec/metric_fu/templates/configuration_spec.rb +28 -34
  171. data/spec/metric_fu/templates/metrics_template_spec.rb +11 -0
  172. data/spec/metric_fu/templates/report_spec.rb +4 -4
  173. data/spec/metric_fu/templates/template_spec.rb +62 -48
  174. data/spec/metric_fu/utility_spec.rb +2 -2
  175. data/spec/metric_fu_spec.rb +5 -7
  176. data/spec/shared/configured.rb +9 -11
  177. data/spec/shared/test_coverage.rb +5 -9
  178. data/spec/spec_helper.rb +9 -9
  179. data/spec/support/deferred_garbaged_collection.rb +1 -2
  180. data/spec/support/matcher_create_file.rb +2 -4
  181. data/spec/support/matcher_create_files.rb +2 -4
  182. data/spec/support/suite.rb +3 -3
  183. data/spec/support/test_fixtures.rb +5 -7
  184. data/spec/support/timeout.rb +1 -1
  185. data/spec/support/usage_test.rb +23 -24
  186. data/spec/usage_test_spec.rb +18 -20
  187. metadata +12 -2
  188. metadata.gz.sig +0 -0
@@ -1,4 +1,4 @@
1
- require 'ruby_parser'
1
+ require "ruby_parser"
2
2
  module MetricFu
3
3
  SexpNode = Struct.new(:sexp) do
4
4
  # @return file_sexp
@@ -9,66 +9,83 @@ module MetricFu
9
9
  def nil?
10
10
  sexp.nil?
11
11
  end
12
+
12
13
  def node_type
13
14
  sexp[0]
14
15
  end
16
+
15
17
  def name
16
18
  sexp[1]
17
19
  end
18
- def each_of_type(type,node_class=SexpNode)
20
+
21
+ def each_of_type(type, node_class = SexpNode)
19
22
  sexp.each_of_type(type) do |child_sexp|
20
23
  yield node_class.new(child_sexp)
21
24
  end
22
25
  end
26
+
23
27
  def each_module(&block)
24
- each_of_type(:module,&block)
28
+ each_of_type(:module, &block)
25
29
  end
30
+
26
31
  def each_class(&block)
27
- each_of_type(:class,&block)
32
+ each_of_type(:class, &block)
28
33
  end
34
+
29
35
  def each_singleton_class(&block)
30
- each_of_type(:sclass,SingletonMethodNode,&block)
36
+ each_of_type(:sclass, SingletonMethodNode, &block)
31
37
  end
38
+
32
39
  def each_instance_method(&block)
33
- each_of_type(:defn,InstanceMethodNode,&block)
40
+ each_of_type(:defn, InstanceMethodNode, &block)
34
41
  end
42
+
35
43
  def each_class_method(&block)
36
- each_of_type(:defs,ClassMethodNode,&block)
44
+ each_of_type(:defs, ClassMethodNode, &block)
37
45
  end
46
+
38
47
  def first_line
39
48
  sexp.line
40
49
  end
50
+
41
51
  def last_line
42
52
  sexp.last.line
43
53
  end
54
+
44
55
  def line_range
45
56
  (first_line..last_line)
46
57
  end
58
+
47
59
  def hide_methods_from_next_round
48
60
  sexp.find_and_replace_all(:defn, :ignore_me)
49
61
  sexp.find_and_replace_all(:defs, :ignore_me)
50
62
  end
51
- def full_method_name(method_separator, class_name, module_name=nil)
63
+
64
+ def full_method_name(method_separator, class_name, module_name = nil)
52
65
  [module_namespace(module_name), class_name, method_separator, name].join
53
66
  end
54
- def module_namespace(module_name=nil)
67
+
68
+ def module_namespace(module_name = nil)
55
69
  if module_name.nil?
56
70
  nil
57
71
  else
58
- [module_name,class_method_separator].join
72
+ [module_name, class_method_separator].join
59
73
  end
60
74
  end
75
+
61
76
  def instance_method_separator
62
- '#'
77
+ "#"
63
78
  end
79
+
64
80
  def class_method_separator
65
- '::'
81
+ "::"
66
82
  end
67
83
  end
68
84
  class ClassMethodNode < SexpNode
69
85
  def name
70
86
  sexp[2]
71
87
  end
88
+
72
89
  def full_name(module_name, class_name)
73
90
  full_method_name(class_method_separator, class_name, module_name)
74
91
  end
@@ -82,8 +99,9 @@ module MetricFu
82
99
  def full_name(class_name)
83
100
  full_method_name(class_method_separator, class_name)
84
101
  end
102
+
85
103
  def each_singleton_method(&block)
86
- each_of_type(:defn,SingletonMethodNode,&block)
104
+ each_of_type(:defn, SingletonMethodNode, &block)
87
105
  end
88
106
  end
89
107
  end
@@ -1,9 +1,8 @@
1
- require 'redcard'
2
- require 'rbconfig'
3
- MetricFu.lib_require { 'logger' }
1
+ require "redcard"
2
+ require "rbconfig"
3
+ MetricFu.lib_require { "logger" }
4
4
  module MetricFu
5
5
  module Environment
6
-
7
6
  # TODO: Set log_level here, instead
8
7
  def verbose
9
8
  MetricFu.logger.debug_on
@@ -28,7 +27,7 @@ module MetricFu
28
27
  end
29
28
 
30
29
  def is_cruise_control_rb?
31
- !!ENV['CC_BUILD_ARTIFACTS']
30
+ !!ENV["CC_BUILD_ARTIFACTS"]
32
31
  end
33
32
 
34
33
  def jruby?
@@ -48,11 +47,11 @@ module MetricFu
48
47
  end
49
48
 
50
49
  def ruby18?
51
- @ruby18 ||= mri? && !!RedCard.check('1.8'...'1.9')
50
+ @ruby18 ||= mri? && !!RedCard.check("1.8"..."1.9")
52
51
  end
53
52
 
54
53
  def ruby192?
55
- @ruby192 ||= mri? && ruby_version == '1.9.2'
54
+ @ruby192 ||= mri? && ruby_version == "1.9.2"
56
55
  end
57
56
 
58
57
  def rubinius?
@@ -61,7 +60,7 @@ module MetricFu
61
60
 
62
61
  def supports_ripper?
63
62
  @supports_ripper ||= begin
64
- require 'ripper'
63
+ require "ripper"
65
64
  true
66
65
  rescue LoadError
67
66
  false
@@ -69,7 +68,7 @@ module MetricFu
69
68
  end
70
69
 
71
70
  def platform #:nodoc:
72
- return RUBY_PLATFORM
71
+ RUBY_PLATFORM
73
72
  end
74
73
 
75
74
  def version
@@ -78,12 +77,12 @@ module MetricFu
78
77
 
79
78
  def environment_details
80
79
  @environment_details ||= {
81
- 'VERBOSE' => $VERBOSE.inspect,
82
- 'External Encoding' => Encoding.default_external.to_s,
83
- 'Internal Encoding' => Encoding.default_internal.to_s,
84
- 'Host Architecture' => RbConfig::CONFIG['build'],
85
- 'Ruby Prefix' => RbConfig::CONFIG['prefix'],
86
- 'Ruby Options' => ENV.keys.grep(/RUBYOPT/).map{|key| "#{key}=#{ENV[key]}" }.join(', '),
80
+ "VERBOSE" => $VERBOSE.inspect,
81
+ "External Encoding" => Encoding.default_external.to_s,
82
+ "Internal Encoding" => Encoding.default_internal.to_s,
83
+ "Host Architecture" => RbConfig::CONFIG["build"],
84
+ "Ruby Prefix" => RbConfig::CONFIG["prefix"],
85
+ "Ruby Options" => ENV.keys.grep(/RUBYOPT/).map { |key| "#{key}=#{ENV[key]}" }.join(", "),
87
86
  }
88
87
  end
89
88
 
@@ -92,40 +91,39 @@ module MetricFu
92
91
  # $LOAD_PATH
93
92
  def ruby_details
94
93
  @ruby_details ||= {
95
- 'Engine' => ruby_flavor,
96
- 'Version' => ruby_version,
97
- 'Patchlevel' => (defined?(RUBY_PATCHLEVEL) && RUBY_PATCHLEVEL),
98
- 'Ripper Support' => supports_ripper?,
99
- 'Rubygems Version' => Gem::VERSION,
100
- 'Long Description' => (defined?(RUBY_DESCRIPTION) ? RUBY_DESCRIPTION : platform),
94
+ "Engine" => ruby_flavor,
95
+ "Version" => ruby_version,
96
+ "Patchlevel" => (defined?(RUBY_PATCHLEVEL) && RUBY_PATCHLEVEL),
97
+ "Ripper Support" => supports_ripper?,
98
+ "Rubygems Version" => Gem::VERSION,
99
+ "Long Description" => (defined?(RUBY_DESCRIPTION) ? RUBY_DESCRIPTION : platform),
101
100
  }
102
101
  end
103
102
 
104
103
  def library_details
105
104
  @library_details ||= {
106
- 'Version' => version,
107
- 'Verbose Mode' => verbose,
108
- 'Enabled Metrics' => MetricFu::Metric.enabled_metrics.map(&:name),
109
- 'Dependencies' => MetricFu::GemVersion.dependencies_summary,
105
+ "Version" => version,
106
+ "Verbose Mode" => verbose,
107
+ "Enabled Metrics" => MetricFu::Metric.enabled_metrics.map(&:name),
108
+ "Dependencies" => MetricFu::GemVersion.dependencies_summary,
110
109
  }
111
110
  end
112
111
 
113
112
  def debug_info
114
113
  @debug_info ||= {
115
- 'Ruby' => ruby_details,
116
- 'Environment' => environment_details,
117
- 'MetricFu' => library_details,
114
+ "Ruby" => ruby_details,
115
+ "Environment" => environment_details,
116
+ "MetricFu" => library_details,
118
117
  }
119
118
  end
120
119
 
121
120
  def osx?
122
- @osx ||= platform.include?('darwin')
121
+ @osx ||= platform.include?("darwin")
123
122
  end
124
123
 
125
124
  def ruby_strangely_makes_accessors_private?
126
- @private_accessors ||= ruby192? || jruby?
125
+ @private_accessors ||= ruby192? || jruby?
127
126
  end
128
127
  module_function :ruby_strangely_makes_accessors_private?
129
-
130
128
  end
131
129
  end
@@ -1,9 +1,9 @@
1
- require 'metric_fu/constantize'
1
+ require "metric_fu/constantize"
2
2
  module MetricFu
3
3
  module Formatter
4
4
  BUILTIN_FORMATS = {
5
- 'html' => ['MetricFu::Formatter::HTML', 'Generates a templated HTML report using the configured template class and graph engine.'],
6
- 'yaml' => ['MetricFu::Formatter::YAML', 'Generates the raw output as yaml']
5
+ "html" => ["MetricFu::Formatter::HTML", "Generates a templated HTML report using the configured template class and graph engine."],
6
+ "yaml" => ["MetricFu::Formatter::YAML", "Generates the raw output as yaml"]
7
7
  }
8
8
  DEFAULT = [[:html]]
9
9
 
@@ -17,11 +17,10 @@ module MetricFu
17
17
  constantize(format.to_s)
18
18
  end
19
19
  end
20
-
21
20
  end
22
21
 
23
22
  module Templates
24
- MetricFu.lib_require { 'templates/metrics_template' }
23
+ MetricFu.lib_require { "templates/metrics_template" }
25
24
 
26
25
  module_function
27
26
 
@@ -36,7 +35,6 @@ module MetricFu
36
35
  def templates_configuration
37
36
  @templates_configuration ||= MetricFu::Templates::Configuration.new
38
37
  end
39
-
40
38
  end
41
39
  end
42
40
  end
@@ -1,12 +1,12 @@
1
- require 'launchy'
2
- MetricFu.formatter_require { 'yaml' }
3
- MetricFu.reporting_require { 'graphs/graph' }
1
+ require "launchy"
2
+ MetricFu.formatter_require { "yaml" }
3
+ MetricFu.reporting_require { "graphs/graph" }
4
4
  module MetricFu
5
5
  module Formatter
6
6
  class HTML
7
7
  include MetricFu::Io
8
8
 
9
- def initialize(opts={})
9
+ def initialize(opts = {})
10
10
  @options = opts
11
11
  end
12
12
 
@@ -27,20 +27,20 @@ module MetricFu
27
27
  end
28
28
 
29
29
  def write_template(output, file)
30
- write_output(output, "#{self.output_directory}/#{file}")
30
+ write_output(output, "#{output_directory}/#{file}")
31
31
  end
32
32
 
33
33
  def display_results
34
34
  if self.open_in_browser?
35
- mf_debug "** OPENING IN BROWSER FROM #{self.output_directory}"
36
- self.show_in_browser(self.output_directory)
35
+ mf_debug "** OPENING IN BROWSER FROM #{output_directory}"
36
+ show_in_browser(output_directory)
37
37
  end
38
38
  end
39
39
 
40
40
  protected
41
41
 
42
42
  def output_directory
43
- @output ||= dir_for(@options[:output]) || MetricFu.run_path.join(MetricFu::Io::FileSystem.directory('output_directory'))
43
+ @output ||= dir_for(@options[:output]) || MetricFu.run_path.join(MetricFu::Io::FileSystem.directory("output_directory"))
44
44
  end
45
45
 
46
46
  # Instantiates a new template class based on the configuration set
@@ -49,8 +49,8 @@ module MetricFu
49
49
  # assigns the result_hash to the result_hash in the template, and
50
50
  # tells the template to to write itself out.
51
51
  def save_templatized_result
52
- @template = MetricFu::Formatter::Templates.option('template_class').new
53
- @template.output_directory = self.output_directory
52
+ @template = MetricFu::Formatter::Templates.option("template_class").new
53
+ @template.output_directory = output_directory
54
54
  @template.result = MetricFu.result.result_hash
55
55
  @template.per_file_data = MetricFu.result.per_file_data
56
56
  @template.formatter = self
@@ -64,7 +64,7 @@ module MetricFu
64
64
  mf_debug "** Graphing #{graphed_metric} with #{MetricFu.configuration.graph_engine}"
65
65
  # TODO: This should probably be defined on configuration
66
66
  # rather than the module. See MetricFu::Graph
67
- MetricFu.graph.add(graphed_metric, MetricFu.configuration.graph_engine, self.output_directory)
67
+ MetricFu.graph.add(graphed_metric, MetricFu.configuration.graph_engine, output_directory)
68
68
  }
69
69
  mf_debug "** GENERATING GRAPH"
70
70
  MetricFu.graph.generate
@@ -78,7 +78,7 @@ module MetricFu
78
78
  # @return Boolean
79
79
  # Should we open in the browser or not?
80
80
  def open_in_browser?
81
- ! MetricFu.configuration.is_cruise_control_rb?
81
+ !MetricFu.configuration.is_cruise_control_rb?
82
82
  end
83
83
 
84
84
  # Shows 'index.html' from the passed directory in the browser
@@ -88,7 +88,7 @@ module MetricFu
88
88
  # The directory path where the 'index.html' we want to open is
89
89
  # stored
90
90
  def show_in_browser(dir)
91
- uri = URI.join(URI.escape("file://#{dir}/"), 'index.html')
91
+ uri = URI.join(URI.escape("file://#{dir}/"), "index.html")
92
92
  Launchy.open(uri) if open_in_browser?
93
93
  end
94
94
  end
@@ -1,5 +1,5 @@
1
- require 'coderay'
2
- MetricFu.lib_require { 'utility' }
1
+ require "coderay"
2
+ MetricFu.lib_require { "utility" }
3
3
  # CodeRay options
4
4
  # used to analyze source code, because object Tokens is a list of tokens with specified types.
5
5
  # :tab_width – tabulation width in spaces. Default: 8
@@ -15,10 +15,9 @@ MetricFu.lib_require { 'utility' }
15
15
  module MetricFu
16
16
  module Formatter
17
17
  class Syntax
18
-
19
18
  def initialize
20
- @options = { :css => :class, :style => :alpha }
21
- @line_number_options = {:line_numbers => :inline, :line_number_start => 0 }
19
+ @options = { css: :class, style: :alpha }
20
+ @line_number_options = { line_numbers: :inline, line_number_start: 0 }
22
21
  end
23
22
 
24
23
  def highlight(ruby_text, line_number)
@@ -29,7 +28,7 @@ module MetricFu
29
28
  def highlight_options(line_number)
30
29
  line_number = line_number.to_i
31
30
  if line_number > 0
32
- @options.merge(@line_number_options.merge(:line_number_start => line_number))
31
+ @options.merge(@line_number_options.merge(line_number_start: line_number))
33
32
  else
34
33
  @options
35
34
  end
@@ -41,7 +40,6 @@ module MetricFu
41
40
  ascii_text = MetricFu::Utility.clean_ascii_text(ruby_text)
42
41
  tokens = CodeRay.scan(ascii_text, :ruby)
43
42
  end
44
-
45
43
  end
46
44
  end
47
45
  end
@@ -5,7 +5,7 @@ module MetricFu
5
5
 
6
6
  DEFAULT_PATH = "report.yml"
7
7
 
8
- def initialize(opts={})
8
+ def initialize(opts = {})
9
9
  @options = opts
10
10
  @path_or_io = @options[:output] || DEFAULT_PATH
11
11
  end
@@ -1,20 +1,19 @@
1
1
  # encoding: utf-8
2
- require 'open3'
3
- require 'shellwords'
4
- require 'metric_fu'
5
- MetricFu.lib_require { 'logger' }
6
- MetricFu.lib_require { 'gem_version' }
2
+ require "open3"
3
+ require "shellwords"
4
+ require "metric_fu"
5
+ MetricFu.lib_require { "logger" }
6
+ MetricFu.lib_require { "gem_version" }
7
7
  module MetricFu
8
8
  class GemRun
9
-
10
9
  attr_reader :output, :gem_name, :library_name, :version, :arguments
11
- def initialize(arguments={})
10
+ def initialize(arguments = {})
12
11
  @gem_name = arguments.fetch(:gem_name)
13
12
  @library_name = arguments.fetch(:metric_name)
14
13
  @version = arguments.fetch(:version) { MetricFu::GemVersion.for(library_name) }
15
14
  args = arguments.fetch(:args)
16
15
  @arguments = args.respond_to?(:scan) ? Shellwords.shellwords(args) : args
17
- @output = ''
16
+ @output = ""
18
17
  @errors = []
19
18
  end
20
19
 
@@ -28,10 +27,10 @@ module MetricFu
28
27
 
29
28
  def execute
30
29
  mf_debug "Running #{summary}"
31
- captured_output = ''
32
- captured_errors = ''
33
- thread = ''
34
- Open3.popen3("#{library_name}", *arguments) do |stdin, stdout, stderr, wait_thr|
30
+ captured_output = ""
31
+ captured_errors = ""
32
+ thread = ""
33
+ Open3.popen3("#{library_name}", *arguments) do |_stdin, stdout, stderr, wait_thr|
35
34
  captured_output << stdout.read.chomp
36
35
  captured_errors << stderr.read.chomp
37
36
  thread = wait_thr
@@ -52,8 +51,8 @@ module MetricFu
52
51
  def handle_system_exit(system_exit)
53
52
  status = system_exit.success? ? "SUCCESS" : "FAILURE"
54
53
  message = "#{status} with code #{system_exit.status}: " <<
55
- "#{system_exit.message}: #{system_exit.backtrace.inspect}"
56
- if status == 'SUCCESS'
54
+ "#{system_exit.message}: #{system_exit.backtrace.inspect}"
55
+ if status == "SUCCESS"
57
56
  mf_debug message
58
57
  else
59
58
  @errors << message
@@ -67,6 +66,5 @@ module MetricFu
67
66
  STDERR.puts "\t" << error
68
67
  end
69
68
  end
70
-
71
69
  end
72
70
  end