metric_fu 4.6.0 → 4.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. data.tar.gz.sig +0 -0
  2. data/.metrics +6 -0
  3. data/.travis.yml +6 -5
  4. data/CONTRIBUTING.md +15 -3
  5. data/Gemfile +3 -8
  6. data/Gemfile.devtools +3 -3
  7. data/HISTORY.md +23 -2
  8. data/README.md +42 -38
  9. data/checksum/metric_fu-4.6.0.gem.sha512 +1 -0
  10. data/gemfiles/Gemfile.travis +7 -0
  11. data/lib/metric_fu/cli/helper.rb +2 -1
  12. data/lib/metric_fu/configuration.rb +0 -2
  13. data/lib/metric_fu/formatter/html.rb +2 -0
  14. data/lib/metric_fu/formatter/syntax.rb +47 -0
  15. data/lib/metric_fu/gem_version.rb +44 -11
  16. data/lib/metric_fu/io.rb +5 -5
  17. data/lib/metric_fu/loader.rb +12 -5
  18. data/lib/metric_fu/metric.rb +10 -0
  19. data/lib/metric_fu/metrics/base_template.rb +2 -2
  20. data/lib/metric_fu/metrics/cane/cane.rb +1 -0
  21. data/lib/metric_fu/metrics/churn/churn.rb +16 -42
  22. data/lib/metric_fu/metrics/churn/init.rb +7 -1
  23. data/lib/metric_fu/metrics/hotspots/analysis/groupings.rb +1 -0
  24. data/lib/metric_fu/metrics/hotspots/analysis/problems.rb +1 -0
  25. data/lib/metric_fu/metrics/hotspots/analysis/ranked_problem_location.rb +2 -0
  26. data/lib/metric_fu/metrics/hotspots/analysis/rankings.rb +5 -0
  27. data/lib/metric_fu/metrics/hotspots/hotspot.rb +3 -0
  28. data/lib/metric_fu/metrics/hotspots/hotspot_analyzer.rb +8 -4
  29. data/lib/metric_fu/metrics/hotspots/hotspots.rb +11 -0
  30. data/lib/metric_fu/metrics/reek/reek.rb +1 -1
  31. data/lib/metric_fu/metrics/reek/reek_hotspot.rb +0 -1
  32. data/lib/metric_fu/metrics/saikuro/saikuro.rb +1 -0
  33. data/lib/metric_fu/reporting/graphs/grapher.rb +0 -1
  34. data/lib/metric_fu/reporting/templates/awesome/awesome_template.rb +8 -59
  35. data/lib/metric_fu/run.rb +1 -1
  36. data/lib/metric_fu/{reporting/templates/awesome → templates}/css/bluff.css +0 -0
  37. data/lib/metric_fu/{reporting/templates/awesome → templates}/css/buttons.css +0 -0
  38. data/lib/metric_fu/{reporting/templates/awesome → templates}/css/default.css +0 -0
  39. data/lib/metric_fu/{reporting/templates/awesome → templates}/css/integrity.css +0 -0
  40. data/lib/metric_fu/{reporting/templates/awesome → templates}/css/rcov.css +0 -0
  41. data/lib/metric_fu/{reporting/templates/awesome → templates}/css/reset.css +0 -0
  42. data/lib/metric_fu/{reporting/templates/awesome → templates}/css/syntax.css +0 -0
  43. data/lib/metric_fu/templates/report.html.erb +32 -0
  44. data/lib/metric_fu/templates/report.rb +36 -0
  45. data/lib/metric_fu/utility.rb +4 -0
  46. data/lib/metric_fu/version.rb +1 -1
  47. data/metric_fu.gemspec +11 -2
  48. data/spec/cli/helper_spec.rb +33 -33
  49. data/spec/metric_fu/configuration_spec.rb +20 -20
  50. data/spec/metric_fu/data_structures/line_numbers_spec.rb +12 -11
  51. data/spec/metric_fu/data_structures/location_spec.rb +27 -26
  52. data/spec/metric_fu/formatter/html_spec.rb +18 -8
  53. data/spec/metric_fu/formatter/yaml_spec.rb +14 -3
  54. data/spec/metric_fu/formatter_spec.rb +5 -5
  55. data/spec/metric_fu/loader_spec.rb +1 -1
  56. data/spec/metric_fu/metric_spec.rb +2 -2
  57. data/spec/metric_fu/metrics/base_template_spec.rb +50 -50
  58. data/spec/metric_fu/metrics/cane/cane_spec.rb +29 -28
  59. data/spec/metric_fu/metrics/churn/churn_spec.rb +10 -33
  60. data/spec/metric_fu/metrics/flay/flay_grapher_spec.rb +9 -8
  61. data/spec/metric_fu/metrics/flay/flay_spec.rb +14 -13
  62. data/spec/metric_fu/metrics/flog/flog_grapher_spec.rb +16 -15
  63. data/spec/metric_fu/metrics/flog/flog_spec.rb +10 -9
  64. data/spec/metric_fu/metrics/generator_spec.rb +19 -19
  65. data/spec/metric_fu/metrics/graph_spec.rb +11 -9
  66. data/spec/metric_fu/metrics/hotspots/analysis/analyzed_problems_spec.rb +5 -0
  67. data/spec/metric_fu/metrics/hotspots/analysis/analyzer_tables_spec.rb +11 -6
  68. data/spec/metric_fu/metrics/hotspots/analysis/ranking_spec.rb +4 -3
  69. data/spec/metric_fu/metrics/hotspots/analysis/rankings_spec.rb +16 -10
  70. data/spec/metric_fu/metrics/hotspots/analysis/table_spec.rb +2 -1
  71. data/spec/metric_fu/metrics/hotspots/hotspot_analyzer_spec.rb +2 -1
  72. data/spec/metric_fu/metrics/hotspots/hotspot_spec.rb +8 -2
  73. data/spec/metric_fu/metrics/hotspots/hotspots_spec.rb +4 -8
  74. data/spec/metric_fu/metrics/rails_best_practices/rails_best_practices_grapher_spec.rb +10 -9
  75. data/spec/metric_fu/metrics/rails_best_practices/rails_best_practices_spec.rb +8 -7
  76. data/spec/metric_fu/metrics/rcov/rcov_grapher_spec.rb +8 -8
  77. data/spec/metric_fu/metrics/rcov/rcov_hotspot_spec.rb +7 -4
  78. data/spec/metric_fu/metrics/rcov/rcov_spec.rb +15 -14
  79. data/spec/metric_fu/metrics/reek/reek_grapher_spec.rb +10 -9
  80. data/spec/metric_fu/metrics/reek/reek_spec.rb +17 -15
  81. data/spec/metric_fu/metrics/roodi/roodi_grapher_spec.rb +9 -8
  82. data/spec/metric_fu/metrics/roodi/roodi_spec.rb +4 -3
  83. data/spec/metric_fu/metrics/saikuro/saikuro_spec.rb +13 -10
  84. data/spec/metric_fu/metrics/stats/stats_grapher_spec.rb +13 -12
  85. data/spec/metric_fu/metrics/stats/stats_spec.rb +16 -14
  86. data/spec/metric_fu/reporter_spec.rb +8 -7
  87. data/spec/metric_fu/reporting/graphs/grapher_spec.rb +1 -1
  88. data/spec/metric_fu/reporting/result_spec.rb +12 -11
  89. data/spec/metric_fu/run_spec.rb +24 -8
  90. data/spec/spec_helper.rb +1 -2
  91. data/spec/support/helper_methods.rb +14 -1
  92. metadata +124 -57
  93. metadata.gz.sig +0 -0
  94. checksums.yaml +0 -7
  95. checksums.yaml.gz.sig +0 -0
  96. data/lib/metric_fu/initial_requires.rb +0 -13
  97. data/lib/metric_fu/load_files.rb +0 -34
