code_metric_fu 4.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: e1ed526fc057c65f525f4da0ca4fbe912ce55b4d
|
|
4
|
+
data.tar.gz: 300ab4f5400f9babb33a9254260aec163bcebb96
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 6bda1409f5803ea9b66125d7ab450b8761216ec2d3609aff500d363ea8a36850a09f131489b4d65800a7a64f0a96f75dce0b7ecd9b5f764eb0dd1aacdac8c190
|
|
7
|
+
data.tar.gz: 5ad355b62d0828c6e63c739d75f206905958d75a6616feae203f91731fb768112ddbe57c92edf0564a1dca60283fa55b650e5f5133d28da2d9b3108aad278dd6
|
data/.gitignore
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
.DS_Store
|
|
2
|
+
.rvmrc*
|
|
3
|
+
*.gem
|
|
4
|
+
*.rbc
|
|
5
|
+
.bundle
|
|
6
|
+
.config
|
|
7
|
+
.yardoc
|
|
8
|
+
Gemfile.lock
|
|
9
|
+
InstalledFiles
|
|
10
|
+
_yardoc
|
|
11
|
+
coverage
|
|
12
|
+
doc/
|
|
13
|
+
lib/bundler/man
|
|
14
|
+
pkg
|
|
15
|
+
rdoc
|
|
16
|
+
spec/reports
|
|
17
|
+
test/tmp
|
|
18
|
+
test/version_tmp
|
|
19
|
+
tmp
|
|
20
|
+
*.swp
|
|
21
|
+
tags
|
|
22
|
+
.idea
|
|
23
|
+
|
|
24
|
+
# rvm
|
|
25
|
+
.ruby-version
|
|
26
|
+
.ruby-gemset
|
|
27
|
+
|
|
28
|
+
.overcommit.yml
|
data/.metrics
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
inherit_from:
|
|
2
|
+
- config/rubocop.yml
|
|
3
|
+
- .rubocop_todo.yml
|
|
4
|
+
|
|
5
|
+
# Files you want to exclude
|
|
6
|
+
AllCops:
|
|
7
|
+
Exclude:
|
|
8
|
+
- bin/*
|
|
9
|
+
- gem_tasks/*
|
|
10
|
+
- lib/tasks/*
|
|
11
|
+
- Gemfile
|
|
12
|
+
- Rakefile
|
|
13
|
+
- bundle/**/*
|
|
14
|
+
- vendor/bundle/**/*
|
|
15
|
+
- spec/fixtures/line_numbers/*
|
data/.rubocop_todo.yml
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# This configuration was generated by `rubocop --auto-gen-config`
|
|
2
|
+
# on 2015-01-27 12:05:28 -0600 using RuboCop version 0.28.0.
|
|
3
|
+
# The point is for the user to remove these configuration records
|
|
4
|
+
# one by one as the offenses are removed from the code base.
|
|
5
|
+
# Note that changes in the inspected code, or installation of new
|
|
6
|
+
# versions of RuboCop, may require this file to be generated again.
|
|
7
|
+
|
|
8
|
+
# Offense count: 2
|
|
9
|
+
# Configuration parameters: AlignWith, SupportedStyles.
|
|
10
|
+
Lint/EndAlignment:
|
|
11
|
+
Enabled: false
|
|
12
|
+
|
|
13
|
+
# Offense count: 2
|
|
14
|
+
Lint/EnsureReturn:
|
|
15
|
+
Enabled: false
|
|
16
|
+
|
|
17
|
+
# Offense count: 1
|
|
18
|
+
Lint/RescueException:
|
|
19
|
+
Enabled: false
|
|
20
|
+
|
|
21
|
+
# Offense count: 10
|
|
22
|
+
Lint/ShadowingOuterLocalVariable:
|
|
23
|
+
Enabled: false
|
|
24
|
+
|
|
25
|
+
# Offense count: 1
|
|
26
|
+
Lint/UselessAccessModifier:
|
|
27
|
+
Enabled: false
|
|
28
|
+
|
|
29
|
+
# Offense count: 27
|
|
30
|
+
Lint/UselessAssignment:
|
|
31
|
+
Enabled: false
|
|
32
|
+
|
|
33
|
+
# Offense count: 44
|
|
34
|
+
Metrics/AbcSize:
|
|
35
|
+
Max: 56
|
|
36
|
+
|
|
37
|
+
# Offense count: 393
|
|
38
|
+
# Configuration parameters: AllowURI, URISchemes.
|
|
39
|
+
Metrics/LineLength:
|
|
40
|
+
Max: 709
|
|
41
|
+
|
|
42
|
+
# Offense count: 3
|
|
43
|
+
Metrics/PerceivedComplexity:
|
|
44
|
+
Max: 13
|
|
45
|
+
|
|
46
|
+
# Offense count: 4
|
|
47
|
+
# Cop supports --auto-correct.
|
|
48
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
|
49
|
+
Style/AndOr:
|
|
50
|
+
Enabled: false
|
|
51
|
+
|
|
52
|
+
# Offense count: 2
|
|
53
|
+
Style/EmptyElse:
|
|
54
|
+
Enabled: false
|
|
55
|
+
|
|
56
|
+
# Offense count: 2
|
|
57
|
+
# Configuration parameters: NamePrefix, NamePrefixBlacklist.
|
|
58
|
+
Style/PredicateName:
|
|
59
|
+
Enabled: false
|
|
60
|
+
|
|
61
|
+
# Offense count: 1
|
|
62
|
+
Style/RescueModifier:
|
|
63
|
+
Enabled: false
|
|
64
|
+
|
|
65
|
+
# Offense count: 4
|
|
66
|
+
# Cop supports --auto-correct.
|
|
67
|
+
# Configuration parameters: AllowAsExpressionSeparator.
|
|
68
|
+
Style/Semicolon:
|
|
69
|
+
Enabled: false
|
data/.simplecov
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
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
|
+
# vim: set ft=ruby
|
|
4
|
+
@minimum_coverage = ENV.fetch("COVERAGE_MINIMUM") { 87.8 }.to_f.round(2)
|
|
5
|
+
if SimpleCov.respond_to?(:profiles)
|
|
6
|
+
SimpleCov.profiles
|
|
7
|
+
else
|
|
8
|
+
SimpleCov.adapters
|
|
9
|
+
end.define 'metric_fu' do
|
|
10
|
+
if defined?(load_profile)
|
|
11
|
+
load_profile 'test_frameworks'
|
|
12
|
+
else
|
|
13
|
+
load_adapter 'test_frameworks'
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
add_group "Cli", "lib/metric_fu/cli"
|
|
17
|
+
add_group "Data Structures", "lib/metric_fu/data_structures"
|
|
18
|
+
add_group "Formatters", "lib/metric_fu/formatter"
|
|
19
|
+
add_group "Hotspots", "lib/metric_fu/metrics/hotspots"
|
|
20
|
+
add_group "Metrics", "lib/metric_fu/metrics"
|
|
21
|
+
add_group "Reporters", "lib/metric_fu/reporting"
|
|
22
|
+
add_group "Templates", "lib/metric_fu/templates"
|
|
23
|
+
|
|
24
|
+
add_group "Long files" do |src_file|
|
|
25
|
+
src_file.lines.count > 100
|
|
26
|
+
end
|
|
27
|
+
class MaxLinesFilter < SimpleCov::Filter
|
|
28
|
+
def matches?(source_file)
|
|
29
|
+
source_file.lines.count < filter_argument
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
add_group "Short files", MaxLinesFilter.new(5)
|
|
33
|
+
|
|
34
|
+
# Exclude these paths from analysis
|
|
35
|
+
add_filter 'bundle'
|
|
36
|
+
add_filter 'vendor/bundle'
|
|
37
|
+
add_filter 'bin'
|
|
38
|
+
add_filter 'lib/metric_fu/tasks'
|
|
39
|
+
|
|
40
|
+
# https://github.com/colszowka/simplecov/blob/v0.9.1/lib/simplecov/defaults.rb#L60
|
|
41
|
+
# minimum_coverage @minimum_coverage
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
## RUN SIMPLECOV
|
|
45
|
+
if defined?(@running_tests)
|
|
46
|
+
@running_tests = false
|
|
47
|
+
else
|
|
48
|
+
@running_tests = caller.any? {|line| line =~ /exe\/rspec/ }
|
|
49
|
+
end
|
|
50
|
+
if ENV["COVERAGE"] =~ /\Atrue\z/i
|
|
51
|
+
puts "[COVERAGE] Running with SimpleCov HTML Formatter"
|
|
52
|
+
formatters = [SimpleCov::Formatter::HTMLFormatter]
|
|
53
|
+
begin
|
|
54
|
+
puts '[COVERAGE] Running with SimpleCov HTML Formatter'
|
|
55
|
+
require 'metric_fu/metrics/rcov/simplecov_formatter'
|
|
56
|
+
formatters << SimpleCov::Formatter::MetricFu
|
|
57
|
+
puts '[COVERAGE] Running with SimpleCov MetricFu Formatter'
|
|
58
|
+
rescue LoadError
|
|
59
|
+
puts '[COVERAGE] SimpleCov MetricFu formatter could not be loaded'
|
|
60
|
+
end
|
|
61
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[ *formatters ]
|
|
62
|
+
SimpleCov.start "metric_fu" if @running_tests
|
|
63
|
+
else
|
|
64
|
+
SimpleCov.formatters = []
|
|
65
|
+
end
|
|
66
|
+
SimpleCov.at_exit do
|
|
67
|
+
SimpleCov.result.format!
|
|
68
|
+
percent = Float(SimpleCov.result.covered_percent)
|
|
69
|
+
if percent < @minimum_coverage
|
|
70
|
+
abort "Spec coverage was not high enough: #{percent.round(2)} is < #{@minimum_coverage}%"
|
|
71
|
+
else
|
|
72
|
+
puts "Nice job! Spec coverage is still above #{@minimum_coverage}%"
|
|
73
|
+
end
|
|
74
|
+
end
|
data/.travis.yml
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
sudo: false
|
|
2
|
+
language: ruby
|
|
3
|
+
bundler_args: --path vendor/bundle --jobs=3 --retry=3
|
|
4
|
+
script: bundle exec rspec
|
|
5
|
+
cache: bundler
|
|
6
|
+
|
|
7
|
+
before_install:
|
|
8
|
+
- gem install bundler
|
|
9
|
+
- bundle config --local without local_development yard guard
|
|
10
|
+
rvm:
|
|
11
|
+
# 2.1, not 2.1.0 until fixed https://github.com/travis-ci/travis-ci/issues/2220
|
|
12
|
+
- 2.2
|
|
13
|
+
- 2.1
|
|
14
|
+
- 2.0.0
|
|
15
|
+
- 1.9.2
|
|
16
|
+
- 1.9.3
|
|
17
|
+
- jruby
|
|
18
|
+
- "rbx-2"
|
|
19
|
+
matrix:
|
|
20
|
+
allow_failures:
|
|
21
|
+
- rvm: rbx-2
|
|
22
|
+
fast_finish: true
|
data/.yardopts
ADDED
data/AUTHORS
ADDED
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
How to contribute:
|
|
2
|
+
|
|
3
|
+
## Bug reports / Issues
|
|
4
|
+
|
|
5
|
+
* Is something broken or not working as expected? Check for an existing issue or [create a new one](https://github.com/metricfu/metric_fu/issues/new)
|
|
6
|
+
* See [Quick guide to writing good bug reports](https://github.com/metricfu/metric_fu/wiki/Issues:-Quick-guide-to-writing-good-bug-reports)
|
|
7
|
+
* IMPORTANT: Include the output of `metric_fu --debug-info`
|
|
8
|
+
|
|
9
|
+
## Code
|
|
10
|
+
|
|
11
|
+
1. Fork and clone the repo: `git clone git://github.com/yourghname/metric_fu.git && cd metric_fu`
|
|
12
|
+
2. Install the gem dependencies: `bundle install`
|
|
13
|
+
3. Make the changes you want and back them up with tests.
|
|
14
|
+
* Run the tests (`bundle exec rspec`)
|
|
15
|
+
* Run metric_fu on itself (`bundle exec ruby -Ilib bin/metric_fu`)
|
|
16
|
+
4. Update the HISTORY.md file with your changes and give yourself credit
|
|
17
|
+
5. Commit and create a pull request with details as to what has been changed and why
|
|
18
|
+
* Use well-described, small (atomic) commits.
|
|
19
|
+
* Include links to any relevant github issues.
|
|
20
|
+
* *Don't* change the VERSION file.
|
|
21
|
+
6. Extra Credit: [Confirm it runs and tests pass on the rubies specified in the travis config](.travis.yml). I will otherwise confirm it runs on these.
|
|
22
|
+
|
|
23
|
+
How I handle pull requests:
|
|
24
|
+
|
|
25
|
+
* If the tests pass and the pull request looks good, I will merge it.
|
|
26
|
+
* If the pull request needs to be changed,
|
|
27
|
+
* you can change it by updating the branch you generated the pull request from
|
|
28
|
+
* either by adding more commits, or
|
|
29
|
+
* by force pushing to it
|
|
30
|
+
* I can make any changes myself and manually merge the code in.
|
|
31
|
+
|
|
32
|
+
### Commit Messages
|
|
33
|
+
|
|
34
|
+
* [A Note About Git Commit Messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
|
|
35
|
+
* [http://stopwritingramblingcommitmessages.com/](http://stopwritingramblingcommitmessages.com/)
|
|
36
|
+
* [ThoughtBot style guide](https://github.com/thoughtbot/guides/tree/master/style#git)
|
|
37
|
+
|
|
38
|
+
### About Pull Requests (PR's)
|
|
39
|
+
|
|
40
|
+
* [All Your Open Source Code Are Belong To Us](http://www.benjaminfleischer.com/2013/07/30/all-your-open-source-code-are-belong-to-us/)
|
|
41
|
+
* [Using Pull Requests](https://help.github.com/articles/using-pull-requests)
|
|
42
|
+
* [Github pull requests made easy](http://www.element84.com/github-pull-requests-made-easy.html)
|
|
43
|
+
|
|
44
|
+
## Documentation
|
|
45
|
+
|
|
46
|
+
* If relevant, you may update [the metric_fu website](https://github.com/metricfu/metricfu.github.com) in a separate pull request to that repo
|
|
47
|
+
* Update the wiki
|
data/CONTRIBUTORS
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
Benjamin Fleischer
|
|
2
|
+
Jake Scruggs
|
|
3
|
+
Édouard Brière
|
|
4
|
+
Richard Huang
|
|
5
|
+
Grant McInnes
|
|
6
|
+
Petrik
|
|
7
|
+
Dan Mayer
|
|
8
|
+
Robin Curry
|
|
9
|
+
Sean Soper
|
|
10
|
+
Delwyn de Villiers
|
|
11
|
+
Martin Gotink
|
|
12
|
+
Carl Youngblood
|
|
13
|
+
Andre Arko
|
|
14
|
+
Chris Griego
|
|
15
|
+
Sathish
|
|
16
|
+
Michael Stark
|
|
17
|
+
Nick Quaranto
|
|
18
|
+
dan sinclair
|
|
19
|
+
joshuacronemeyer
|
|
20
|
+
jscruggs
|
|
21
|
+
David Chelimsky
|
|
22
|
+
adrien
|
|
23
|
+
Jay Zeschin
|
|
24
|
+
Greg Allen
|
|
25
|
+
Alex Rothenberg
|
|
26
|
+
calveto
|
|
27
|
+
Avdi Grimm
|
|
28
|
+
Kevin Rutherford
|
|
29
|
+
Randy Souza
|
|
30
|
+
GeorgeErickson
|
|
31
|
+
Josef Šimánek
|
|
32
|
+
Andy Gregorowicz
|
|
33
|
+
Tarsoly András
|
|
34
|
+
Benjamin Fleischer / Paul Swagerty
|
|
35
|
+
Nick Veys
|
|
36
|
+
unknown
|
|
37
|
+
Micah Geisel
|
|
38
|
+
Extrovert
|
|
39
|
+
Ben Turner
|
|
40
|
+
Andrew Timberlake
|
|
41
|
+
KAKUTANI Shintaro
|
|
42
|
+
Guilherme Souza
|
|
43
|
+
Przemysław Dąbek
|
|
44
|
+
carlost
|
|
45
|
+
David Barri
|
|
46
|
+
Beau Fabry
|
|
47
|
+
Chris Mason
|
|
48
|
+
Andrew Selder
|
|
49
|
+
iain
|
|
50
|
+
Mark Wilden
|
|
51
|
+
Alessandro Dias
|
|
52
|
+
Lars E. Hoeg
|
|
53
|
+
Eric Wollesen
|
|
54
|
+
Adam Bair
|
|
55
|
+
Jinzhu
|
|
56
|
+
Matthew Van Horn
|
|
57
|
+
Diego Carrion
|
|
58
|
+
saltracer
|
|
59
|
+
benlovell
|
|
60
|
+
ff-cviradiya
|
|
61
|
+
khall
|
|
62
|
+
Stefan Huber
|
|
63
|
+
Todd A. Jacobs
|
|
64
|
+
jayzes
|
|
65
|
+
Hans Hasselberg
|
|
66
|
+
Scyllinice
|
|
67
|
+
Bitdeli Chef
|
|
68
|
+
René Föhring
|
|
69
|
+
Matthew Gordon
|
|
70
|
+
factorylabs
|
|
71
|
+
Mike Ball
|
|
72
|
+
Guilherme Simões
|
|
73
|
+
Paul Elliott
|
|
74
|
+
Joel Nimety
|
|
75
|
+
Chris Ian Fiel
|
|
76
|
+
Mike Szyndel
|
data/DEV.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
## Contracted Interfaces
|
|
2
|
+
|
|
3
|
+
```ruby
|
|
4
|
+
MetricFu.run_dir #=> Dir.pwd
|
|
5
|
+
MetricFu.run_dir = 'some_path'
|
|
6
|
+
MetricFu.run_path #=> Pathname(Dir.pwd)
|
|
7
|
+
MetricFu.root_dir
|
|
8
|
+
MetricFu.loader.load_user_configuration
|
|
9
|
+
MetricFu.loader.loaded_files
|
|
10
|
+
MetricFu.lib_require { 'utility' }
|
|
11
|
+
MetricFu.lib_dir #=> metric_fu/lib
|
|
12
|
+
MetricFu.lib_require('metrics') { 'flog/metric' }
|
|
13
|
+
MetricFu.metrics_require {'flog/metric' }
|
|
14
|
+
MetricFu.metrics_dir #=> metric_fu/lib/metrics
|
|
15
|
+
MetricFu.formatter_require { 'html' }
|
|
16
|
+
MetricFu.formatter_dir #=> metric_fu/lib/formatter
|
|
17
|
+
MetricFu.reporting_require { 'result' }
|
|
18
|
+
MetricFu.reporting_dir #=> metric_fu/lib/reporting
|
|
19
|
+
MetricFu.logging_require { 'mf_debugger' }
|
|
20
|
+
MetricFu.lib_require { 'logger' }
|
|
21
|
+
MetricFu.logging_dir #=> metric_fu/lib/logging
|
|
22
|
+
MetricFu.errors_require { 'analysis_error' }
|
|
23
|
+
MetricFu.errors_dir #=> metric_fu/lib/errors
|
|
24
|
+
MetricFu.data_structures_require { 'line_numbers' }
|
|
25
|
+
MetricFu.data_structures_dir #=> metric_fu/lib/data_structures
|
|
26
|
+
MetricFu.tasks_require { } # Doesn't work as expected. Don't use
|
|
27
|
+
MetricFu.tasks_dir #=> metric_fu/lib/tasks
|
|
28
|
+
|
|
29
|
+
MetricFu.configuration #=> MetricFu::Configuration.new
|
|
30
|
+
MetricFu.configuration.configure_metrics # for each metric, yield to block or runs enable, activate
|
|
31
|
+
MetricFu.configuration.configure_metric(:flog) do |metric|
|
|
32
|
+
metric.run_options #=> metric.default_run_options.merge(metric.configured_run_options)
|
|
33
|
+
metric.enable
|
|
34
|
+
metric.enabled = true
|
|
35
|
+
metric.activate
|
|
36
|
+
metric.activated = true
|
|
37
|
+
metric.name #=> :flog
|
|
38
|
+
end
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Templates
|
|
42
|
+
|
|
43
|
+
```ruby
|
|
44
|
+
# Given
|
|
45
|
+
template = MetricFu::Templates::MetricsTemplate.new
|
|
46
|
+
|
|
47
|
+
# Render _report_footer.html.erb partial:
|
|
48
|
+
|
|
49
|
+
template.render_partial('report_footer')
|
|
50
|
+
|
|
51
|
+
# Render _graph.html.erb partial and set a graph_name instance variable:
|
|
52
|
+
|
|
53
|
+
template.render_partial 'graph', {:graph_name => 'reek'}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Testing
|
|
57
|
+
|
|
58
|
+
`bundle exec rspec`
|
|
59
|
+
|
|
60
|
+
## Forking
|
|
61
|
+
|
|
62
|
+
## Issues / Pull Requests
|
|
63
|
+
|
|
64
|
+
* see [CONTRIBUTING](CONTRIBUTING.md)
|
|
65
|
+
|
|
66
|
+
## Building
|
|
67
|
+
|
|
68
|
+
`rake build` or `rake install`
|
|
69
|
+
|
|
70
|
+
## Releasing
|
|
71
|
+
|
|
72
|
+
0. Run `rake usage_test` to make sure the examples are still valid
|
|
73
|
+
1. Update lib/metric_fu/version.rb
|
|
74
|
+
2. Update HISTORY.md
|
|
75
|
+
3. Update CONTRIBUTORS and erd per README in etc
|
|
76
|
+
3. `rake release`
|
data/Gemfile
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
source "https://rubygems.org"
|
|
3
|
+
|
|
4
|
+
if RUBY_VERSION =~ /^2\.2\.[0-1]p?\d*/ || RUBY_VERSION =~ /^2\.1\.\d*p?\d*/
|
|
5
|
+
gem "activesupport", "~> 4.2"
|
|
6
|
+
gem "json", "~> 1.7"
|
|
7
|
+
gem "rubocop", platforms: :mri, groups: [:test, :local_development]
|
|
8
|
+
elsif RUBY_VERSION =~ /^2\.0\..*/
|
|
9
|
+
gem "activesupport", "~> 4.2"
|
|
10
|
+
gem "json", "~> 1.7"
|
|
11
|
+
gem "unparser", "0.2.4"
|
|
12
|
+
gem "rubocop", platforms: :mri, groups: [:test, :local_development]
|
|
13
|
+
elsif RUBY_VERSION =~ /^1\.9\.3.*/
|
|
14
|
+
gem "activesupport", "~> 4.2"
|
|
15
|
+
gem "json", "~> 1.7"
|
|
16
|
+
gem "unparser", "0.2.4"
|
|
17
|
+
gem "json_pure", "2.0.1"
|
|
18
|
+
gem "mime-types", "2.99.3"
|
|
19
|
+
gem "rest-client", "1.8.0"
|
|
20
|
+
gem "rubocop", platforms: :mri, groups: [:test, :local_development]
|
|
21
|
+
gem "addressable", "2.4.0"
|
|
22
|
+
gem "ffi", "1.9.14" # windows support
|
|
23
|
+
elsif RUBY_VERSION =~ /^1\.9\.2.*/
|
|
24
|
+
# because of https://github.com/railsbp/rails_best_practices/blob/master/rails_best_practices.gemspec
|
|
25
|
+
gem "activesupport", "~> 3.2"
|
|
26
|
+
# because of https://github.com/troessner/reek/issues/334
|
|
27
|
+
gem "reek", "~> 1.4.0"
|
|
28
|
+
# rbp -> as -> i18n
|
|
29
|
+
gem "i18n", "0.6.11"
|
|
30
|
+
gem "parallel", "= 1.3.3" # 1.3.4 disallows 1.9.2
|
|
31
|
+
gem "unparser", "0.1.5"
|
|
32
|
+
gem "json_pure", "2.0.1"
|
|
33
|
+
gem "mime-types", "2.99.3"
|
|
34
|
+
gem "rest-client", "1.8.0"
|
|
35
|
+
gem "json", "~> 1.7"
|
|
36
|
+
gem "addressable", "2.4.0"
|
|
37
|
+
gem "rainbow", "2.1.0"
|
|
38
|
+
gem "ffi", "1.9.14" # windows support
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
gemspec path: File.expand_path("..", __FILE__)
|
|
42
|
+
|
|
43
|
+
platform :jruby do
|
|
44
|
+
group :jruby do
|
|
45
|
+
gem "jruby-openssl", "~> 0.9.17"
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
group :test, :local_development do
|
|
50
|
+
gem "pry"
|
|
51
|
+
gem "pry-nav"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Added by devtools
|
|
55
|
+
group :development do
|
|
56
|
+
gem "rake", "~> 10.1.0"
|
|
57
|
+
gem "yard", "~> 0.8.7", group: :yard
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
group :guard do
|
|
61
|
+
gem "guard", "~> 1.8.1"
|
|
62
|
+
gem "guard-bundler", "~> 1.0.0"
|
|
63
|
+
gem "guard-rspec"
|
|
64
|
+
|
|
65
|
+
# file system change event handling
|
|
66
|
+
gem "listen", "~> 1.3.0"
|
|
67
|
+
gem "rb-fchange", "~> 0.0.6", require: false
|
|
68
|
+
gem "rb-fsevent", "~> 0.9.3", require: false
|
|
69
|
+
gem "rb-inotify", "~> 0.9.0", require: false
|
|
70
|
+
|
|
71
|
+
# notification handling
|
|
72
|
+
gem "libnotify", "~> 0.8.0", require: false
|
|
73
|
+
gem "terminal-notifier-guard", "~> 1.5.3", require: false
|
|
74
|
+
end
|
data/Guardfile
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
guard :bundler do
|
|
2
|
+
watch("Gemfile")
|
|
3
|
+
watch("Gemfile.lock")
|
|
4
|
+
watch(%w{.+.gemspec\z})
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
guard :rspec, cli: File.read(".rspec").split.push("--fail-fast").join(" "), keep_failed: false do
|
|
8
|
+
# Run all specs if configuration is modified
|
|
9
|
+
watch(".rspec") { "spec" }
|
|
10
|
+
watch("Guardfile") { "spec" }
|
|
11
|
+
watch("Gemfile.lock") { "spec" }
|
|
12
|
+
watch("spec/spec_helper.rb") { "spec" }
|
|
13
|
+
|
|
14
|
+
# Run all specs if supporting files are modified
|
|
15
|
+
watch(%r{\Aspec/(?:fixtures|lib|support|shared)/.+\.rb\z}) { "spec" }
|
|
16
|
+
|
|
17
|
+
# Run unit specs if associated lib code is modified
|
|
18
|
+
watch(%r{\Alib/(.+)\.rb\z}) { |m| "spec/#{m[1]}_spec.rb" }
|
|
19
|
+
watch("lib/#{File.basename(File.expand_path('../', __FILE__))}.rb") { "spec" }
|
|
20
|
+
|
|
21
|
+
# Run a spec if it is modified
|
|
22
|
+
watch(%r{\Aspec/.+_spec\.rb$\z})
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# TODO enable once we're ready to handle all the violations :)
|
|
26
|
+
# guard :rubocop, cli: %w[--config config/rubocop.yml] do
|
|
27
|
+
# watch(%r{.+\.(?:rb|rake)\z})
|
|
28
|
+
# watch(%r{\Aconfig/rubocop\.yml\z}) { |m| File.dirname(m[0]) }
|
|
29
|
+
# watch(%r{(?:.+/)?\.rubocop\.yml\z}) { |m| File.dirname(m[0]) }
|
|
30
|
+
# end
|