code_metric_fu 4.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +28 -0
- data/.metrics +3 -0
- data/.rspec +2 -0
- data/.rubocop.yml +15 -0
- data/.rubocop_todo.yml +69 -0
- data/.simplecov +74 -0
- data/.travis.yml +22 -0
- data/.yardopts +4 -0
- data/AUTHORS +12 -0
- data/CONTRIBUTING.md +47 -0
- data/CONTRIBUTORS +76 -0
- data/DEV.md +76 -0
- data/Gemfile +74 -0
- data/Guardfile +30 -0
- data/HISTORY.md +705 -0
- data/MIT-LICENSE +22 -0
- data/README.md +299 -0
- data/Rakefile +27 -0
- data/TODO.md +118 -0
- data/appveyor.yml +31 -0
- data/bin/metric_fu +9 -0
- data/bin/mf-cane +10 -0
- data/bin/mf-churn +10 -0
- data/bin/mf-flay +10 -0
- data/bin/mf-reek +10 -0
- data/bin/mf-roodi +10 -0
- data/bin/mf-saikuro +10 -0
- data/certs/bf4.pem +22 -0
- data/checksum/.gitkeep +0 -0
- data/checksum/metric_fu-4.10.0.gem.sha512 +1 -0
- data/checksum/metric_fu-4.11.0.gem.sha512 +1 -0
- data/checksum/metric_fu-4.11.1.gem.sha512 +1 -0
- data/checksum/metric_fu-4.11.2.gem.sha512 +1 -0
- data/checksum/metric_fu-4.11.3.gem.sha512 +1 -0
- data/checksum/metric_fu-4.11.4.gem.sha512 +1 -0
- data/checksum/metric_fu-4.12.0.gem.sha512 +1 -0
- data/checksum/metric_fu-4.2.0.gem.sha512 +1 -0
- data/checksum/metric_fu-4.2.1.gem.sha512 +1 -0
- data/checksum/metric_fu-4.3.0.gem.sha512 +1 -0
- data/checksum/metric_fu-4.3.1.gem.sha512 +1 -0
- data/checksum/metric_fu-4.4.0.gem.sha512 +1 -0
- data/checksum/metric_fu-4.4.1.gem.sha512 +1 -0
- data/checksum/metric_fu-4.4.2.gem.sha512 +1 -0
- data/checksum/metric_fu-4.4.3.gem.sha512 +1 -0
- data/checksum/metric_fu-4.4.4.gem.sha512 +1 -0
- data/checksum/metric_fu-4.5.0.gem.sha512 +1 -0
- data/checksum/metric_fu-4.5.1.gem.sha512 +1 -0
- data/checksum/metric_fu-4.5.2.gem.sha512 +1 -0
- data/checksum/metric_fu-4.6.0.gem.sha512 +1 -0
- data/checksum/metric_fu-4.7.0.gem.sha512 +1 -0
- data/checksum/metric_fu-4.7.1.gem.sha512 +1 -0
- data/checksum/metric_fu-4.7.2.gem.sha512 +1 -0
- data/checksum/metric_fu-4.7.3.gem.sha512 +1 -0
- data/checksum/metric_fu-4.7.4.gem.sha512 +1 -0
- data/checksum/metric_fu-4.8.0.gem.sha512 +1 -0
- data/checksum/metric_fu-4.9.0.gem.sha512 +1 -0
- data/config/roodi_config.yml +22 -0
- data/config/rubocop.yml +269 -0
- data/gem_tasks/build.rake +197 -0
- data/gem_tasks/rubocop.rake +10 -0
- data/gem_tasks/usage_test.rake +19 -0
- data/gem_tasks/yard.rake +24 -0
- data/lib/metric_fu/calculate.rb +10 -0
- data/lib/metric_fu/cli/client.rb +26 -0
- data/lib/metric_fu/cli/helper.rb +80 -0
- data/lib/metric_fu/cli/parser.rb +138 -0
- data/lib/metric_fu/configuration.rb +150 -0
- data/lib/metric_fu/constantize.rb +57 -0
- data/lib/metric_fu/data_structures/line_numbers.rb +112 -0
- data/lib/metric_fu/data_structures/location.rb +110 -0
- data/lib/metric_fu/data_structures/sexp_node.rb +107 -0
- data/lib/metric_fu/environment.rb +129 -0
- data/lib/metric_fu/errors/analysis_error.rb +4 -0
- data/lib/metric_fu/formatter/html.rb +96 -0
- data/lib/metric_fu/formatter/syntax.rb +45 -0
- data/lib/metric_fu/formatter/yaml.rb +18 -0
- data/lib/metric_fu/formatter.rb +40 -0
- data/lib/metric_fu/gem_run.rb +70 -0
- data/lib/metric_fu/gem_version.rb +92 -0
- data/lib/metric_fu/generator.rb +135 -0
- data/lib/metric_fu/io.rb +132 -0
- data/lib/metric_fu/loader.rb +105 -0
- data/lib/metric_fu/logger.rb +62 -0
- data/lib/metric_fu/logging/mf_debugger.rb +23 -0
- data/lib/metric_fu/metric.rb +143 -0
- data/lib/metric_fu/metrics/cane/generator.rb +95 -0
- data/lib/metric_fu/metrics/cane/grapher.rb +37 -0
- data/lib/metric_fu/metrics/cane/metric.rb +34 -0
- data/lib/metric_fu/metrics/cane/report.html.erb +87 -0
- data/lib/metric_fu/metrics/cane/violations.rb +46 -0
- data/lib/metric_fu/metrics/churn/generator.rb +37 -0
- data/lib/metric_fu/metrics/churn/hotspot.rb +43 -0
- data/lib/metric_fu/metrics/churn/metric.rb +29 -0
- data/lib/metric_fu/metrics/churn/report.html.erb +58 -0
- data/lib/metric_fu/metrics/flay/generator.rb +51 -0
- data/lib/metric_fu/metrics/flay/grapher.rb +37 -0
- data/lib/metric_fu/metrics/flay/hotspot.rb +52 -0
- data/lib/metric_fu/metrics/flay/metric.rb +28 -0
- data/lib/metric_fu/metrics/flay/report.html.erb +29 -0
- data/lib/metric_fu/metrics/flog/generator.rb +113 -0
- data/lib/metric_fu/metrics/flog/grapher.rb +77 -0
- data/lib/metric_fu/metrics/flog/hotspot.rb +46 -0
- data/lib/metric_fu/metrics/flog/metric.rb +29 -0
- data/lib/metric_fu/metrics/flog/report.html.erb +50 -0
- data/lib/metric_fu/metrics/hotspots/analysis/analyzed_problems.rb +34 -0
- data/lib/metric_fu/metrics/hotspots/analysis/analyzer_tables.rb +114 -0
- data/lib/metric_fu/metrics/hotspots/analysis/grouping.rb +23 -0
- data/lib/metric_fu/metrics/hotspots/analysis/groupings.rb +12 -0
- data/lib/metric_fu/metrics/hotspots/analysis/problems.rb +20 -0
- data/lib/metric_fu/metrics/hotspots/analysis/ranked_problem_location.rb +70 -0
- data/lib/metric_fu/metrics/hotspots/analysis/ranking.rb +29 -0
- data/lib/metric_fu/metrics/hotspots/analysis/rankings.rb +91 -0
- data/lib/metric_fu/metrics/hotspots/analysis/record.rb +32 -0
- data/lib/metric_fu/metrics/hotspots/analysis/scoring_strategies.rb +24 -0
- data/lib/metric_fu/metrics/hotspots/analysis/table.rb +67 -0
- data/lib/metric_fu/metrics/hotspots/generator.rb +40 -0
- data/lib/metric_fu/metrics/hotspots/hotspot.rb +87 -0
- data/lib/metric_fu/metrics/hotspots/hotspot_analyzer.rb +61 -0
- data/lib/metric_fu/metrics/hotspots/metric.rb +20 -0
- data/lib/metric_fu/metrics/hotspots/report.html.erb +60 -0
- data/lib/metric_fu/metrics/rails_best_practices/generator.rb +47 -0
- data/lib/metric_fu/metrics/rails_best_practices/grapher.rb +38 -0
- data/lib/metric_fu/metrics/rails_best_practices/metric.rb +31 -0
- data/lib/metric_fu/metrics/rails_best_practices/report.html.erb +22 -0
- data/lib/metric_fu/metrics/rcov/external_client.rb +22 -0
- data/lib/metric_fu/metrics/rcov/generator.rb +75 -0
- data/lib/metric_fu/metrics/rcov/grapher.rb +37 -0
- data/lib/metric_fu/metrics/rcov/hotspot.rb +46 -0
- data/lib/metric_fu/metrics/rcov/metric.rb +61 -0
- data/lib/metric_fu/metrics/rcov/rcov_format_coverage.rb +149 -0
- data/lib/metric_fu/metrics/rcov/rcov_line.rb +48 -0
- data/lib/metric_fu/metrics/rcov/report.html.erb +40 -0
- data/lib/metric_fu/metrics/rcov/simplecov_formatter.rb +74 -0
- data/lib/metric_fu/metrics/reek/generator.rb +97 -0
- data/lib/metric_fu/metrics/reek/grapher.rb +55 -0
- data/lib/metric_fu/metrics/reek/hotspot.rb +95 -0
- data/lib/metric_fu/metrics/reek/metric.rb +26 -0
- data/lib/metric_fu/metrics/reek/report.html.erb +35 -0
- data/lib/metric_fu/metrics/roodi/generator.rb +41 -0
- data/lib/metric_fu/metrics/roodi/grapher.rb +37 -0
- data/lib/metric_fu/metrics/roodi/hotspot.rb +39 -0
- data/lib/metric_fu/metrics/roodi/metric.rb +24 -0
- data/lib/metric_fu/metrics/roodi/report.html.erb +22 -0
- data/lib/metric_fu/metrics/saikuro/generator.rb +145 -0
- data/lib/metric_fu/metrics/saikuro/hotspot.rb +51 -0
- data/lib/metric_fu/metrics/saikuro/metric.rb +31 -0
- data/lib/metric_fu/metrics/saikuro/parsing_element.rb +37 -0
- data/lib/metric_fu/metrics/saikuro/report.html.erb +71 -0
- data/lib/metric_fu/metrics/saikuro/scratch_file.rb +108 -0
- data/lib/metric_fu/metrics/stats/generator.rb +82 -0
- data/lib/metric_fu/metrics/stats/grapher.rb +40 -0
- data/lib/metric_fu/metrics/stats/hotspot.rb +35 -0
- data/lib/metric_fu/metrics/stats/metric.rb +28 -0
- data/lib/metric_fu/metrics/stats/report.html.erb +44 -0
- data/lib/metric_fu/reporter.rb +37 -0
- data/lib/metric_fu/reporting/graphs/graph.rb +69 -0
- data/lib/metric_fu/reporting/graphs/grapher.rb +66 -0
- data/lib/metric_fu/reporting/result.rb +59 -0
- data/lib/metric_fu/run.rb +82 -0
- data/lib/metric_fu/tasks/metric_fu.rake +54 -0
- data/lib/metric_fu/templates/_gem_info.html.erb +8 -0
- data/lib/metric_fu/templates/_graph.html.erb +2 -0
- data/lib/metric_fu/templates/_report_footer.html.erb +1 -0
- data/lib/metric_fu/templates/configuration.rb +25 -0
- data/lib/metric_fu/templates/css/bluff.css +15 -0
- data/lib/metric_fu/templates/css/buttons.css +82 -0
- data/lib/metric_fu/templates/css/default.css +43 -0
- data/lib/metric_fu/templates/css/integrity.css +337 -0
- data/lib/metric_fu/templates/css/rcov.css +32 -0
- data/lib/metric_fu/templates/css/reset.css +7 -0
- data/lib/metric_fu/templates/css/syntax.css +19 -0
- data/lib/metric_fu/templates/index.html.erb +13 -0
- data/lib/metric_fu/templates/javascripts/bluff-min.js +1 -0
- data/lib/metric_fu/templates/javascripts/bluff_graph.js +15 -0
- data/lib/metric_fu/templates/javascripts/excanvas.js +35 -0
- data/lib/metric_fu/templates/javascripts/highcharts.js +294 -0
- data/lib/metric_fu/templates/javascripts/highcharts_graph.js +38 -0
- data/lib/metric_fu/templates/javascripts/js-class.js +1 -0
- data/lib/metric_fu/templates/javascripts/standalone-framework.js +17 -0
- data/lib/metric_fu/templates/javascripts/utils.js +9 -0
- data/lib/metric_fu/templates/layout.html.erb +41 -0
- data/lib/metric_fu/templates/metrics_template.rb +86 -0
- data/lib/metric_fu/templates/report.html.erb +31 -0
- data/lib/metric_fu/templates/report.rb +41 -0
- data/lib/metric_fu/templates/template.rb +247 -0
- data/lib/metric_fu/utility.rb +79 -0
- data/lib/metric_fu/version.rb +9 -0
- data/lib/metric_fu.rb +143 -0
- data/metric_fu.gemspec +72 -0
- data/spec/capture_warnings.rb +55 -0
- data/spec/cli/helper_spec.rb +165 -0
- data/spec/dummy/.gitignore +1 -0
- data/spec/dummy/.gitkeep +0 -0
- data/spec/dummy/.metrics +4 -0
- data/spec/dummy/lib/.gitkeep +0 -0
- data/spec/dummy/lib/bad_encoding.rb +6 -0
- data/spec/dummy/spec/.gitkeep +0 -0
- data/spec/fixtures/20090630.yml +7922 -0
- data/spec/fixtures/coverage-153.rb +11 -0
- data/spec/fixtures/coverage.rb +13 -0
- data/spec/fixtures/exit0.sh +3 -0
- data/spec/fixtures/exit1.sh +3 -0
- data/spec/fixtures/hotspots/flog.yml +86 -0
- data/spec/fixtures/hotspots/generator.yml +47 -0
- data/spec/fixtures/hotspots/generator_analysis.yml +53 -0
- data/spec/fixtures/hotspots/reek.yml +14 -0
- data/spec/fixtures/hotspots/roodi.yml +13 -0
- data/spec/fixtures/hotspots/saikuro.yml +27 -0
- data/spec/fixtures/hotspots/several_metrics.yml +47 -0
- data/spec/fixtures/hotspots/stats.yml +4 -0
- data/spec/fixtures/hotspots/three_metrics_on_same_file.yml +36 -0
- data/spec/fixtures/line_numbers/foo.rb +33 -0
- data/spec/fixtures/line_numbers/module.rb +11 -0
- data/spec/fixtures/line_numbers/module_surrounds_class.rb +15 -0
- data/spec/fixtures/line_numbers/two_classes.rb +11 -0
- data/spec/fixtures/metric_missing.yml +1 -0
- data/spec/fixtures/rcov_output.txt +135 -0
- data/spec/fixtures/saikuro/app/controllers/sessions_controller.rb_cyclo.html +10 -0
- data/spec/fixtures/saikuro/app/controllers/users_controller.rb_cyclo.html +16 -0
- data/spec/fixtures/saikuro/index_cyclo.html +155 -0
- data/spec/fixtures/saikuro_sfiles/thing.rb_cyclo.html +11 -0
- data/spec/metric_fu/calculate_spec.rb +21 -0
- data/spec/metric_fu/configuration_spec.rb +90 -0
- data/spec/metric_fu/data_structures/line_numbers_spec.rb +63 -0
- data/spec/metric_fu/data_structures/location_spec.rb +110 -0
- data/spec/metric_fu/formatter/configuration_spec.rb +44 -0
- data/spec/metric_fu/formatter/html_spec.rb +138 -0
- data/spec/metric_fu/formatter/yaml_spec.rb +61 -0
- data/spec/metric_fu/formatter_spec.rb +49 -0
- data/spec/metric_fu/gem_version_spec.rb +12 -0
- data/spec/metric_fu/generator_spec.rb +130 -0
- data/spec/metric_fu/loader_spec.rb +10 -0
- data/spec/metric_fu/metric_spec.rb +46 -0
- data/spec/metric_fu/metrics/cane/configuration_spec.rb +22 -0
- data/spec/metric_fu/metrics/cane/generator_spec.rb +184 -0
- data/spec/metric_fu/metrics/churn/configuration_spec.rb +13 -0
- data/spec/metric_fu/metrics/churn/generator_spec.rb +64 -0
- data/spec/metric_fu/metrics/flay/configuration_spec.rb +13 -0
- data/spec/metric_fu/metrics/flay/generator_spec.rb +105 -0
- data/spec/metric_fu/metrics/flay/grapher_spec.rb +57 -0
- data/spec/metric_fu/metrics/flog/configuration_spec.rb +18 -0
- data/spec/metric_fu/metrics/flog/generator_spec.rb +77 -0
- data/spec/metric_fu/metrics/flog/grapher_spec.rb +107 -0
- data/spec/metric_fu/metrics/hotspots/analysis/analyzed_problems_spec.rb +104 -0
- data/spec/metric_fu/metrics/hotspots/analysis/analyzer_tables_spec.rb +71 -0
- data/spec/metric_fu/metrics/hotspots/analysis/ranking_spec.rb +30 -0
- data/spec/metric_fu/metrics/hotspots/analysis/rankings_spec.rb +97 -0
- data/spec/metric_fu/metrics/hotspots/analysis/table_spec.rb +6 -0
- data/spec/metric_fu/metrics/hotspots/generator_spec.rb +46 -0
- data/spec/metric_fu/metrics/hotspots/hotspot_analyzer_spec.rb +10 -0
- data/spec/metric_fu/metrics/hotspots/hotspot_spec.rb +16 -0
- data/spec/metric_fu/metrics/rails_best_practices/configuration_spec.rb +55 -0
- data/spec/metric_fu/metrics/rails_best_practices/generator_spec.rb +33 -0
- data/spec/metric_fu/metrics/rails_best_practices/grapher_spec.rb +62 -0
- data/spec/metric_fu/metrics/rcov/configuration_spec.rb +28 -0
- data/spec/metric_fu/metrics/rcov/generator_spec.rb +22 -0
- data/spec/metric_fu/metrics/rcov/grapher_spec.rb +57 -0
- data/spec/metric_fu/metrics/rcov/hotspot_spec.rb +20 -0
- data/spec/metric_fu/metrics/rcov/rcov_line_spec.rb +89 -0
- data/spec/metric_fu/metrics/rcov/simplecov_formatter_spec.rb +67 -0
- data/spec/metric_fu/metrics/reek/configuration_spec.rb +13 -0
- data/spec/metric_fu/metrics/reek/generator_spec.rb +169 -0
- data/spec/metric_fu/metrics/reek/grapher_spec.rb +66 -0
- data/spec/metric_fu/metrics/roodi/configuration_spec.rb +14 -0
- data/spec/metric_fu/metrics/roodi/generator_spec.rb +82 -0
- data/spec/metric_fu/metrics/roodi/grapher_spec.rb +57 -0
- data/spec/metric_fu/metrics/saikuro/configuration_spec.rb +25 -0
- data/spec/metric_fu/metrics/saikuro/generator_spec.rb +71 -0
- data/spec/metric_fu/metrics/stats/generator_spec.rb +96 -0
- data/spec/metric_fu/metrics/stats/grapher_spec.rb +69 -0
- data/spec/metric_fu/reporter_spec.rb +41 -0
- data/spec/metric_fu/reporting/graphs/graph_spec.rb +44 -0
- data/spec/metric_fu/reporting/graphs/grapher_spec.rb +24 -0
- data/spec/metric_fu/reporting/result_spec.rb +50 -0
- data/spec/metric_fu/run_spec.rb +197 -0
- data/spec/metric_fu/templates/configuration_spec.rb +51 -0
- data/spec/metric_fu/templates/metrics_template_spec.rb +11 -0
- data/spec/metric_fu/templates/report_spec.rb +15 -0
- data/spec/metric_fu/templates/template_spec.rb +233 -0
- data/spec/metric_fu/utility_spec.rb +12 -0
- data/spec/metric_fu_spec.rb +33 -0
- data/spec/quality_spec.rb +114 -0
- data/spec/shared/configured.rb +45 -0
- data/spec/shared/test_coverage.rb +95 -0
- data/spec/spec_helper.rb +54 -0
- data/spec/support/deferred_garbaged_collection.rb +33 -0
- data/spec/support/helper_methods.rb +32 -0
- data/spec/support/matcher_create_file.rb +37 -0
- data/spec/support/matcher_create_files.rb +43 -0
- data/spec/support/suite.rb +26 -0
- data/spec/support/test_fixtures.rb +37 -0
- data/spec/support/timeout.rb +7 -0
- data/spec/support/usage_test.rb +150 -0
- data/spec/usage_test_spec.rb +93 -0
- metadata +757 -0
data/MIT-LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2008,2009,2010,2011 Jake Scruggs
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person
|
4
|
+
obtaining a copy of this software and associated documentation
|
5
|
+
files (the "Software"), to deal in the Software without
|
6
|
+
restriction, including without limitation the rights to use,
|
7
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the
|
9
|
+
Software is furnished to do so, subject to the following
|
10
|
+
conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
17
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
19
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
20
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,299 @@
|
|
1
|
+
# MetricFu [![Gem Version](https://badge.fury.io/rb/metric_fu.png)](http://badge.fury.io/rb/metric_fu) [![Build Status](https://travis-ci.org/metricfu/metric_fu.png?branch=master)](http://travis-ci.org/metricfu/metric_fu)
|
2
|
+
|
3
|
+
[![Join the chat at https://gitter.im/metricfu/metric_fu](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/metricfu/metric_fu?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
4
|
+
|
5
|
+
[![Code Climate](https://codeclimate.com/github/metricfu/metric_fu.png)](https://codeclimate.com/github/metricfu/metric_fu) [![Inline docs](http://inch-ci.org/github/metricfu/metric_fu.png)](http://inch-ci.org/github/metricfu/metric_fu) [![Dependency Status](https://gemnasium.com/metricfu/metric_fu.png)](https://gemnasium.com/metricfu/metric_fu)
|
6
|
+
|
7
|
+
[Rdoc](http://rdoc.info/github/metricfu/metric_fu/)
|
8
|
+
|
9
|
+
## Maintenance
|
10
|
+
|
11
|
+
MetricFu needs maintainers. If you are up for helping out, please left a note in [issue 280]( https://github.com/metricfu/metric_fu/issues/280). MetricFu is free and open source code that belongs to everyone. Benjamin (@bf4) hasn't been working on MetricFu for a while, which is a great opportunity for you to step up!
|
12
|
+
|
13
|
+
## Installation
|
14
|
+
|
15
|
+
gem install metric_fu
|
16
|
+
|
17
|
+
If you have trouble installing the gem
|
18
|
+
- try adding metric_fu to your Gemfile and bundling.
|
19
|
+
- file a ticket on the issues page.
|
20
|
+
|
21
|
+
MetricFu is [cryptographically signed](http://guides.rubygems.org/security/).
|
22
|
+
To be sure the gem you install hasn't been tampered with:
|
23
|
+
- Add my public key (if you haven't already) as a trusted certificate `gem cert --add <(curl -Ls https://raw.github.com/metricfu/metric_fu/master/certs/bf4.pem)`
|
24
|
+
- `gem install metric_fu -P MediumSecurity`
|
25
|
+
|
26
|
+
The MediumSecurity trust profile will verify signed gems, but allow the installation of unsigned dependencies.
|
27
|
+
|
28
|
+
This is necessary because not all of MetricFu's dependencies are signed, so we cannot use HighSecurity.
|
29
|
+
|
30
|
+
## Usage
|
31
|
+
|
32
|
+
From your application root. Running via Rake is still supported.
|
33
|
+
|
34
|
+
```sh
|
35
|
+
metric_fu
|
36
|
+
```
|
37
|
+
|
38
|
+
See:
|
39
|
+
- `metric_fu --help` for more options
|
40
|
+
- Documentation and Compatibility below
|
41
|
+
- There is also a [wiki page of user-maintained usage information](https://github.com/metricfu/metric_fu/wiki#usage)
|
42
|
+
|
43
|
+
## Contact
|
44
|
+
|
45
|
+
*Code and Bug Reports*
|
46
|
+
|
47
|
+
* [Issue Tracker](http://github.com/metricfu/metric_fu/issues)
|
48
|
+
* See [CONTRIBUTING](https://github.com/metricfu/metric_fu/blob/master/CONTRIBUTING.md) for how to contribute
|
49
|
+
|
50
|
+
*Questions, Problems, Suggestions, etc.*
|
51
|
+
|
52
|
+
* [Google Group](https://groups.google.com/forum/#!forum/metric_fu)
|
53
|
+
|
54
|
+
## Documentation
|
55
|
+
|
56
|
+
MetricFu will attempt to load configuration data from a
|
57
|
+
`.metrics` file, if present in your repository root.
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
MetricFu.report_name # by default, your directory base name
|
61
|
+
MetricFu.report_name = 'Something Convenient'
|
62
|
+
```
|
63
|
+
|
64
|
+
### Example Configuration
|
65
|
+
|
66
|
+
```ruby
|
67
|
+
# To configure individual metrics...
|
68
|
+
MetricFu::Configuration.run do |config|
|
69
|
+
config.configure_metric(:cane) do |cane|
|
70
|
+
cane.enabled = true
|
71
|
+
cane.abc_max = 15
|
72
|
+
cane.line_length = 80
|
73
|
+
cane.no_doc = 'y'
|
74
|
+
cane.no_readme = 'y'
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
# Or, alternative format
|
79
|
+
MetricFu.configuration.configure_metric(:churn) do |churn|
|
80
|
+
churn.enabled = true
|
81
|
+
churn.ignore_files = 'HISTORY.md, TODO.md'
|
82
|
+
churn.start_date = '6 months ago'
|
83
|
+
end
|
84
|
+
|
85
|
+
# Or, to (re)configure all metrics
|
86
|
+
MetricFu.configuration.configure_metrics.each do |metric|
|
87
|
+
if [:churn, :flay, :flog].include?(metric.name)
|
88
|
+
metric.enabled = true
|
89
|
+
else
|
90
|
+
metric.enabled = false
|
91
|
+
end
|
92
|
+
end
|
93
|
+
```
|
94
|
+
|
95
|
+
### Rails Best Practices
|
96
|
+
|
97
|
+
```ruby
|
98
|
+
MetricFu::Configuration.run do |config|
|
99
|
+
config.configure_metric(:rails_best_practices) do |rbp|
|
100
|
+
rbp.silent = true
|
101
|
+
rbp.exclude = ["config/chef"]
|
102
|
+
end
|
103
|
+
end
|
104
|
+
```
|
105
|
+
|
106
|
+
### Coverage Metrics
|
107
|
+
|
108
|
+
```ruby
|
109
|
+
MetricFu::Configuration.run do |config|
|
110
|
+
config.configure_metric(:rcov) do |rcov|
|
111
|
+
rcov.coverage_file = MetricFu.run_path.join("coverage/rcov/rcov.txt")
|
112
|
+
rcov.enable
|
113
|
+
rcov.activate
|
114
|
+
end
|
115
|
+
end
|
116
|
+
```
|
117
|
+
|
118
|
+
If you want metric_fu to actually run rcov itself (1.8 only), don't specify an external file to read from
|
119
|
+
|
120
|
+
#### Rcov metrics with Ruby 1.8
|
121
|
+
|
122
|
+
To generate the same metrics metric_fu has been generating run from the root of your project before running metric_fu
|
123
|
+
|
124
|
+
```shell
|
125
|
+
RAILS_ENV=test rcov $(ruby -e "puts Dir['{spec,test}/**/*_{spec,test}.rb'].join(' ')") --sort coverage --no-html --text-coverage --no-color --profile --exclude-only '.*' --include-file "\Aapp,\Alib" -Ispec > coverage/rcov/rcov.txt
|
126
|
+
```
|
127
|
+
|
128
|
+
#### Simplecov metrics with Ruby 1.9 and 2.0
|
129
|
+
|
130
|
+
Add to your Gemfile or otherwise install
|
131
|
+
|
132
|
+
```ruby
|
133
|
+
gem 'simplecov'
|
134
|
+
```
|
135
|
+
|
136
|
+
Modify your [spec_helper](https://github.com/metricfu/metric_fu/blob/master/spec/spec_helper.rb) as per the SimpleCov docs and run your tests before running metric_fu
|
137
|
+
|
138
|
+
```ruby
|
139
|
+
#in your spec_helper
|
140
|
+
require 'simplecov'
|
141
|
+
require 'metric_fu/metrics/rcov/simplecov_formatter'
|
142
|
+
SimpleCov.formatter = SimpleCov::Formatter::MetricFu
|
143
|
+
# or
|
144
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
145
|
+
SimpleCov::Formatter::HTMLFormatter,
|
146
|
+
SimpleCov::Formatter::MetricFu
|
147
|
+
]
|
148
|
+
SimpleCov.start
|
149
|
+
```
|
150
|
+
|
151
|
+
Additionally, the `coverage_file` path must be specified as above and must exist.
|
152
|
+
|
153
|
+
### Formatters
|
154
|
+
|
155
|
+
#### Built-in Formatters
|
156
|
+
|
157
|
+
By default, metric_fu will use the built-in html formatter to generate HTML reports for each metric with pretty graphs.
|
158
|
+
|
159
|
+
These reports are generated in metric_fu's output directory (`tmp/metric_fu/output`) by default. You can customize the output directory by specifying an out directory at the command line
|
160
|
+
using a relative path:
|
161
|
+
|
162
|
+
```sh
|
163
|
+
metric_fu --out custom_directory # outputs to tmp/metric_fu/custom_directory
|
164
|
+
```
|
165
|
+
|
166
|
+
or a full path:
|
167
|
+
|
168
|
+
```sh
|
169
|
+
metric_fu --out $HOME/tmp/metrics # outputs to $HOME/tmp/metrics
|
170
|
+
```
|
171
|
+
|
172
|
+
You can specify a different formatter at the command line by referencing a built-in formatter or providing the fully-qualified name of a custom formatter.
|
173
|
+
|
174
|
+
|
175
|
+
```sh
|
176
|
+
metric_fu --format yaml --out custom_report.yml
|
177
|
+
```
|
178
|
+
|
179
|
+
Or in Ruby, such as in your `.metrics`
|
180
|
+
|
181
|
+
```ruby
|
182
|
+
# Specify multiple formatters
|
183
|
+
# The second argument, the output file, is optional
|
184
|
+
MetricFu::Configuration.run do |config|
|
185
|
+
config.configure_formatter(:html)
|
186
|
+
config.configure_formatter(:yaml, "customreport.yml")
|
187
|
+
config.configure_formatter(:yaml)
|
188
|
+
end
|
189
|
+
```
|
190
|
+
|
191
|
+
#### Custom Formatters
|
192
|
+
|
193
|
+
You can customize metric_fu's output format with a custom formatter.
|
194
|
+
|
195
|
+
To create a custom formatter, you simply need to create a class
|
196
|
+
that takes an options hash and responds to one or more notifications:
|
197
|
+
|
198
|
+
```ruby
|
199
|
+
class MyCustomFormatter
|
200
|
+
def initialize(opts={}); end # metric_fu will pass in an output param if provided.
|
201
|
+
|
202
|
+
# Should include one or more of...
|
203
|
+
def start; end # Sent before metric_fu starts metric measurements.
|
204
|
+
def start_metric(metric); end # Sent before individual metric is measured.
|
205
|
+
def finish_metric(metric); end # Sent after individual metric measurement is complete.
|
206
|
+
def finish; end # Sent after metric_fu has completed all measurements.
|
207
|
+
def display_results; end # Used to open results in browser, etc.
|
208
|
+
end
|
209
|
+
```
|
210
|
+
|
211
|
+
Then
|
212
|
+
|
213
|
+
```shell
|
214
|
+
metric_fu --format MyCustomFormatter
|
215
|
+
```
|
216
|
+
|
217
|
+
See [lib/metric_fu/formatter/](lib/metric_fu/formatter/) for examples.
|
218
|
+
|
219
|
+
MetricFu will attempt to require a custom formatter by
|
220
|
+
fully qualified name based on ruby search path. So if you include a custom
|
221
|
+
formatter as a gem in your Gemfile, you should be able to use it out of the box.
|
222
|
+
But you may find in certain cases that you need to add a require to
|
223
|
+
your .metrics configuration file.
|
224
|
+
|
225
|
+
For instance, to require a formatter in your app's lib directory `require './lib/my_custom_formatter.rb'`
|
226
|
+
|
227
|
+
### Configure Graph Engine
|
228
|
+
|
229
|
+
By default, MetricFu uses the Bluff (JavaScript) graph engine.
|
230
|
+
|
231
|
+
```ruby
|
232
|
+
MetricFu.configuration.configure_graph_engine(:bluff)
|
233
|
+
```
|
234
|
+
|
235
|
+
But it you may also use the [Highcharts JS library](http://shop.highsoft.com/highcharts.html)
|
236
|
+
|
237
|
+
```ruby
|
238
|
+
MetricFu.configuration.configure_graph_engine(:highcharts)
|
239
|
+
```
|
240
|
+
|
241
|
+
Notice: There was previously a :gchart option.
|
242
|
+
It was not properly deprecated in the 4.x series.
|
243
|
+
|
244
|
+
## Common problems / debugging
|
245
|
+
|
246
|
+
- ['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`
|
247
|
+
- OSX: Ensure you have set `LANG=en_US.UTF-8` and `LC_ALL=en_US.UTF-8`. You can add these to your `~/.profile`.
|
248
|
+
|
249
|
+
## Compatibility
|
250
|
+
|
251
|
+
* It is currently testing on MRI (>= 1.9.3), JRuby (19 mode), and Rubinius (19 mode). Ruby 1.8 is no longer supported.
|
252
|
+
|
253
|
+
* For 1.8.7 support, see version 3.0.0 for partial support, or 2.1.3.7.18.1 (where [Semantic Versioning](http://semver.org/) goes to die)
|
254
|
+
|
255
|
+
* MetricFu no longer runs any of the analyzed code. For code coverage, you may use a formatter as documented above
|
256
|
+
|
257
|
+
* The Cane, Flog, and Rails Best Practices metrics are disabled when Ripper is not available
|
258
|
+
|
259
|
+
### Historical
|
260
|
+
|
261
|
+
There is some useful-but-out-of-date documentation about configuring metric_fu at http://metricfu.github.io/metric_fu and a change log in the the HISTORY file.
|
262
|
+
|
263
|
+
## Resources:
|
264
|
+
|
265
|
+
This is the official repository for metric_fu. The original repository by Jake Scruggs at [https://github.com/jscruggs/metric_fu](https://github.com/jscruggs/metric_fu) has been deprecated.
|
266
|
+
|
267
|
+
* [Official Repository](http://github.com/metricfu/metric_fu)
|
268
|
+
* [Outdated Homepage](http://metricfu.github.io/metric_fu/)
|
269
|
+
* [List of code tools](https://github.com/metricfu/metric_fu/wiki/Code-Tools)
|
270
|
+
* [Roadmap](https://github.com/metricfu/metric_fu/wiki/Roadmap)
|
271
|
+
|
272
|
+
### Metrics
|
273
|
+
|
274
|
+
* [Cane](https://rubygems.org/gems/cane), [Source](http://github.com/square/cane)
|
275
|
+
* [Churn](https://rubygems.org/gems/churn), [Source](http://github.com/danmayer/churn)
|
276
|
+
* [Flog](https://rubygems.org/gems/flog), [Source](https://github.com/seattlerb/flog)
|
277
|
+
* [Flay](https://rubygems.org/gems/flay), [Source](https://github.com/seattlerb/flay)
|
278
|
+
* [Reek](https://rubygems.org/gems/reek) [Source](https://github.com/troessner/reek)
|
279
|
+
* [Roodi](https://rubygems.org/gems/roodi), [Source](https://github.com/roodi/roodi)
|
280
|
+
* [Saikuro](https://rubygems.org/gems/metric_fu-Saikuro), [Source](https://github.com/metricfu/Saikuro)
|
281
|
+
* [Code Statistics](https://rubygems.org/gems/code_metrics), [Source](https://github.com/bf4/code_metrics)
|
282
|
+
* Rails-only
|
283
|
+
* [Rails Best Practices](https://rubygems.org/gems/rails_best_practices), [Source](https://github.com/railsbp/rails_best_practices)
|
284
|
+
* Test Coverage
|
285
|
+
* 1.9: [SimpleCov](http://rubygems.org/gems/simplecov) and SimpleCov::Formatter::MetricFu
|
286
|
+
* 1.8: [Rcov](http://rubygems.org/gems/rcov)
|
287
|
+
* Hotspots (a meta-metric of the above)
|
288
|
+
|
289
|
+
|
290
|
+
### Original Resources:
|
291
|
+
|
292
|
+
* Github: http://github.com/jscruggs/metric_fu
|
293
|
+
* Issue Tracker: http://github.com/jscruggs/metric_fu/issues
|
294
|
+
* Historical Homepage: http://metric-fu.rubyforge.org/
|
295
|
+
* Jake's Blog: http://jakescruggs.blogspot.com/
|
296
|
+
* Jake's Post about stepping down: http://jakescruggs.blogspot.com/2012/08/why-i-abandoned-metricfu.html
|
297
|
+
|
298
|
+
|
299
|
+
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/metricfu/metric_fu/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
|
data/Rakefile
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
using_git = File.exist?(File.expand_path('../.git/', __FILE__))
|
3
|
+
if using_git
|
4
|
+
require 'bundler/setup'
|
5
|
+
end
|
6
|
+
require 'rake'
|
7
|
+
require 'simplecov'
|
8
|
+
|
9
|
+
Dir['./gem_tasks/*.rake'].each do |task|
|
10
|
+
import(task)
|
11
|
+
end
|
12
|
+
|
13
|
+
require 'rspec/core/rake_task'
|
14
|
+
desc "Run all specs in spec directory"
|
15
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
16
|
+
t.verbose = false
|
17
|
+
|
18
|
+
t.pattern = "spec/**/_spec.rb"
|
19
|
+
# we require spec_helper so we don't get an RSpec warning about
|
20
|
+
# examples being defined before configuration.
|
21
|
+
t.ruby_opts = "-I./spec -r./spec/capture_warnings -rspec_helper"
|
22
|
+
t.rspec_opts = %w[--format progress] if (ENV['FULL_BUILD'] || !using_git)
|
23
|
+
end
|
24
|
+
|
25
|
+
require File.expand_path File.join(File.dirname(__FILE__),'lib/metric_fu')
|
26
|
+
|
27
|
+
task :default => :spec
|
data/TODO.md
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
# TODO list
|
2
|
+
|
3
|
+
* Keep HISTORY.md in master up to date
|
4
|
+
|
5
|
+
Items in each category are in generally order of decreasing priority.
|
6
|
+
The categories themselves are not in any priority order.
|
7
|
+
|
8
|
+
Also see [CONTRIBUTING](./CONTRIBUTING.md)
|
9
|
+
|
10
|
+
## Features
|
11
|
+
|
12
|
+
* Make it easier to whitelist metrics when running from the commanline (cli)
|
13
|
+
* Be able to specify folders to run against rather than just app and lib
|
14
|
+
* Be able to run metric tools from metric_fu without shelling out
|
15
|
+
* Allow the coverage task to specify the command it runs plus any flags (see bundler/capistrano options)
|
16
|
+
* Add configurable logger to all output streams
|
17
|
+
* Load all gems at config time so you fail fast if one is missing
|
18
|
+
* Color code flog results with scale from: http://jakescruggs.blogspot.com/2008/08/whats-good-flog-score.html
|
19
|
+
* Make the template pages prettier (hold off until [61](https://github.com/metricfu/metric_fu/pull/61) is merged)
|
20
|
+
* Be able to generate historical metrics for eg gem releases (tagged with appropriate date)
|
21
|
+
|
22
|
+
## Testing
|
23
|
+
|
24
|
+
* Test against a rails app, see [yui-rails](https://github.com/nextmat/yui-rails/tree/master/test/dummy)
|
25
|
+
* Determine how to test metric_fu against codebases that are not metric_fu, to ensure it works on most applications
|
26
|
+
* This is especially true for rails applications
|
27
|
+
* Remove / Modify Devver code from the generators/hotspots_spec and base/hotspot_analzyer_spec
|
28
|
+
* Add tests
|
29
|
+
* Remove useless tests
|
30
|
+
* Remove tests that use StandardTemplate. Will require updating tests yml output, which may not be easy
|
31
|
+
|
32
|
+
## Bugs / Fixes
|
33
|
+
|
34
|
+
* See issues
|
35
|
+
|
36
|
+
## Misc
|
37
|
+
|
38
|
+
### Work on dependent libraries
|
39
|
+
|
40
|
+
* Look into getting rails_best_practices, cane, and flog to use a non-MRI-specific parser, such as [parser](https://github.com/whitequark/parser/), aka not Ripper
|
41
|
+
|
42
|
+
### Improvements
|
43
|
+
|
44
|
+
* See TODO items in the code
|
45
|
+
* Change how config works to not metaprogrammatically create so many
|
46
|
+
instance variables and accessors
|
47
|
+
* Clarify the execution path and what a metric's api should be, (repeat for templates and graphs)
|
48
|
+
* Change MetricFu.report.add(metric) to e.g. MetricFu.generate_report(metric) to make clear that this actually runs the tool
|
49
|
+
* Clarify hotspot weighting
|
50
|
+
* Update the wiki with use cases
|
51
|
+
* Review how metric_fu uses each tools to generate metrics, e.g. by shelling out commands, rake task, modifying the output, etc.
|
52
|
+
* Understand and explain s-expressions and how they're used (or should be ) in [line_numbers.rb](https://github.com/metricfu/metric_fu/blob/master/lib/metric_fu/data_structures/line_numbers.rb) (via the ruby_parser)
|
53
|
+
* maybe see [reek tree dresser](https://github.com/troessner/reek/blob/master/lib/reek/source/tree_dresser.rb) and [reek code parser](https://github.com/troessner/reek/blob/master/lib/reek/core/code_parser.rb) or
|
54
|
+
* [ripper-tags](https://github.com/tmm1/ripper-tags)
|
55
|
+
* Remove dead code
|
56
|
+
* Determine if CodeIssue is used, else remove it
|
57
|
+
* Remove references to Ruport from the Devver / Caliper code
|
58
|
+
* Understand and explain how each metric can be used
|
59
|
+
* Improve metric_fu code metrics
|
60
|
+
* Refactor the hotspots code
|
61
|
+
* Is there any reason not to remove the Manifest.txt?
|
62
|
+
* Consider removing need for the core extensions (ActiveSupport)
|
63
|
+
|
64
|
+
### Documentation
|
65
|
+
|
66
|
+
* Get the rdoc (or yard) published
|
67
|
+
* Add more inline documentation
|
68
|
+
* See other documentation code for examples to improve ours:
|
69
|
+
* https://github.com/charliesome/better_errors/blob/master/CONTRIBUTING.md
|
70
|
+
* https://github.com/charliesome/better_errors/blob/master/README.md
|
71
|
+
|
72
|
+
### Other
|
73
|
+
|
74
|
+
* Look into issues for the tools metric_fu uses
|
75
|
+
* Look into other tools that might work well
|
76
|
+
* Update contributing or issue guidlines
|
77
|
+
* Suggest commit message guidelines
|
78
|
+
* [Update the homepage](https://github.com/metricfu/metricfu.github.com)
|
79
|
+
|
80
|
+
## Future Thoughts
|
81
|
+
|
82
|
+
* Look into how to manage plugins or otherwise load abritrary metrics
|
83
|
+
* [Hoe](https://github.com/seattlerb/hoe/blob/master/lib/hoe.rb#L301)
|
84
|
+
* CLI [Flog](https://github.com/seattlerb/flog/blob/master/lib/flog_cli.rb) Plugins [Flog](https://github.com/seattlerb/flog/blob/master/lib/flog_cli.rb#L34)
|
85
|
+
* Look into adding
|
86
|
+
* https://github.com/metricfu/code_statistics [1](https://github.com/cloudability/code_statistics)
|
87
|
+
* or extract from rails into a gem [rake task](https://github.com/rails/rails/blob/master/railties/lib/rails/tasks/statistics.rake) [can be modified by rspec](https://github.com/rspec/rspec-rails/blob/master/lib/rspec/rails/tasks/rspec.rake#L38) with the [calculator](https://github.com/rails/rails/blob/master/railties/lib/rails/code_statistics_calculator.rb) and [class](https://github.com/rails/rails/blob/master/railties/lib/rails/code_statistics.rb)
|
88
|
+
* brakeman https://github.com/metricfu/brakeman
|
89
|
+
* laser https://github.com/metricfu/laser
|
90
|
+
* Other intersting libraries to consider:
|
91
|
+
* https://gist.github.com/4562865 for generating Flog on ERB templates by jamesmartin
|
92
|
+
* https://github.com/chad/turbulence churn and complexity (flog)
|
93
|
+
* https://github.com/vinibaggio/discover-unused-partials
|
94
|
+
* https://github.com/metricfu/heckle (test mutation)
|
95
|
+
* https://github.com/mbj/mutant (test mutation)
|
96
|
+
* https://github.com/metricfu/gauntlet
|
97
|
+
* https://github.com/metricfu/repodepot-ruby https://twitter.com/jakescruggs/status/70521977303076865
|
98
|
+
* https://github.com/eladmeidar/rails_indexes
|
99
|
+
* https://github.com/trptcolin/consistency_fail
|
100
|
+
* https://github.com/thoughtbot/appraisal
|
101
|
+
* https://github.com/jenkinsci/rubymetrics-plugin
|
102
|
+
* https://github.com/holman/hopper
|
103
|
+
* https://github.com/eric/metriks
|
104
|
+
|
105
|
+
## Useful Links
|
106
|
+
|
107
|
+
### Ruby Guides
|
108
|
+
|
109
|
+
* https://github.com/cwgem/RubyGuide
|
110
|
+
* https://github.com/bbatsov/rubocop
|
111
|
+
* https://github.com/bbatsov/ruby-style-guide
|
112
|
+
* https://github.com/bbatsov/rails-style-guide
|
113
|
+
* [Learning resources](http://www.benjaminfleischer.com/learning/ruby/tutorials.html) [Source](https://github.com/bf4/learning/tree/gh-pages)
|
114
|
+
|
115
|
+
### Perf tools
|
116
|
+
|
117
|
+
* https://github.com/tmm1/perftools.rb
|
118
|
+
* https://twitter.com/mperham/status/311332913641840641
|
data/appveyor.yml
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
version: '{build}'
|
2
|
+
|
3
|
+
skip_tags: true
|
4
|
+
|
5
|
+
environment:
|
6
|
+
matrix:
|
7
|
+
- RUBY_VERSION: 22
|
8
|
+
- RUBY_VERSION: 22-x64
|
9
|
+
- RUBY_VERSION: 21
|
10
|
+
- RUBY_VERSION: 21-x64
|
11
|
+
- RUBY_VERSION: 200
|
12
|
+
- RUBY_VERSION: 193
|
13
|
+
|
14
|
+
install:
|
15
|
+
- set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
|
16
|
+
- gem install bundler
|
17
|
+
- bundle install --path=vendor/bundle --retry=3 --jobs=3
|
18
|
+
|
19
|
+
cache:
|
20
|
+
- vendor/bundle
|
21
|
+
|
22
|
+
build: off
|
23
|
+
|
24
|
+
before_test:
|
25
|
+
- ruby -v
|
26
|
+
- gem -v
|
27
|
+
- bundle -v
|
28
|
+
|
29
|
+
test_script:
|
30
|
+
- bundle exec rspec
|
31
|
+
- bundle exec ruby -Ilib bin/metric_fu --no-open
|
data/bin/metric_fu
ADDED
data/bin/mf-cane
ADDED
data/bin/mf-churn
ADDED
data/bin/mf-flay
ADDED
data/bin/mf-reek
ADDED
data/bin/mf-roodi
ADDED
data/bin/mf-saikuro
ADDED
data/certs/bf4.pem
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDmjCCAoKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBJMQ8wDQYDVQQDDAZnaXRo
|
3
|
+
dWIxITAfBgoJkiaJk/IsZAEZFhFiZW5qYW1pbmZsZWlzY2hlcjETMBEGCgmSJomT
|
4
|
+
8ixkARkWA2NvbTAeFw0xNTAxMjIxMzAyNTNaFw0xNjAxMjIxMzAyNTNaMEkxDzAN
|
5
|
+
BgNVBAMMBmdpdGh1YjEhMB8GCgmSJomT8ixkARkWEWJlbmphbWluZmxlaXNjaGVy
|
6
|
+
MRMwEQYKCZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
7
|
+
CgKCAQEA7V1VZBU7Aft01XAoK8I8tdClfv3H/NIauiV0jfyNtXtZEWwaZ6ooZNLk
|
8
|
+
8kmIUsO2xI7I/B3es6w7le9q9xdEowlYjiR/X/yazNvufu5kpM4f6Ri1AKN8xvPk
|
9
|
+
LFlR8aOAd9LptcusYDfE+BjhmAvnLTgMGODcDLJIaJzLJaRywTLUuFv4digpFwCm
|
10
|
+
Zps9VheJnL4hkgI5BDn6DVjxHSCMRnccQM/kX9L34lbP9KkHXXEtQgkQYpElHbnd
|
11
|
+
MtR753aPeLfOBxSGzsso+6Lhe+fz8huD05mzgWaEZN40e6M7dA9FRSsEzL32ZOad
|
12
|
+
0z13MZWj3Yg5srV/cZvzCDCdVvRphwIDAQABo4GMMIGJMAkGA1UdEwQCMAAwCwYD
|
13
|
+
VR0PBAQDAgSwMB0GA1UdDgQWBBQvUrPExdvmdz0Vau0dH3hRh1YQfDAnBgNVHREE
|
14
|
+
IDAegRxnaXRodWJAYmVuamFtaW5mbGVpc2NoZXIuY29tMCcGA1UdEgQgMB6BHGdp
|
15
|
+
dGh1YkBiZW5qYW1pbmZsZWlzY2hlci5jb20wDQYJKoZIhvcNAQEFBQADggEBAEWo
|
16
|
+
g1soMaRTT/OfFklTuP+odV0w+2qJSfJhOY5bIebDjqxb9BN7hZJ9L6WXhcXCvl6r
|
17
|
+
kuXjpcC05TIv1DoWWaSjGK2ADmEBDNVhaFepYidAYuUQN4+ZjVH/gS9V9OkBcE8h
|
18
|
+
3ZwRv+9RkXM0uY1FwuGI6jgbgPeR1AkkfJnhOPohkG+VN5bFo9aK/Stw8Nwhuuiz
|
19
|
+
axCPD3cmaJBguufRXSMC852SDiBT7AtI4Gl2Fyr+0M5TzXHKbQ9xRBxwfE1bWDd6
|
20
|
+
lEs7ndJ1/vd/Hy0zQ1tIRWyql+ITLhqMi161Pw5flsYpQvPlRLR5pGJ4eD0/JdKE
|
21
|
+
ZG9WSFH7QcGLY65mEYc=
|
22
|
+
-----END CERTIFICATE-----
|
data/checksum/.gitkeep
ADDED
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
e71e2ed626a7b3ee170116c5e72d846ba36039b0f016eb31ca87c9815534f27d5c85cf9bb42308bb2b3f539d123aa3ffea8fb7692c9a1c6f2b616a3511bf11f1
|
@@ -0,0 +1 @@
|
|
1
|
+
5402db0fe4fb45627ce37d071b0d0d0ec4d173320cfffb251e3e0406556e828ac97fc416a4ddd9387b39aa9e374687ebf900f94cb0a578d771b12ae4af8506c6
|
@@ -0,0 +1 @@
|
|
1
|
+
2d38eac5067748ee4417ab7088302a9e6c465e5163712cef9a1998bcb7048bf74c1b5c1facaccd8af042d2362693e4774de5b8c2bc6dbae5613eb91920ec58aa
|
@@ -0,0 +1 @@
|
|
1
|
+
c31f9343f44972b7b614d97cf33d457ad11518b408fb5e8e009eff8ee3c88353bd1dab14ac143a313433b7920b96f89d34753a0cd910364a70396ead3dc39980
|
@@ -0,0 +1 @@
|
|
1
|
+
2290ac18a8467b1ec187273cd94afdb3c2cb187dcf1c58152b99acf54e4249746512ef55604a8b4dc348ad106b7b25ea4a5f225fd2e9659367d20340407578d5
|
@@ -0,0 +1 @@
|
|
1
|
+
9a74861bf6d89f703786e562cdff96eea727aac874e0d9615d4ac8af57b2c97d15e2121de8d978b7097b56bd72b40744c9a27be9d3d12f9ecf75b66ac565e3ef
|
@@ -0,0 +1 @@
|
|
1
|
+
5af713f345549aa574af94d5790ec5360d61aa9ff9dce867da339f5a86e1d2d39c23d025434dd98fc04e0912b6a6da64f271663242a5aa75cbf15cac1c9c73e1
|
@@ -0,0 +1 @@
|
|
1
|
+
9dab16044285faa2d79afc40e701fb35d7e41d658d147bb161f616676f3258e069c1e250c1d854460e67ca1674ae286265f43dcd50255416c0e6d8e9e919b516
|
@@ -0,0 +1 @@
|
|
1
|
+
529b99cf3f5fb314e9a7684ad38198e7509ec13926ded779bfef2a4b968b0538fc72248606a3b0b1bdead31163e04641bd6f565d5db62bb168ee80b854e9c580
|
@@ -0,0 +1 @@
|
|
1
|
+
7a5e74c8b010bd9629e9cbdcf297cc1d75295338bb34a327a9ed57a742c5fc57107608bd148e31e5355263dc113841249be8719877a68fcb42271212edd71f13
|
@@ -0,0 +1 @@
|
|
1
|
+
8ceae4f1bb2719d8ecbe2c7b3e929fe477cbe4ea6582297092a1bc09a6bef9e423f3a33c619b62372b208f956c4d8f9839257cd491475b58c06a2c8341eafc77
|
@@ -0,0 +1 @@
|
|
1
|
+
c01694dc4a374806bd6cfaf5091808d223db1ea07a85d90a9749ed8e603c3abee283a36a6aacde81072b7c0ec2eec64f85d977caa6cd69687a532040a2137bd4
|
@@ -0,0 +1 @@
|
|
1
|
+
bbcd106dba00bcf0c1bfe8562d012a82f0945d8388bcd768598b872c35655668bfc9d0c1e7b0d67369713902dd9f1dd6fba9b83b21d79fe8ee774a2f8fa2defe
|
@@ -0,0 +1 @@
|
|
1
|
+
1beb22d0d940c4d5297efbfa5a2c6ad46a5f64fd68a0695bc1d81a7b3d85fdafc9004ede390272f2602a2a87f306137fccf53e8225b9dd9943e87ef5c7103c78
|
@@ -0,0 +1 @@
|
|
1
|
+
6d7c86a7231183dc5cf3d13b03fa4174873ffa6202d0b3fa09b485acc0e076951d6c906a99816fa9908fed75fa513cfba1ce29fb3911f881a93fb0922a70ff8f
|
@@ -0,0 +1 @@
|
|
1
|
+
287c0e2d61b94453f05b6c6b8d4666c49337022af56d4b3066ff6f9856747ef6ce5830b121bed2cfbe747716049c88ac1c9edc19a4cccc9b408454107899c663
|
@@ -0,0 +1 @@
|
|
1
|
+
60fdd77882c1eac658fec94a3207b00d3556e082ee9a01ce4097d8fa297df32d66de4ec2fc780b7566dc331975ad4469143dd8eb0dcd8df985c01405ce57c580
|