@@ -0,0 +1,36 @@
1
+ MetricFu.lib_require { 'formatter/syntax' }
2
+
3
+ module MetricFu
4
+ module Templates
5
+ class Report < MetricFu::Template
6
+
7
+ def initialize(file, lines)
8
+ @file = file
9
+ @lines = lines
10
+ @data = File.readlines(file)
11
+ end
12
+
13
+ def render(metrics)
14
+ @metrics = metrics
15
+ erbify('report')
16
+ end
17
+
18
+ def convert_ruby_to_html(ruby_text, line_number)
19
+ MetricFu::Formatter::Syntax.new.highlight(ruby_text, line_number)
20
+ end
21
+
22
+ def line_for_display(line, line_number)
23
+ if MetricFu::Formatter::Templates.option('syntax_highlighting')
24
+ line_for_display = convert_ruby_to_html(line, line_number)
25
+ else
26
+ "<a name='n#{line_number}' href='n#{line_number}'>#{line_number}</a>#{line}"
27
+ end
28
+ end
29
+
30
+ def template_directory
31
+ File.dirname(__FILE__)
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -33,5 +33,9 @@ module MetricFu
33
33
  YAML.load_file(file)
34
34
  end
35
35
 
36
+ def binread(file)
37
+ File.binread(file)
38
+ end
39
+
36
40
  end
