metric_fu 4.10.0 → 4.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +2 -2
- data/.simplecov +42 -0
- data/.travis.yml +7 -6
- data/CONTRIBUTING.md +1 -1
- data/DEV.md +4 -3
- data/Gemfile +29 -7
- data/HISTORY.md +29 -3
- data/README.md +6 -1
- data/Rakefile +33 -11
- data/checksum/metric_fu-4.10.0.gem.sha512 +1 -1
- data/gem_tasks/usage_test.rake +0 -11
- data/lib/metric_fu.rb +12 -0
- data/lib/metric_fu/configuration.rb +1 -5
- data/lib/metric_fu/environment.rb +3 -3
- data/lib/metric_fu/formatter.rb +1 -1
- data/lib/metric_fu/formatter/html.rb +9 -9
- data/lib/metric_fu/gem_run.rb +2 -2
- data/lib/metric_fu/{metrics/generator.rb → generator.rb} +0 -0
- data/lib/metric_fu/loader.rb +30 -23
- data/lib/metric_fu/logger.rb +65 -0
- data/lib/metric_fu/logging/mf_debugger.rb +13 -48
- data/lib/metric_fu/metric.rb +3 -3
- data/lib/metric_fu/metrics/cane/{cane.rb → generator.rb} +0 -0
- data/lib/metric_fu/metrics/cane/{cane_grapher.rb → grapher.rb} +0 -0
- data/lib/metric_fu/metrics/cane/{init.rb → metric.rb} +1 -1
- data/lib/metric_fu/metrics/cane/{template_awesome/cane.html.erb → report.html.erb} +0 -0
- data/lib/metric_fu/metrics/churn/{churn.rb → generator.rb} +0 -0
- data/lib/metric_fu/metrics/churn/{churn_hotspot.rb → hotspot.rb} +0 -0
- data/lib/metric_fu/metrics/churn/{init.rb → metric.rb} +0 -0
- data/lib/metric_fu/metrics/churn/{template_awesome/churn.html.erb → report.html.erb} +0 -0
- data/lib/metric_fu/metrics/flay/{flay.rb → generator.rb} +16 -2
- data/lib/metric_fu/metrics/flay/{flay_grapher.rb → grapher.rb} +0 -0
- data/lib/metric_fu/metrics/flay/{flay_hotspot.rb → hotspot.rb} +0 -0
- data/lib/metric_fu/metrics/flay/{init.rb → metric.rb} +1 -1
- data/lib/metric_fu/metrics/flay/{template_awesome/flay.html.erb → report.html.erb} +0 -0
- data/lib/metric_fu/metrics/flog/{flog.rb → generator.rb} +0 -0
- data/lib/metric_fu/metrics/flog/{flog_grapher.rb → grapher.rb} +0 -0
- data/lib/metric_fu/metrics/flog/{flog_hotspot.rb → hotspot.rb} +0 -0
- data/lib/metric_fu/metrics/flog/{init.rb → metric.rb} +1 -1
- data/lib/metric_fu/metrics/flog/{template_awesome/flog.html.erb → report.html.erb} +0 -0
- data/lib/metric_fu/metrics/hotspots/{hotspots.rb → generator.rb} +1 -1
- data/lib/metric_fu/metrics/hotspots/{init.rb → metric.rb} +0 -0
- data/lib/metric_fu/metrics/hotspots/{template_awesome/hotspots.html.erb → report.html.erb} +0 -0
- data/lib/metric_fu/metrics/rails_best_practices/{rails_best_practices.rb → generator.rb} +0 -0
- data/lib/metric_fu/metrics/rails_best_practices/{rails_best_practices_grapher.rb → grapher.rb} +0 -0
- data/lib/metric_fu/metrics/rails_best_practices/{init.rb → metric.rb} +1 -1
- data/lib/metric_fu/metrics/rails_best_practices/{template_awesome/rails_best_practices.html.erb → report.html.erb} +0 -0
- data/lib/metric_fu/metrics/rcov/{rcov.rb → generator.rb} +0 -0
- data/lib/metric_fu/metrics/rcov/{rcov_grapher.rb → grapher.rb} +0 -0
- data/lib/metric_fu/metrics/rcov/{rcov_hotspot.rb → hotspot.rb} +0 -0
- data/lib/metric_fu/metrics/rcov/{init.rb → metric.rb} +0 -0
- data/lib/metric_fu/metrics/rcov/rcov_format_coverage.rb +57 -9
- data/lib/metric_fu/metrics/rcov/{template_awesome/rcov.html.erb → report.html.erb} +0 -0
- data/lib/metric_fu/metrics/rcov/simplecov_formatter.rb +13 -2
- data/lib/metric_fu/metrics/reek/{reek.rb → generator.rb} +0 -0
- data/lib/metric_fu/metrics/reek/{reek_grapher.rb → grapher.rb} +0 -0
- data/lib/metric_fu/metrics/reek/{reek_hotspot.rb → hotspot.rb} +1 -1
- data/lib/metric_fu/metrics/reek/{init.rb → metric.rb} +0 -0
- data/lib/metric_fu/metrics/reek/{template_awesome/reek.html.erb → report.html.erb} +0 -0
- data/lib/metric_fu/metrics/roodi/{roodi.rb → generator.rb} +0 -0
- data/lib/metric_fu/metrics/roodi/{roodi_grapher.rb → grapher.rb} +0 -0
- data/lib/metric_fu/metrics/roodi/{roodi_hotspot.rb → hotspot.rb} +0 -0
- data/lib/metric_fu/metrics/roodi/{init.rb → metric.rb} +0 -0
- data/lib/metric_fu/metrics/roodi/{template_awesome/roodi.html.erb → report.html.erb} +0 -0
- data/lib/metric_fu/metrics/saikuro/{saikuro.rb → generator.rb} +0 -0
- data/lib/metric_fu/metrics/saikuro/{saikuro_hotspot.rb → hotspot.rb} +0 -0
- data/lib/metric_fu/metrics/saikuro/{init.rb → metric.rb} +0 -0
- data/lib/metric_fu/metrics/saikuro/{template_awesome/saikuro.html.erb → report.html.erb} +0 -0
- data/lib/metric_fu/metrics/stats/{stats.rb → generator.rb} +1 -1
- data/lib/metric_fu/metrics/stats/{stats_grapher.rb → grapher.rb} +0 -0
- data/lib/metric_fu/metrics/stats/{stats_hotspot.rb → hotspot.rb} +0 -0
- data/lib/metric_fu/metrics/stats/{init.rb → metric.rb} +0 -0
- data/lib/metric_fu/metrics/stats/{template_awesome/stats.html.erb → report.html.erb} +0 -0
- data/lib/metric_fu/{metrics → reporting/graphs}/graph.rb +0 -0
- data/lib/metric_fu/{reporting/templates/awesome → templates}/_graph.html.erb +0 -0
- data/lib/metric_fu/{reporting/templates/awesome → templates}/_report_footer.html.erb +0 -0
- data/lib/metric_fu/templates/configuration.rb +3 -2
- data/lib/metric_fu/{reporting/templates/awesome → templates}/index.html.erb +1 -1
- data/lib/metric_fu/{reporting/templates → templates}/javascripts/bluff-min.js +0 -0
- data/lib/metric_fu/{reporting/templates → templates}/javascripts/bluff_graph.js +0 -0
- data/lib/metric_fu/{reporting/templates → templates}/javascripts/excanvas.js +0 -0
- data/lib/metric_fu/{reporting/templates → templates}/javascripts/highcharts.js +0 -0
- data/lib/metric_fu/{reporting/templates → templates}/javascripts/highcharts_graph.js +0 -0
- data/lib/metric_fu/{reporting/templates → templates}/javascripts/js-class.js +0 -0
- data/lib/metric_fu/{reporting/templates → templates}/javascripts/standalone-framework.js +0 -0
- data/lib/metric_fu/{reporting/templates → templates}/javascripts/utils.js +0 -0
- data/lib/metric_fu/{reporting/templates/awesome → templates}/layout.html.erb +1 -1
- data/lib/metric_fu/templates/metrics_template.rb +68 -0
- data/lib/metric_fu/templates/report.rb +11 -3
- data/lib/metric_fu/{metrics/base_template.rb → templates/template.rb} +8 -24
- data/lib/metric_fu/utility.rb +25 -0
- data/lib/metric_fu/version.rb +1 -1
- data/metric_fu.gemspec +2 -0
- data/spec/capture_warnings.rb +48 -0
- data/spec/dummy/lib/bad_encoding.rb +6 -0
- data/spec/fixtures/coverage-153.rb +11 -0
- data/spec/fixtures/rcov_output.txt +135 -0
- data/spec/metric_fu/configuration_spec.rb +4 -265
- data/spec/metric_fu/formatter/configuration_spec.rb +46 -0
- data/spec/metric_fu/formatter/html_spec.rb +17 -25
- data/spec/metric_fu/formatter/yaml_spec.rb +1 -1
- data/spec/metric_fu/{metrics/generator_spec.rb → generator_spec.rb} +0 -0
- data/spec/metric_fu/metrics/cane/configuration_spec.rb +22 -0
- data/spec/metric_fu/metrics/cane/{cane_spec.rb → generator_spec.rb} +1 -1
- data/spec/metric_fu/metrics/churn/configuration_spec.rb +15 -0
- data/spec/metric_fu/metrics/churn/{churn_spec.rb → generator_spec.rb} +1 -1
- data/spec/metric_fu/metrics/flay/configuration_spec.rb +15 -0
- data/spec/metric_fu/metrics/flay/{flay_spec.rb → generator_spec.rb} +2 -2
- data/spec/metric_fu/metrics/flay/{flay_grapher_spec.rb → grapher_spec.rb} +1 -1
- data/spec/metric_fu/metrics/flog/configuration_spec.rb +20 -0
- data/spec/metric_fu/metrics/flog/{flog_spec.rb → generator_spec.rb} +1 -1
- data/spec/metric_fu/metrics/flog/{flog_grapher_spec.rb → grapher_spec.rb} +1 -1
- data/spec/metric_fu/metrics/hotspots/{hotspots_spec.rb → generator_spec.rb} +1 -1
- data/spec/metric_fu/metrics/rails_best_practices/configuration_spec.rb +47 -0
- data/spec/metric_fu/metrics/rails_best_practices/{rails_best_practices_spec.rb → generator_spec.rb} +1 -1
- data/spec/metric_fu/metrics/rails_best_practices/{rails_best_practices_grapher_spec.rb → grapher_spec.rb} +1 -1
- data/spec/metric_fu/metrics/rcov/configuration_spec.rb +30 -0
- data/spec/metric_fu/metrics/rcov/generator_spec.rb +26 -0
- data/spec/metric_fu/metrics/rcov/{rcov_grapher_spec.rb → grapher_spec.rb} +1 -1
- data/spec/metric_fu/metrics/rcov/{rcov_hotspot_spec.rb → hotspot_spec.rb} +2 -2
- data/spec/metric_fu/metrics/rcov/simplecov_formatter_spec.rb +40 -12
- data/spec/metric_fu/metrics/reek/configuration_spec.rb +13 -0
- data/spec/metric_fu/metrics/reek/{reek_spec.rb → generator_spec.rb} +1 -1
- data/spec/metric_fu/metrics/reek/{reek_grapher_spec.rb → grapher_spec.rb} +1 -1
- data/spec/metric_fu/metrics/roodi/configuration_spec.rb +16 -0
- data/spec/metric_fu/metrics/roodi/{roodi_spec.rb → generator_spec.rb} +1 -1
- data/spec/metric_fu/metrics/roodi/{roodi_grapher_spec.rb → grapher_spec.rb} +1 -1
- data/spec/metric_fu/metrics/saikuro/configuration_spec.rb +26 -0
- data/spec/metric_fu/metrics/saikuro/{saikuro_spec.rb → generator_spec.rb} +1 -1
- data/spec/metric_fu/metrics/stats/{stats_spec.rb → generator_spec.rb} +1 -1
- data/spec/metric_fu/metrics/stats/{stats_grapher_spec.rb → grapher_spec.rb} +1 -1
- data/spec/metric_fu/{metrics → reporting/graphs}/graph_spec.rb +1 -1
- data/spec/metric_fu/run_spec.rb +1 -1
- data/spec/metric_fu/templates/configuration_spec.rb +57 -0
- data/spec/metric_fu/templates/report_spec.rb +15 -0
- data/spec/metric_fu/{metrics/base_template_spec.rb → templates/template_spec.rb} +0 -0
- data/spec/quality_spec.rb +86 -0
- data/spec/shared/configured.rb +47 -0
- data/spec/shared/test_coverage.rb +99 -0
- data/spec/spec_helper.rb +9 -5
- data/spec/support/helper_methods.rb +3 -2
- data/spec/support/matcher_create_file.rb +2 -2
- data/spec/support/matcher_create_files.rb +2 -2
- data/spec/support/usage_test.rb +24 -7
- data/spec/usage_test_spec.rb +28 -2
- metadata +165 -112
- metadata.gz.sig +0 -0
- data/Gemfile.devtools +0 -39
- data/lib/metric_fu/reporting/templates/awesome/awesome_template.rb +0 -62
- data/spec/metric_fu/metrics/rcov/rcov_spec.rb +0 -185
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NTlhNTUwYTY3MzMxNmZiZGM4YzM4YjI0YjM2ZmUwMTU4MzA2YTM5NQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZTNjOGQwNjIxOWRhYWYzYzE3ZWE4MTAzYjhlZmI0ZDAzNGU3Mjc3NQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZTkwMWM3ZjBkMjUwZDQzYzJiMmQ1YzZlZmNmMzMxNDVlNWM4NWRkZTE4MTEy
|
10
|
+
MGM4YjI3YjBkYWQxNGJhZGE5NTFiNDgxMmUwMTU4YzY2OTY5NjYzYjdlYTg4
|
11
|
+
YzFhYTVkZWRiYzU2ZDNiNzk3NWM3ZGNkMDBjYjI1NGZkMDI5OWI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZjkyNGU5YmE2MGRjYmEwODJkMTdlY2JlNjc0OWM5Y2JmZTc5ZGI4YmQ3NzEw
|
14
|
+
MDI0YWE1ZGYxMDVkYWM5MzNhY2VkZDlhYjc1NjkxYjE3ZTRjMGI2NjUyZDZj
|
15
|
+
ZWY1NWI4NmJlNzE5ZGE4NTY5MTdiOTE4NWRmODI4OTVmNGFjNGQ=
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
�
|
2
|
-
|
1
|
+
ҫ�4e�v��b�-��Nt�+>�g��>,�b*�rtz
|
2
|
+
���<e�3�F�%z��Aʁp�"f�n2��Y���ٲ�E�#c�����@�H�P����ע���q�_o<���1���#b�����5�'ϟi�~kR�)��7�� �O+�*~���
|
data/.simplecov
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# https://github.com/colszowka/simplecov#using-simplecov-for-centralized-config
|
2
|
+
# see https://github.com/colszowka/simplecov/blob/master/lib/simplecov/defaults.rb
|
3
|
+
if SimpleCov.respond_to?(:profiles)
|
4
|
+
SimpleCov.profiles
|
5
|
+
else
|
6
|
+
SimpleCov.adapters
|
7
|
+
end.define 'metric_fu' do
|
8
|
+
if defined?(load_profile)
|
9
|
+
load_profile 'test_frameworks'
|
10
|
+
else
|
11
|
+
load_adapter 'test_frameworks'
|
12
|
+
end
|
13
|
+
|
14
|
+
add_group "Cli", "lib/metric_fu/cli"
|
15
|
+
add_group "Data Structures", "lib/metric_fu/data_structures"
|
16
|
+
add_group "Formatters", "lib/metric_fu/formatter"
|
17
|
+
add_group "Hotspots", "lib/metric_fu/metrics/hotspots"
|
18
|
+
add_group "Metrics", "lib/metric_fu/metrics"
|
19
|
+
add_group "Reporters", "lib/metric_fu/reporting"
|
20
|
+
add_group "Templates", "lib/metric_fu/templates"
|
21
|
+
|
22
|
+
add_group "Long files" do |src_file|
|
23
|
+
src_file.lines.count > 100
|
24
|
+
end
|
25
|
+
class MaxLinesFilter < SimpleCov::Filter
|
26
|
+
def matches?(source_file)
|
27
|
+
source_file.lines.count < filter_argument
|
28
|
+
end
|
29
|
+
end
|
30
|
+
add_group "Short files", MaxLinesFilter.new(5)
|
31
|
+
|
32
|
+
# Exclude these paths from analysis
|
33
|
+
add_filter 'bundle'
|
34
|
+
add_filter 'bin'
|
35
|
+
add_filter 'lib/metric_fu/tasks'
|
36
|
+
end
|
37
|
+
SimpleCov.at_exit do
|
38
|
+
File.open(File.join(SimpleCov.coverage_path, 'coverage_percent.txt'), 'w') do |f|
|
39
|
+
f.write SimpleCov.result.covered_percent
|
40
|
+
end
|
41
|
+
SimpleCov.result.format!
|
42
|
+
end
|
data/.travis.yml
CHANGED
@@ -1,21 +1,22 @@
|
|
1
1
|
language: ruby
|
2
|
-
bundler_args: --
|
2
|
+
bundler_args: --path vendor/bundle
|
3
3
|
script: bundle exec rspec
|
4
4
|
cache: bundler
|
5
5
|
gemfile:
|
6
6
|
- gemfiles/Gemfile.travis
|
7
7
|
before_install:
|
8
8
|
- gem install bundler
|
9
|
-
- bundle config --local without local_development
|
10
|
-
# env:
|
11
|
-
# - "rack=1.3.4"
|
9
|
+
- bundle config --local without local_development yard guard
|
12
10
|
rvm:
|
13
|
-
|
11
|
+
# 2.1, not 2.1.0 until fixed https://github.com/travis-ci/travis-ci/issues/2220
|
12
|
+
- 2.1
|
14
13
|
- 2.0.0
|
15
14
|
- 1.9.3
|
16
15
|
- 1.9.2
|
17
16
|
- jruby
|
18
|
-
- rbx-2
|
17
|
+
- "rbx-2"
|
19
18
|
matrix:
|
20
19
|
allow_failures:
|
21
20
|
- rvm: rbx-2
|
21
|
+
- rvm: 2.1
|
22
|
+
fast_finish: true
|
data/CONTRIBUTING.md
CHANGED
@@ -8,7 +8,7 @@ How to contribute:
|
|
8
8
|
|
9
9
|
## Code
|
10
10
|
|
11
|
-
1. Fork and clone the repo: `git clone git://github.com/yourghname/metric_fu.git && cd metric_fu`
|
11
|
+
1. Fork and clone the repo: `git clone git://github.com/yourghname/metric_fu.git && cd metric_fu`
|
12
12
|
2. Install the gem dependencies: `bundle install`
|
13
13
|
3. Make the changes you want and back them up with tests.
|
14
14
|
* Run the tests (`bundle exec rspec`)
|
data/DEV.md
CHANGED
@@ -9,14 +9,15 @@ MetricFu.loader.load_user_configuration
|
|
9
9
|
MetricFu.loader.loaded_files
|
10
10
|
MetricFu.lib_require { 'utility' }
|
11
11
|
MetricFu.lib_dir #=> metric_fu/lib
|
12
|
-
MetricFu.lib_require('metrics') { 'flog/
|
13
|
-
MetricFu.metrics_require {'flog/
|
12
|
+
MetricFu.lib_require('metrics') { 'flog/metric' }
|
13
|
+
MetricFu.metrics_require {'flog/metric' }
|
14
14
|
MetricFu.metrics_dir #=> metric_fu/lib/metrics
|
15
15
|
MetricFu.formatter_require { 'html' }
|
16
16
|
MetricFu.formatter_dir #=> metric_fu/lib/formatter
|
17
17
|
MetricFu.reporting_require { 'result' }
|
18
18
|
MetricFu.reporting_dir #=> metric_fu/lib/reporting
|
19
19
|
MetricFu.logging_require { 'mf_debugger' }
|
20
|
+
MetricFu.lib_require { 'logger' }
|
20
21
|
MetricFu.logging_dir #=> metric_fu/lib/logging
|
21
22
|
MetricFu.errors_require { 'analysis_error' }
|
22
23
|
MetricFu.errors_dir #=> metric_fu/lib/errors
|
@@ -41,7 +42,7 @@ end
|
|
41
42
|
|
42
43
|
```ruby
|
43
44
|
# Given
|
44
|
-
template =
|
45
|
+
template = MetricFu::Templates::MetricsTemplate.new
|
45
46
|
|
46
47
|
# Render _report_footer.html.erb partial:
|
47
48
|
|
data/Gemfile
CHANGED
@@ -1,17 +1,39 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
source 'https://rubygems.org'
|
2
3
|
|
3
|
-
|
4
4
|
group :test, :local_development do
|
5
5
|
gem 'pry'
|
6
6
|
gem 'pry-nav'
|
7
|
-
gem 'redcarpet', :platforms => :ruby
|
8
7
|
end
|
9
8
|
|
10
9
|
gemspec :path => File.expand_path('..', __FILE__)
|
11
10
|
|
12
|
-
# group :development, :test do
|
13
|
-
# gem 'devtools', git: 'https://github.com/rom-rb/devtools.git'
|
14
|
-
# end
|
15
|
-
|
16
11
|
# Added by devtools
|
17
|
-
|
12
|
+
group :development do
|
13
|
+
gem 'rake', '~> 10.1.0'
|
14
|
+
gem 'rspec', '~> 3.0.0.beta2'
|
15
|
+
gem 'yard', '~> 0.8.7', group: :yard
|
16
|
+
end
|
17
|
+
|
18
|
+
group :guard do
|
19
|
+
gem 'guard', '~> 1.8.1'
|
20
|
+
gem 'guard-bundler', '~> 1.0.0'
|
21
|
+
gem 'guard-rspec'
|
22
|
+
|
23
|
+
# file system change event handling
|
24
|
+
gem 'listen', '~> 1.3.0'
|
25
|
+
gem 'rb-fchange', '~> 0.0.6', require: false
|
26
|
+
gem 'rb-fsevent', '~> 0.9.3', require: false
|
27
|
+
gem 'rb-inotify', '~> 0.9.0', require: false
|
28
|
+
|
29
|
+
# notification handling
|
30
|
+
gem 'libnotify', '~> 0.8.0', require: false
|
31
|
+
gem 'rb-notifu', '~> 0.0.4', require: false
|
32
|
+
gem 'terminal-notifier-guard', '~> 1.5.3', require: false
|
33
|
+
end
|
34
|
+
|
35
|
+
platform :jruby do
|
36
|
+
group :jruby do
|
37
|
+
gem 'jruby-openssl', '~> 0.8.5'
|
38
|
+
end
|
39
|
+
end
|
data/HISTORY.md
CHANGED
@@ -1,16 +1,42 @@
|
|
1
|
-
Changes are below categorized as `Features, Fixes, or Misc`.
|
1
|
+
Changes are below categorized as `Breaking changes, Features, Fixes, or Misc`.
|
2
2
|
|
3
3
|
Each change should fall into categories that would affect whether the release is major (breaking changes), minor (new behavior), or patch (bug fix). See [semver](http://semver.org/) and [pessimistic versioning](http://docs.rubygems.org/read/chapter/16#page74)
|
4
4
|
|
5
|
-
As such, a _Feature_ would map to either major or minor. A _bug fix_ to a patch. And _misc_ is either minor or patch, the difference being kind of fuzzy for the purposes of history. Adding tests would be patch level.
|
5
|
+
As such, a _Feature_ would map to either major (breaking change) or minor. A _bug fix_ to a patch. And _misc_ is either minor or patch, the difference being kind of fuzzy for the purposes of history. Adding tests would be patch level.
|
6
6
|
|
7
|
-
### Master [changes](https://github.com/metricfu/metric_fu/compare/v4.
|
7
|
+
### Master [changes](https://github.com/metricfu/metric_fu/compare/v4.11.0...master)
|
8
8
|
|
9
9
|
* Breaking Changes
|
10
10
|
* Features
|
11
11
|
* Fixes
|
12
12
|
* Misc
|
13
13
|
|
14
|
+
### [4.11.0](https://github.com/metricfu/metric_fu/compare/v4.10.0...v4.11.0)
|
15
|
+
|
16
|
+
* Features
|
17
|
+
* There is now a `MetricFu.logger` with standard available configurations.
|
18
|
+
The old `mf_debug` and `mf_log` main mixin is presevered. Needs documentation. See #113. (Benjamin Fleischer, a49bfdd182)
|
19
|
+
* Use *launchy* (new dependency) when opening output files. (Nick Veys, #224)
|
20
|
+
* Coverage formatter now behaves like SimpleCov; it ignores certain lines in
|
21
|
+
calculating the precent run. Fixes #153, #222 (Benjamin Fleischer, #226).
|
22
|
+
- Thanks to @crv for the test in #153
|
23
|
+
- Note: JRuby will usually report different Coverage from MRI. This is a known issue.
|
24
|
+
- Note: This technically is a *breaking change* from how RCov works. But wwe don't run RCov anymore. (65bf21723291f)
|
25
|
+
* Fixes
|
26
|
+
* Ensure paths with spaces don't cause the open command to fail (Nick Veys, #220)
|
27
|
+
* Read in source files for annotation in BINARY mode to avoid encoding errors. (Benjamin Fleischer, #216)
|
28
|
+
* Start SimpleCov before any MetricFu code is loaded. Coverage isn't tracked on already-loaded code. (Benjamin Fleischer, cca659f7d48d3f6799)
|
29
|
+
* Remove unused/invalid Flay param 'filetypes'. Closes #151. (Benjamin Fleischer, 5973595f51c)
|
30
|
+
* Misc
|
31
|
+
* Document ENV variables the may fix encoding exceptions. (Mike Szyndel, #217)
|
32
|
+
* Begin adding shared tests for metrics and configuration. Test fenced-codeblock matching. (Benjamin Fleischer, #221)
|
33
|
+
* Reorganize the application file layout. Still more to be done. (Benjamin Fleischer, #223)
|
34
|
+
* Rename AwesomeTemplate to MetricFu::Templates::MetricsTemplate. (Benjamin Fleischer, 55c52afd95d78)
|
35
|
+
* Rename ReekHotspot to MetricFu::ReekHotspot. Was missing namespace. (Benjamin Fleischer, a3aa70c1a9)
|
36
|
+
* Allow failures for Ruby 2.1, in addition to rbx per issues with rvm. (Benjamin Fleischer, 3018b22)
|
37
|
+
* `spec/quality_spec.rb` checks for whitespace, tabs, quotes, etc. `rake spec` also checks for warnings. (Benjamin Fleischer, b0c51bb9b17)
|
38
|
+
* When run with COVERAGE=true, will ouptut a file to `coverage/coverage_percent.txt` that can be checked via `rake check_code_coverage`. Borrowed from VCR. (Benjamin Fleischer, 32df3a34c6)
|
39
|
+
|
14
40
|
### [4.10.0 / 2014-04-01](https://github.com/metricfu/metric_fu/compare/v4.9.0...v4.10.0)
|
15
41
|
|
16
42
|
* Features
|
data/README.md
CHANGED
@@ -19,7 +19,7 @@ To be sure the gem you install hasn't been tampered with:
|
|
19
19
|
|
20
20
|
The MediumSecurity trust profile will verify signed gems, but allow the installation of unsigned dependencies.
|
21
21
|
|
22
|
-
This is necessary because not all of MetricFu
|
22
|
+
This is necessary because not all of MetricFu's dependencies are signed, so we cannot use HighSecurity.
|
23
23
|
|
24
24
|
## Usage
|
25
25
|
|
@@ -228,6 +228,11 @@ SimpleCov.start
|
|
228
228
|
Additionally, the `coverage_file` path must be specified as above
|
229
229
|
and must exist.
|
230
230
|
|
231
|
+
## Common problems / debugging
|
232
|
+
|
233
|
+
- ['ArgumentError; message invalid byte sequence in US-ASCII'](https://github.com/metricfu/metric_fu/issues/215) may be caused by having a default external encoding that is not UTF-8. You can see this in the output of `metric_fu --debug`
|
234
|
+
- OSX: Ensure you have set `LANG=en_US.UTF-8` and `LC_ALL=en_US.UTF-8`. You can add these to your `~/.profile`.
|
235
|
+
|
231
236
|
## Compatibility
|
232
237
|
|
233
238
|
* It is currently testing on MRI (>= 1.9.3), JRuby (19 mode), and Rubinius (19 mode). Ruby 1.8 is no longer supported.
|
data/Rakefile
CHANGED
@@ -1,22 +1,44 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
-
|
2
|
+
using_git = File.exist?(File.expand_path('../.git/', __FILE__))
|
3
|
+
if using_git
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'bundler/gem_helper'
|
6
|
+
Bundler::GemHelper.install_tasks
|
7
|
+
# require 'appraisal'
|
8
|
+
end
|
9
|
+
require 'rake'
|
3
10
|
|
4
11
|
Dir['./gem_tasks/*.rake'].each do |task|
|
5
12
|
import(task)
|
6
13
|
end
|
7
14
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
require 'rspec/core/rake_task'
|
16
|
+
desc "Run all specs in spec directory"
|
17
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
18
|
+
t.verbose = false
|
19
|
+
|
20
|
+
t.pattern = "spec/**/_spec.rb"
|
21
|
+
# we require spec_helper so we don't get an RSpec warning about
|
22
|
+
# examples being defined before configuration.
|
23
|
+
t.ruby_opts = "-I./spec -r./spec/capture_warnings -rspec_helper"
|
24
|
+
t.rspec_opts = %w[--format progress] if (ENV['FULL_BUILD'] || !using_git)
|
18
25
|
end
|
19
26
|
|
20
27
|
require File.expand_path File.join(File.dirname(__FILE__),'lib/metric_fu')
|
21
28
|
|
29
|
+
# Borrowed from vcr
|
30
|
+
desc "Checks the spec coverage and fails if it is less than 100%"
|
31
|
+
task :check_code_coverage do
|
32
|
+
if RUBY_VERSION.to_f < 1.9 || RUBY_ENGINE != 'ruby'
|
33
|
+
puts "Cannot check code coverage--simplecov is not supported on this platform"
|
34
|
+
else
|
35
|
+
percent = Float(File.read("./coverage/coverage_percent.txt"))
|
36
|
+
if percent < 98.0
|
37
|
+
abort "Spec coverage was not high enough: #{percent.round(2)}%"
|
38
|
+
else
|
39
|
+
puts "Nice job! Spec coverage is still above 98%"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
22
44
|
task :default => :spec
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
e71e2ed626a7b3ee170116c5e72d846ba36039b0f016eb31ca87c9815534f27d5c85cf9bb42308bb2b3f539d123aa3ffea8fb7692c9a1c6f2b616a3511bf11f1
|
data/gem_tasks/usage_test.rake
CHANGED
@@ -1,6 +1,3 @@
|
|
1
|
-
require 'redcarpet'
|
2
|
-
require 'English'
|
3
|
-
require 'tmpdir'
|
4
1
|
ROOT_PATH = File.expand_path("..", File.dirname(__FILE__))
|
5
2
|
require File.join(ROOT_PATH, 'spec', 'support', 'usage_test')
|
6
3
|
LIB_PATH = File.join(ROOT_PATH, 'lib')
|
@@ -20,11 +17,3 @@ task "usage_test" => %w[load_path] do
|
|
20
17
|
usage_test = UsageTest.new
|
21
18
|
usage_test.test_files(EXAMPLE_FILES)
|
22
19
|
end
|
23
|
-
|
24
|
-
class HTMLRenderAndVerifyCodeBlocks < Redcarpet::Render::HTML
|
25
|
-
|
26
|
-
def block_code(code, language)
|
27
|
-
SnippetRunner.new(code, language).test!
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
data/lib/metric_fu.rb
CHANGED
@@ -8,6 +8,18 @@ module MetricFu
|
|
8
8
|
|
9
9
|
module_function
|
10
10
|
|
11
|
+
def root
|
12
|
+
@app_root ||= Pathname(APP_ROOT)
|
13
|
+
end
|
14
|
+
|
15
|
+
def metric_url
|
16
|
+
'https://github.com/metricfu/metric_fu'
|
17
|
+
end
|
18
|
+
|
19
|
+
def metric_name
|
20
|
+
'MetricFu'
|
21
|
+
end
|
22
|
+
|
11
23
|
def run_dir
|
12
24
|
@run_dir ||= Dir.pwd
|
13
25
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
MetricFu.
|
1
|
+
MetricFu.lib_require { 'logger' }
|
2
2
|
module MetricFu
|
3
3
|
|
4
4
|
# Even though the below class methods are defined on the MetricFu module
|
@@ -63,10 +63,6 @@ module MetricFu
|
|
63
63
|
reset
|
64
64
|
end
|
65
65
|
|
66
|
-
def mf_debug(msg)
|
67
|
-
MfDebugger.mf_debug msg
|
68
|
-
end
|
69
|
-
|
70
66
|
# TODO review if these code is functionally duplicated in the
|
71
67
|
# base generator initialize
|
72
68
|
attr_reader :formatters
|
@@ -1,16 +1,16 @@
|
|
1
1
|
require 'redcard'
|
2
2
|
require 'rbconfig'
|
3
|
-
MetricFu.
|
3
|
+
MetricFu.lib_require { 'logger' }
|
4
4
|
module MetricFu
|
5
5
|
module Environment
|
6
6
|
|
7
7
|
# TODO: Set log_level here, instead
|
8
8
|
def verbose
|
9
|
-
|
9
|
+
MetricFu.logger.debug_on
|
10
10
|
end
|
11
11
|
|
12
12
|
def verbose=(toggle)
|
13
|
-
|
13
|
+
MetricFu.logger.debug_on = toggle
|
14
14
|
end
|
15
15
|
|
16
16
|
# Perform a simple check to try and guess if we're running
|
data/lib/metric_fu/formatter.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
require 'launchy'
|
1
2
|
MetricFu.formatter_require { 'yaml' }
|
2
|
-
MetricFu.
|
3
|
+
MetricFu.reporting_require { 'graphs/graph' }
|
3
4
|
module MetricFu
|
4
5
|
module Formatter
|
5
6
|
class HTML
|
@@ -44,7 +45,7 @@ module MetricFu
|
|
44
45
|
|
45
46
|
# Instantiates a new template class based on the configuration set
|
46
47
|
# in MetricFu::Configuration, or through the MetricFu.config block
|
47
|
-
# in your rake file (defaults to the included
|
48
|
+
# in your rake file (defaults to the included MetricFu::Templates::MetricsTemplate),
|
48
49
|
# assigns the result_hash to the result_hash in the template, and
|
49
50
|
# tells the template to to write itself out.
|
50
51
|
def save_templatized_result
|
@@ -71,25 +72,24 @@ module MetricFu
|
|
71
72
|
|
72
73
|
# Checks to discover whether we should try and open the results
|
73
74
|
# of the report in the browser on this system. We only try and open
|
74
|
-
# in the browser if we're
|
75
|
-
#
|
76
|
-
# details about how we make those guesses.
|
75
|
+
# in the browser if we're not running in a CruiseControl.rb environment.
|
76
|
+
# See MetricFu.configuration for more details about how we make those guesses.
|
77
77
|
#
|
78
78
|
# @return Boolean
|
79
79
|
# Should we open in the browser or not?
|
80
80
|
def open_in_browser?
|
81
|
-
MetricFu.configuration.
|
82
|
-
! MetricFu.configuration.is_cruise_control_rb?
|
81
|
+
! MetricFu.configuration.is_cruise_control_rb?
|
83
82
|
end
|
84
83
|
|
85
84
|
# Shows 'index.html' from the passed directory in the browser
|
86
85
|
# if we're able to open the browser on this platform.
|
87
86
|
#
|
88
|
-
# @param dir
|
87
|
+
# @param dir Pathname
|
89
88
|
# The directory path where the 'index.html' we want to open is
|
90
89
|
# stored
|
91
90
|
def show_in_browser(dir)
|
92
|
-
|
91
|
+
uri = URI.join(URI.escape("file://#{dir}/"), 'index.html')
|
92
|
+
Launchy.open(uri) if open_in_browser?
|
93
93
|
end
|
94
94
|
end
|
95
95
|
end
|