37
41
  end
@@ -1,3 +1,3 @@
1
1
  module MetricFu
2
- VERSION = '4.6.0'
2
+ VERSION = '4.7.0'
3
3
  end
data/metric_fu.gemspec CHANGED
@@ -9,11 +9,15 @@ Gem::Specification.new do |s|
9
9
  s.description = "Code metrics from Flog, Flay, Saikuro, Churn, Reek, Roodi, Code Statistics, and Rails Best Practices. (and optionally RCov)"
10
10
  s.email = "github@benjaminfleischer.com"
11
11
  author_file = File.expand_path('AUTHORS', File.dirname(__FILE__))
12
- s.authors = File.readlines(author_file).map(&:strip)
12
+ s.authors = File.readlines(author_file, :encoding => Encoding::UTF_8).map(&:strip)
13
13
 
14
14
  # used with gem i metric_fu -P HighSecurity
15
15
  s.cert_chain = ['certs/bf4.pem']
16
- s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/
16
+ # Sign gem when evaluating spec with `gem` command
17
+ # unless ENV has set a SKIP_GEM_SIGNING
18
+ if ($0 =~ /gem\z/) and not ENV.include?('SKIP_GEM_SIGNING')
19
+ s.signing_key = File.join(Gem.user_home, '.ssh', 'gem-private_key.pem')
20
+ end
17
21
 
18
22
  s.rubyforge_project = 'metric_fu'
19
23
  s.license = 'MIT'
@@ -56,4 +60,9 @@ Gem::Specification.new do |s|
56
60
  # to_json support
57
61
  s.add_runtime_dependency 'multi_json'
58
62
 
63
+ # temporary filesystem to act on
64
+ s.add_development_dependency 'test_construct'
65
+ # ensure we have a JSON parser
66
+ s.add_development_dependency 'json'
67
+
59
68
  end
@@ -15,52 +15,52 @@ describe MetricFu::Cli::Helper do
15
15
  context "on every Ruby version" do
16
16
 
17
17
  it "opens the report in a browser" do
18
- defaults[:open].should be_true
18
+ expect(defaults[:open]).to be_truthy
19
19
  end
20
20
 
21
21
  it "enables Flay" do
22
- defaults[:flay].should be_true
22
+ expect(defaults[:flay]).to be_truthy
23
23
  end
24
24
 
25
25
  it "enables Reek" do
26
- defaults[:reek].should be_true
26
+ expect(defaults[:reek]).to be_truthy
27
27
  end
28
28
 
29
29
  it "enables Hotspots" do
30
- defaults[:hotspots].should be_true
30
+ expect(defaults[:hotspots]).to be_truthy
31
31
  end
32
32
 
33
33
  it "enables Churn" do
34
- defaults[:churn].should be_true
34
+ expect(defaults[:churn]).to be_truthy
35
35
  end
36
36
 
37
37
  it "enables Saikuro" do
38
- defaults[:saikuro].should be_true
38
+ expect(defaults[:saikuro]).to be_truthy
39
39
  end
40
40
 
41
41
  if MetricFu.configuration.mri?
42
42
  it "enables Flog" do
43
- !defaults[:flog].should be_true
43
+ !expect(defaults[:flog]).to be_truthy
44
44
  end
45
45
 
46
46
  it "enables Cane" do
47
- defaults[:cane].should be_true
47
+ expect(defaults[:cane]).to be_truthy
48
48
  end
49
49
  end
50
50
 
51
51
  it "enables RCov" do
52
- defaults[:rcov].should be_true
52
+ expect(defaults[:rcov]).to be_truthy
53
53
  end
54
54
 
55
55
  it "runs by default" do
56
- defaults[:run].should be_true
56
+ expect(defaults[:run]).to be_truthy
57
57
  end
58
58
  end
59
59
 
60
60
  if MetricFu.configuration.mri?
61
61
 
62
62
  it "enables Rails Best Practices" do
63
- defaults[:rails_best_practices].should be_true
63
+ expect(defaults[:rails_best_practices]).to be_truthy
64
64
  end
65
65
 
66
66
  end
@@ -71,99 +71,99 @@ describe MetricFu::Cli::Helper do
71
71
  let(:helper) { MetricFu::Cli::Helper.new }
72
72
 
73
73
  it "turns open in browser off" do
74
- helper.process_options(["--no-open"])[:open].should be_false
74
+ expect(helper.process_options(["--no-open"])[:open]).to be_falsey
75
75
  end
76
76
 
77
77
  it "turns open in browser on" do
78
- helper.process_options(["--open"])[:open].should be_true
78
+ expect(helper.process_options(["--open"])[:open]).to be_truthy
79
79
  end
80
80
 
81
81
  it "turns saikuro off" do
82
- helper.process_options(["--no-saikuro"])[:saikuro].should be_false
82
+ expect(helper.process_options(["--no-saikuro"])[:saikuro]).to be_falsey
83
83
  end
84
84
 
85
85
  it "turns saikuro on" do
86
- helper.process_options(["--saikuro"])[:saikuro].should be_true
86
+ expect(helper.process_options(["--saikuro"])[:saikuro]).to be_truthy
87
87
  end
88
88
 
89
89
  it "turns churn off" do
90
- helper.process_options(["--no-churn"])[:churn].should be_false
90
+ expect(helper.process_options(["--no-churn"])[:churn]).to be_falsey
91
91
  end
92
92
 
93
93
  it "turns churn on" do
94
- helper.process_options(["--churn"])[:churn].should be_true
94
+ expect(helper.process_options(["--churn"])[:churn]).to be_truthy
95
95
  end
96
96
 
97
97
  it "turns flay off" do
98
- helper.process_options(["--no-flay"])[:flay].should be_false
98
+ expect(helper.process_options(["--no-flay"])[:flay]).to be_falsey
99
99
  end
100
100
 
101
101
  it "turns flay on" do
102
- helper.process_options(["--flay"])[:flay].should be_true
102
+ expect(helper.process_options(["--flay"])[:flay]).to be_truthy
103
103
  end
104
104
 
105
105
  if MetricFu.configuration.mri?
106
106
 
107
107
  it "turns flog off" do
108
- helper.process_options(["--no-flog"])[:flog].should be_false
108
+ expect(helper.process_options(["--no-flog"])[:flog]).to be_falsey
109
109
  end
110
110
 
111
111
  it "turns flog on" do
112
- helper.process_options(["--flog"])[:flog].should be_true
112
+ expect(helper.process_options(["--flog"])[:flog]).to be_truthy
113
113
  end
114
114
 
115
115
  it "turns cane off" do
116
- helper.process_options(["--no-cane"])[:cane].should be_false
116
+ expect(helper.process_options(["--no-cane"])[:cane]).to be_falsey
117
117
  end
118
118
 
119
119
  it "turns cane on" do
120
- helper.process_options(["--cane"])[:cane].should be_true
120
+ expect(helper.process_options(["--cane"])[:cane]).to be_truthy
121
121
  end
122
122
 
123
123
  end
124
124
 
125
125
 
126
126
  it "turns hotspots off" do
127
- helper.process_options(["--no-hotspots"])[:hotspots].should be_false
127
+ expect(helper.process_options(["--no-hotspots"])[:hotspots]).to be_falsey
128
128
  end
129
129
 
130
130
  it "turns hotspots on" do
131
- helper.process_options(["--hotspots"])[:hotspots].should be_true
131
+ expect(helper.process_options(["--hotspots"])[:hotspots]).to be_truthy
132
132
  end
133
133
 
134
134
  it "turns rcov off" do
135
- helper.process_options(["--no-rcov"])[:rcov].should be_false
135
+ expect(helper.process_options(["--no-rcov"])[:rcov]).to be_falsey
136
136
  end
137
137
 
138
138
  it "turns rcov on" do
139
- helper.process_options(["--rcov"])[:rcov].should be_true
139
+ expect(helper.process_options(["--rcov"])[:rcov]).to be_truthy
140
140
  end
141
141
 
142
142
  it "turns reek off" do
143
- helper.process_options(["--no-reek"])[:reek].should be_false
143
+ expect(helper.process_options(["--no-reek"])[:reek]).to be_falsey
144
144
  end
145
145
 
146
146
  it "turns reek on" do
147
- helper.process_options(["--reek"])[:reek].should be_true
147
+ expect(helper.process_options(["--reek"])[:reek]).to be_truthy
148
148
  end
149
149
 
150
150
  it "turns roodi off" do
151
- helper.process_options(["--no-roodi"])[:roodi].should be_false
151
+ expect(helper.process_options(["--no-roodi"])[:roodi]).to be_falsey
152
152
  end
153
153
 
154
154
  it "turns roodi on" do
155
- helper.process_options(["--roodi"])[:roodi].should be_true
155
+ expect(helper.process_options(["--roodi"])[:roodi]).to be_truthy
156
156
  end
157
157
 
158
158
  context 'given a single format' do
159
159
  it "sets the format" do
160
- helper.process_options(["--format", "json"])[:format].should eq([['json']])
160
+ expect(helper.process_options(["--format", "json"])[:format]).to eq([['json']])
161
161
  end
162
162
  end
163
163
 
164
164
  context 'given multiple formats' do
165
165
  it "sets multiple formats" do
166
- helper.process_options(["--format", "json", "--format", "yaml"])[:format].should eq([['json'], ['yaml']])
166
+ expect(helper.process_options(["--format", "json", "--format", "yaml"])[:format]).to eq([['json'], ['yaml']])
167
167
  end
168
168
  end
169
169
 
@@ -10,7 +10,7 @@ describe MetricFu::Configuration do
10
10
  rcov.enabled = true
11
11
  end
12
12
  MetricFu.configure
13
- MetricFu::Io::FileSystem.stub(:create_directories) # no need to create directories for the tests
13
+ allow(MetricFu::Io::FileSystem).to receive(:create_directories) # no need to create directories for the tests
14
14
  @config
15
15
  end
16
16
 
@@ -55,7 +55,7 @@ describe MetricFu::Configuration do
55
55
  end
56
56
 
57
57
  it 'should return true' do
58
- @config.is_cruise_control_rb?.should be_true
58
+ expect(@config.is_cruise_control_rb?).to be_truthy
59
59
  end
60
60
 
61
61
  after(:each) do
@@ -69,7 +69,7 @@ describe MetricFu::Configuration do
69
69
  before(:each) { ENV['CC_BUILD_ARTIFACTS'] = nil }
70
70
 
71
71
  it 'should return false' do
72
- @config.is_cruise_control_rb?.should be_false
72
+ expect(@config.is_cruise_control_rb?).to be_falsey
73
73
  end
74
74
  end
75
75
  end
@@ -100,7 +100,7 @@ describe MetricFu::Configuration do
100
100
  get_new_config
101
101
  end
102
102
  it 'should return "tmp/metric_fu"' do
103
- base_directory.should == MetricFu.artifact_dir
103
+ expect(base_directory).to eq(MetricFu.artifact_dir)
104
104
  end
105
105
 
106
106
  it 'should set @metric_fu_root_directory to the base of the '+
@@ -108,7 +108,7 @@ describe MetricFu::Configuration do
108
108
  app_root = File.join(File.dirname(__FILE__), '..', '..')
109
109
  app_root_absolute_path = File.expand_path(app_root)
110
110
  metric_fu_absolute_path = File.expand_path(metric_fu_root)
111
- metric_fu_absolute_path.should == app_root_absolute_path
111
+ expect(metric_fu_absolute_path).to eq(app_root_absolute_path)
112
112
  end
113
113
 
114
114
  it 'should set @template_directory to the lib/templates relative '+
@@ -117,23 +117,23 @@ describe MetricFu::Configuration do
117
117
  '..', '..', 'lib','templates')
118
118
  template_dir_abs_path = File.expand_path(template_dir)
119
119
  calc_template_dir_abs_path = File.expand_path(template_directory)
120
- calc_template_dir_abs_path.should == template_dir_abs_path
120
+ expect(calc_template_dir_abs_path).to eq(template_dir_abs_path)
121
121
  end
122
122
 
123
123
  it 'should set @scratch_directory to scratch relative '+
124
124
  'to @base_directory' do
125
125
  scratch_dir = MetricFu.scratch_dir
126
- scratch_directory.should == scratch_dir
126
+ expect(scratch_directory).to eq(scratch_dir)
127
127
  end
128
128
 
129
129
  it 'should set @output_directory to output relative '+
130
130
  'to @base_directory' do
131
131
  output_dir = MetricFu.output_dir
132
- output_directory.should == output_dir
132
+ expect(output_directory).to eq(output_dir)
133
133
  end
134
134
 
135
135
  it 'should set @template_class to AwesomeTemplate by default' do
136
- template_class.should == AwesomeTemplate
136
+ expect(template_class).to eq(AwesomeTemplate)
137
137
  end
138
138
 
139
139
  describe 'when a templates configuration is given' do
@@ -158,11 +158,11 @@ describe MetricFu::Configuration do
158
158
  end
159
159
 
160
160
  it 'should set given darwin_txmt_protocol_no_thanks' do
161
- expect(MetricFu::Formatter::Templates.option('darwin_txmt_protocol_no_thanks')).to be_false
161
+ expect(MetricFu::Formatter::Templates.option('darwin_txmt_protocol_no_thanks')).to be_falsey
162
162
  end
163
163
 
164
164
  it 'should set given syntax_highlighting' do
165
- expect(MetricFu::Formatter::Templates.option('syntax_highlighting')).to be_false
165
+ expect(MetricFu::Formatter::Templates.option('syntax_highlighting')).to be_falsey
166
166
  end
167
167
 
168
168
  end
@@ -192,7 +192,7 @@ describe MetricFu::Configuration do
192
192
  it 'should set @churn to {}' do
193
193
  load_metric 'churn'
194
194
  expect(MetricFu::Metric.get_metric(:churn).run_options).to eq(
195
- { :start_date => %q("1 year ago"), :minimum_churn_count => 10}
195
+ { :start_date => %q("1 year ago"), :minimum_churn_count => 10, :ignore_files=>[], :data_directory=> MetricFu::Io::FileSystem.scratch_directory('churn')}
196
196
  )
197
197
  end
198
198
 
@@ -277,7 +277,7 @@ describe MetricFu::Configuration do
277
277
 
278
278
  before(:each) do
279
279
  @config = MetricFu.configuration
280
- @config.stub(:rails?).and_return(true)
280
+ allow(@config).to receive(:rails?).and_return(true)
281
281
  @config.reset
282
282
  MetricFu.configure
283
283
  %w(rails_best_practices).each do |metric|
@@ -287,7 +287,7 @@ describe MetricFu::Configuration do
287
287
 
288
288
  describe '#set_graphs ' do
289
289
  it 'should set the graphs to include rails_best_practices' do
290
- expect(MetricFu::Metric.get_metric(:rails_best_practices).has_graph?).to be_true
290
+ expect(MetricFu::Metric.get_metric(:rails_best_practices).has_graph?).to be_truthy
291
291
  end
292
292
  end
293
293
 
@@ -300,14 +300,14 @@ describe MetricFu::Configuration do
300
300
  describe 'if #rails? is false ' do
301
301
  before(:each) do
302
302
  get_new_config
303
- @config.stub(:rails?).and_return(false)
303
+ allow(@config).to receive(:rails?).and_return(false)
304
304
  %w(rails_best_practices).each do |metric|
305
305
  load_metric metric
306
306
  end
307
307
  end
308
308
 
309
309
  it 'should set the registered code_dirs to ["lib"]' do
310
- directory('code_dirs').should == ['lib']
310
+ expect(directory('code_dirs')).to eq(['lib'])
311
311
  end
312
312
  end
313
313
  end
@@ -318,7 +318,7 @@ describe MetricFu::Configuration do
318
318
 
319
319
  it 'should return the value of the PLATFORM constant' do
320
320
  this_platform = RUBY_PLATFORM
321
- @config.platform.should == this_platform
321
+ expect(@config.platform).to eq(this_platform)
322
322
  end
323
323
  end
324
324
 
@@ -331,7 +331,7 @@ describe MetricFu::Configuration do
331
331
  end
332
332
 
333
333
  it 'adds to the list of formatters' do
334
- @config.formatters.first.should be_an_instance_of(MetricFu::Formatter::HTML)
334
+ expect(@config.formatters.first).to be_an_instance_of(MetricFu::Formatter::HTML)
335
335
  end
336
336
  end
337
337
 
@@ -342,7 +342,7 @@ describe MetricFu::Configuration do
342
342
  end
343
343
 
344
344
  it 'adds to the list of formatters' do
345
- @config.formatters.first.should be_an_instance_of(MyCustomFormatter)
345
+ expect(@config.formatters.first).to be_an_instance_of(MyCustomFormatter)
346
346
  end
347
347
  end
348
348
 
@@ -355,7 +355,7 @@ describe MetricFu::Configuration do
355
355
  end
356
356
 
357
357
  it 'adds each to the list of formatters' do
358
- @config.formatters.count.should eq(3)
358
+ expect(@config.formatters.count).to eq(3)
359
359
  end
360
360
  end
361
361
  end
@@ -1,4 +1,5 @@
1
1
  require "spec_helper"
2
+ MetricFu.data_structures_require { 'line_numbers' }
2
3
 
3
4
  describe MetricFu::LineNumbers do
4
5
  FIXTURE_DATA = ->(paths) {
@@ -7,55 +8,55 @@ describe MetricFu::LineNumbers do
7
8
  describe "in_method?" do
8
9
  it "should know if a line is NOT in a method" do
9
10
  ln = MetricFu::LineNumbers.new(FIXTURE_DATA["foo.rb"])
10
- ln.in_method?(2).should == false
11
+ expect(ln.in_method?(2)).to eq(false)
11
12
  end
12
13
 
13
14
  it "should know if a line is in an instance method" do
14
15
  ln = MetricFu::LineNumbers.new(FIXTURE_DATA["foo.rb"])
15
- ln.in_method?(8).should == true
16
+ expect(ln.in_method?(8)).to eq(true)
16
17
  end
17
18
 
18
19
  it "should know if a line is in an class method" do
19
20
  ln = MetricFu::LineNumbers.new(FIXTURE_DATA["foo.rb"])
20
- ln.in_method?(3).should == true
21
+ expect(ln.in_method?(3)).to eq(true)
21
22
  end
22
23
  end
23
24
 
24
25
  describe "method_at_line" do
25
26
  it "should know the name of an instance method at a particular line" do
26
27
  ln = MetricFu::LineNumbers.new(FIXTURE_DATA["foo.rb"])
27
- ln.method_at_line(8).should == "Foo#what"
28
+ expect(ln.method_at_line(8)).to eq("Foo#what")
28
29
  end
29
30
 
30
31
  it "should know the name of a class method at a particular line" do
31
32
  ln = MetricFu::LineNumbers.new(FIXTURE_DATA["foo.rb"])
32
- ln.method_at_line(3).should == "Foo::awesome"
33
+ expect(ln.method_at_line(3)).to eq("Foo::awesome")
33
34
  end
34
35
 
35
36
  it "should know the name of a private method at a particular line" do
36
37
  ln = MetricFu::LineNumbers.new(FIXTURE_DATA["foo.rb"])
37
- ln.method_at_line(28).should == "Foo#whoop"
38
+ expect(ln.method_at_line(28)).to eq("Foo#whoop")
38
39
  end
39
40
 
40
41
  it "should know the name of a class method defined in a 'class << self block at a particular line" do
41
42
  ln = MetricFu::LineNumbers.new(FIXTURE_DATA["foo.rb"])
42
- ln.method_at_line(22).should == "Foo::neat"
43
+ expect(ln.method_at_line(22)).to eq("Foo::neat")
43
44
  end
44
45
 
45
46
  it "should know the name of an instance method at a particular line in a file with two classes" do
46
47
  ln = MetricFu::LineNumbers.new(FIXTURE_DATA["two_classes.rb"])
47
- ln.method_at_line(3).should == "Foo#stuff"
48
- ln.method_at_line(9).should == "Bar#stuff"
48
+ expect(ln.method_at_line(3)).to eq("Foo#stuff")
49
+ expect(ln.method_at_line(9)).to eq("Bar#stuff")
49
50
  end
50
51
 
51
52
  it "should work with modules" do
52
53
  ln = MetricFu::LineNumbers.new(FIXTURE_DATA["module.rb"])
53
- ln.method_at_line(4).should == 'KickAss#get_beat_up?'
54
+ expect(ln.method_at_line(4)).to eq('KickAss#get_beat_up?')
54
55
  end
55
56
 
56
57
  it "should work with module surrounding class" do
57
58
  ln = MetricFu::LineNumbers.new(FIXTURE_DATA["module_surrounds_class.rb"])
58
- ln.method_at_line(5).should == "StuffModule::ThingClass#do_it"
59
+ expect(ln.method_at_line(5)).to eq("StuffModule::ThingClass#do_it")
59
60
  # ln.method_at_line(12).should == "StuffModule#blah" #why no work?
60
61
  end
61
62