devtools 0.1.0 → 0.1.26

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.
Files changed (65) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +41 -0
  3. data/.rspec +1 -0
  4. data/.rubocop.yml +1 -2
  5. data/Gemfile +9 -2
  6. data/README.md +3 -3
  7. data/config/devtools.yml +2 -0
  8. data/config/flay.yml +2 -2
  9. data/config/flog.yml +1 -1
  10. data/config/mutant.yml +6 -2
  11. data/config/reek.yml +105 -106
  12. data/config/rubocop.yml +37 -3
  13. data/devtools.gemspec +27 -25
  14. data/lib/devtools/config.rb +74 -66
  15. data/lib/devtools/flay.rb +98 -0
  16. data/lib/devtools/project/initializer/rake.rb +11 -7
  17. data/lib/devtools/project/initializer/rspec.rb +30 -55
  18. data/lib/devtools/project/initializer.rb +2 -12
  19. data/lib/devtools/project.rb +27 -105
  20. data/lib/devtools/rake/flay.rb +155 -0
  21. data/lib/devtools/spec_helper.rb +1 -3
  22. data/lib/devtools.rb +42 -89
  23. data/shared/spec/shared/abstract_type_behavior.rb +0 -2
  24. data/shared/spec/shared/command_method_behavior.rb +0 -2
  25. data/shared/spec/shared/each_method_behaviour.rb +0 -2
  26. data/shared/spec/shared/idempotent_method_behavior.rb +2 -3
  27. data/shared/spec/support/ice_nine_config.rb +0 -2
  28. data/spec/integration/devtools/rake/flay/verify_spec.rb +196 -0
  29. data/spec/spec_helper.rb +4 -11
  30. data/spec/unit/devtools/config/yardstick_spec.rb +17 -0
  31. data/spec/unit/devtools/config_spec.rb +78 -0
  32. data/spec/unit/devtools/flay/file_list/call_spec.rb +19 -0
  33. data/spec/unit/devtools/flay/scale/flay_report_spec.rb +17 -0
  34. data/spec/unit/devtools/flay/scale/measure_spec.rb +43 -0
  35. data/spec/unit/devtools/project/initializer/rake_spec.rb +21 -0
  36. data/spec/unit/devtools/project/initializer/rspec_spec.rb +52 -0
  37. data/spec/unit/devtools/project_spec.rb +34 -0
  38. data/spec/unit/devtools_spec.rb +14 -0
  39. data/tasks/metrics/ci.rake +3 -7
  40. data/tasks/metrics/coverage.rake +2 -2
  41. data/tasks/metrics/flay.rake +6 -33
  42. data/tasks/metrics/flog.rake +10 -7
  43. data/tasks/metrics/reek.rake +5 -4
  44. data/tasks/metrics/rubocop.rake +1 -3
  45. data/tasks/metrics/yardstick.rake +0 -14
  46. data/tasks/spec.rake +1 -3
  47. data/tasks/yard.rake +1 -3
  48. metadata +124 -65
  49. data/.ruby-gemset +0 -1
  50. data/.travis.yml +0 -15
  51. data/TODO +0 -0
  52. data/bin/devtools +0 -18
  53. data/circle.yml +0 -7
  54. data/default/config/devtools.yml +0 -2
  55. data/default/config/flay.yml +0 -3
  56. data/default/config/flog.yml +0 -2
  57. data/default/config/mutant.yml +0 -3
  58. data/default/config/reek.yml +0 -103
  59. data/default/config/rubocop.yml +0 -91
  60. data/default/config/yardstick.yml +0 -2
  61. data/lib/devtools/platform.rb +0 -118
  62. data/lib/devtools/site/initializer.rb +0 -57
  63. data/lib/devtools/site.rb +0 -41
  64. data/shared/spec/shared/hash_method_behavior.rb +0 -9
  65. data/tasks/metrics/mutant.rake +0 -50
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 764c83969a5e3165490c1032274ebae18ebe2b9d
4
- data.tar.gz: 8f7d916f56ce1d5e2e265331583bde25dc276d6f
2
+ SHA256:
3
+ metadata.gz: 64b90583c21a4251db47614a1e348030409446db3344af2d0c038e53eb3e4525
4
+ data.tar.gz: 54a3b6dc05714842b17800b7ca2ae0d52517e487664ee781eb9331579d17ed47
5
5
  SHA512:
6
- metadata.gz: ad8bba29c9c98632ea5502b1d22e89bc0c4d4a555e7f6f5a856021a33e0484f090b04306f3033e456cda7b133d057393e81905ea63b24a0149fef57efe4c1539
7
- data.tar.gz: 0fff91e6b6ed417aaf43c3328119f00b861d361b2d503e4bd306b6bb9b192e938a82f921900f92fe79769ee61b743c90980d6860900c7667f92f9695f1095530
6
+ metadata.gz: 7127a1523bf4eb6e08385ae04aeddf12d12389194252de53f027e5f917658379e74fcb25d8c02471c22b45a72d28537d17d973fca096fb7809125080085c2d00
7
+ data.tar.gz: ac1ae6fc3e4bc8c6f74f82df44a15feec714073d7a8ed5ffcfac3a1ea7d3f6fec2453d9cca9f321e26c3a711052ec7c866098df0744e17e2c79b910d032cb11e
@@ -0,0 +1,41 @@
1
+ defaults: &defaults
2
+ working_directory: ~/mutant
3
+ docker:
4
+ - image: circleci/ruby:2.6.0
5
+ version: 2
6
+ jobs:
7
+ unit_specs:
8
+ <<: *defaults
9
+ steps:
10
+ - checkout
11
+ - run: bundle install
12
+ - run: bundle exec rspec spec/unit
13
+ integration_specs:
14
+ <<: *defaults
15
+ steps:
16
+ - checkout
17
+ - run: bundle install
18
+ - run: bundle exec rspec spec/integration
19
+ metrics:
20
+ <<: *defaults
21
+ steps:
22
+ - checkout
23
+ - run: bundle install
24
+ - run: bundle exec rake metrics:rubocop
25
+ - run: bundle exec rake metrics:reek
26
+ - run: bundle exec rake metrics:flay
27
+ - run: bundle exec rake metrics:flog
28
+ mutant:
29
+ <<: *defaults
30
+ steps:
31
+ - checkout
32
+ - run: bundle install
33
+ - run: bundle exec mutant --since HEAD~1 -- 'Devtools*'
34
+ workflows:
35
+ version: 2
36
+ test:
37
+ jobs:
38
+ - unit_specs
39
+ - integration_specs
40
+ - metrics
41
+ - mutant
data/.rspec CHANGED
@@ -3,3 +3,4 @@
3
3
  --profile
4
4
  --warnings
5
5
  --order random
6
+ --require spec_helper
data/.rubocop.yml CHANGED
@@ -1,5 +1,4 @@
1
1
  AllCops:
2
+ DisplayCopNames: true
2
3
  Include:
3
4
  - 'Gemfile'
4
- Exclude:
5
- - 'vendor/**/*'
data/Gemfile CHANGED
@@ -1,5 +1,12 @@
1
- # encoding: utf-8
2
-
3
1
  source 'https://rubygems.org'
4
2
 
5
3
  gemspec
4
+
5
+ group :development do
6
+ gem 'mutant'
7
+ gem 'mutant-rspec'
8
+
9
+ source 'https://oss:Px2ENN7S91OmWaD5G7MIQJi1dmtmYrEh@gem.mutant.dev' do
10
+ gem 'mutant-license'
11
+ end
12
+ end
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # devtools
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/mbj/devtools.png?branch=master)](http://travis-ci.org/mbj/devtools)
3
+ [![Build Status](https://img.shields.io/circleci/project/mbj/devtools.svg)](https://circleci.com/gh/mbj/devtools/tree/master)
4
4
  [![Dependency Status](https://gemnasium.com/mbj/devtools.png)](https://gemnasium.com/mbj/devtools)
5
5
  [![Code Climate](https://codeclimate.com/github/datamapper/devtools.png)](https://codeclimate.com/github/datamapper/devtools)
6
6
  <!-- [![Code Climate](https://codeclimate.com/github/mbj/devtools.png)](https://codeclimate.com/github/mbj/devtools) -->
@@ -10,11 +10,11 @@ Used to centralize metric setup and development gem dependencies.
10
10
 
11
11
  ## Installation
12
12
 
13
- Add the git source to your Gemfile's development section, there is currently no gem release.
13
+ Add the gem to your Gemfile's development section.
14
14
 
15
15
  ```ruby
16
16
  group :development, :test do
17
- gem 'devtools', git: 'https://github.com/mbj/devtools.git'
17
+ gem 'devtools', '~> 0.1.x'
18
18
  end
19
19
  ```
20
20
 
@@ -0,0 +1,2 @@
1
+ ---
2
+ unit_test_timeout: 0.2
data/config/flay.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  ---
2
- threshold: 16
3
- total_score: 97
2
+ threshold: 8
3
+ total_score: 119
data/config/flog.yml CHANGED
@@ -1,2 +1,2 @@
1
1
  ---
2
- threshold: 11.1
2
+ threshold: 13.5
data/config/mutant.yml CHANGED
@@ -1,2 +1,6 @@
1
- name: devtools
2
- namespace: Devtools
1
+ ---
2
+ includes:
3
+ - lib
4
+ integration: rspec
5
+ requires:
6
+ - devtools
data/config/reek.yml CHANGED
@@ -1,107 +1,106 @@
1
1
  ---
2
- Attribute:
3
- enabled: false
4
- exclude: []
5
- BooleanParameter:
6
- enabled: true
7
- exclude: []
8
- ClassVariable:
9
- enabled: true
10
- exclude: []
11
- ControlParameter:
12
- enabled: true
13
- exclude: []
14
- DataClump:
15
- enabled: true
16
- exclude: []
17
- max_copies: 0
18
- min_clump_size: 2
19
- DuplicateMethodCall:
20
- enabled: true
21
- exclude: []
22
- max_calls: 1
23
- allow_calls: []
24
- FeatureEnvy:
25
- enabled: true
26
- exclude:
27
- - Devtools::Site::Initializer#init_gemfile
28
- - Devtools::Site::Initializer#init_rakefile
29
- IrresponsibleModule:
30
- enabled: true
31
- exclude: []
32
- LongParameterList:
33
- enabled: true
34
- exclude: []
35
- max_params: 2
36
- overrides: {}
37
- LongYieldList:
38
- enabled: true
39
- exclude: []
40
- max_params: 0
41
- NestedIterators:
42
- enabled: true
43
- exclude: []
44
- max_allowed_nesting: 1
45
- ignore_iterators: []
46
- NilCheck:
47
- enabled: true
48
- exclude: []
49
- RepeatedConditional:
50
- enabled: true
51
- exclude: []
52
- max_ifs: 1
53
- TooManyInstanceVariables:
54
- enabled: true
55
- exclude:
56
- - Devtools::Project
57
- max_instance_variables: 14 # no adamantium ;)
58
- TooManyMethods:
59
- enabled: true
60
- exclude: []
61
- max_methods: 15
62
- TooManyStatements:
63
- enabled: true
64
- exclude:
65
- - Devtools::Project#initialize # needs refactoring, it is way too large
66
- max_statements: 5
67
- UncommunicativeMethodName:
68
- enabled: true
69
- exclude: []
70
- reject:
71
- - !ruby/regexp /^[a-z]$/
72
- - !ruby/regexp /[0-9]$/
73
- - !ruby/regexp /[A-Z]/
74
- accept: []
75
- UncommunicativeModuleName:
76
- enabled: true
77
- exclude: []
78
- reject:
79
- - !ruby/regexp /^.$/
80
- - !ruby/regexp /[0-9]$/
81
- accept: []
82
- UncommunicativeParameterName:
83
- enabled: true
84
- exclude: []
85
- reject:
86
- - !ruby/regexp /^.$/
87
- - !ruby/regexp /[0-9]$/
88
- - !ruby/regexp /[A-Z]/
89
- accept: []
90
- UncommunicativeVariableName:
91
- enabled: true
92
- exclude: []
93
- reject:
94
- - !ruby/regexp /^.$/
95
- - !ruby/regexp /[0-9]$/
96
- - !ruby/regexp /[A-Z]/
97
- accept: []
98
- UnusedParameters:
99
- enabled: true
100
- exclude: []
101
- UtilityFunction:
102
- enabled: true
103
- exclude:
104
- - Devtools::Platform#ruby18?
105
- - Devtools::Platform#ruby19?
106
- - Devtools::Platform#ruby20?
107
- max_helper_calls: 0
2
+ detectors:
3
+ Attribute:
4
+ enabled: false
5
+ exclude: []
6
+ BooleanParameter:
7
+ enabled: true
8
+ exclude: []
9
+ ClassVariable:
10
+ enabled: true
11
+ exclude: []
12
+ ControlParameter:
13
+ enabled: true
14
+ exclude: []
15
+ DataClump:
16
+ enabled: true
17
+ exclude: []
18
+ max_copies: 0
19
+ min_clump_size: 2
20
+ DuplicateMethodCall:
21
+ enabled: true
22
+ exclude: []
23
+ max_calls: 1
24
+ allow_calls: []
25
+ FeatureEnvy:
26
+ enabled: true
27
+ exclude: []
28
+ IrresponsibleModule:
29
+ enabled: true
30
+ exclude: []
31
+ LongParameterList:
32
+ enabled: true
33
+ exclude:
34
+ - Devtools::Config#self.attribute
35
+ max_params: 2
36
+ overrides: {}
37
+ LongYieldList:
38
+ enabled: true
39
+ exclude: []
40
+ max_params: 0
41
+ NestedIterators:
42
+ enabled: true
43
+ exclude: []
44
+ max_allowed_nesting: 1
45
+ ignore_iterators: []
46
+ NilCheck:
47
+ enabled: true
48
+ exclude: []
49
+ RepeatedConditional:
50
+ enabled: true
51
+ exclude: []
52
+ max_ifs: 1
53
+ TooManyConstants:
54
+ enabled: true
55
+ exclude:
56
+ - Devtools
57
+ TooManyInstanceVariables:
58
+ enabled: true
59
+ exclude: []
60
+ max_instance_variables: 2
61
+ TooManyMethods:
62
+ enabled: true
63
+ exclude: []
64
+ max_methods: 15
65
+ TooManyStatements:
66
+ enabled: true
67
+ exclude: []
68
+ max_statements: 5
69
+ UncommunicativeMethodName:
70
+ enabled: true
71
+ exclude: []
72
+ reject:
73
+ - '/^[a-z]$/'
74
+ - '/[0-9]$/'
75
+ - '/[A-Z]/'
76
+ accept: []
77
+ UncommunicativeModuleName:
78
+ enabled: true
79
+ exclude: []
80
+ reject:
81
+ - '/^.$/'
82
+ - '/[0-9]$/'
83
+ accept: []
84
+ UncommunicativeParameterName:
85
+ enabled: true
86
+ exclude: []
87
+ reject:
88
+ - '/^.$/'
89
+ - '/[0-9]$/'
90
+ - '/[A-Z]/'
91
+ accept: []
92
+ UncommunicativeVariableName:
93
+ enabled: true
94
+ exclude: []
95
+ reject:
96
+ - '/^.$/'
97
+ - '/[0-9]$/'
98
+ - '/[A-Z]/'
99
+ accept: []
100
+ UnusedParameters:
101
+ enabled: true
102
+ exclude: []
103
+ UtilityFunction:
104
+ enabled: true
105
+ exclude:
106
+ - Devtools::Project::Initializer::Rspec#require_files # intentional for deduplication
data/config/rubocop.yml CHANGED
@@ -1,5 +1,19 @@
1
1
  inherit_from: ../.rubocop.yml
2
2
 
3
+ AllCops:
4
+ TargetRubyVersion: 2.5.0
5
+
6
+ Metrics/BlockLength:
7
+ Exclude:
8
+ # Ignore RSpec DSL
9
+ - spec/**/*
10
+ # Ignore gemspec DSL
11
+ - '*.gemspec'
12
+
13
+ Naming/FileName:
14
+ Exclude:
15
+ - Rakefile
16
+
3
17
  # Avoid parameter lists longer than five parameters.
4
18
  ParameterLists:
5
19
  Max: 3
@@ -89,10 +103,10 @@ PercentLiteralDelimiters:
89
103
 
90
104
  # Align if/else blocks with the variable assignment
91
105
  EndAlignment:
92
- AlignWith: variable
106
+ EnforcedStyleAlignWith: variable
93
107
 
94
108
  # Do not always align parameters when it is easier to read
95
- AlignParameters:
109
+ Layout/ParameterAlignment:
96
110
  Exclude:
97
111
  - spec/**/*_spec.rb
98
112
 
@@ -101,7 +115,7 @@ ClassCheck:
101
115
  EnforcedStyle: kind_of?
102
116
 
103
117
  # Do not prefer double quotes to be used when %q or %Q is more appropriate
104
- UnneededPercentQ:
118
+ Style/RedundantPercentQ:
105
119
  Enabled: false
106
120
 
107
121
  # Allow a maximum ABC score
@@ -115,3 +129,23 @@ LambdaCall:
115
129
  # Allow additional spaces
116
130
  ExtraSpacing:
117
131
  Enabled: false
132
+
133
+ # All objects can still be mutated if their eigenclass is patched
134
+ RedundantFreeze:
135
+ Enabled: false
136
+
137
+ # Prefer using `fail` when raising and `raise` when reraising
138
+ SignalException:
139
+ EnforcedStyle: semantic
140
+
141
+ Style/FrozenStringLiteralComment:
142
+ Enabled: false
143
+
144
+ Style/CommentedKeyword:
145
+ Enabled: false
146
+
147
+ Style/MixinGrouping:
148
+ Enabled: false
149
+
150
+ Layout/MultilineMethodCallIndentation:
151
+ EnforcedStyle: indented
data/devtools.gemspec CHANGED
@@ -1,33 +1,35 @@
1
- # encoding: utf-8
2
-
3
1
  Gem::Specification.new do |gem|
4
2
  gem.name = 'devtools'
5
- gem.version = '0.1.0'
6
- gem.authors = [ 'Markus Schirp' ]
7
- gem.email = [ 'mbj@schirp-dso.com' ]
8
- gem.description = 'A metagem for ROM-style development'
3
+ gem.version = '0.1.26'
4
+ gem.authors = ['Markus Schirp']
5
+ gem.email = ['mbj@schirp-dso.com']
6
+ gem.description = 'A metagem wrapping development tools'
9
7
  gem.summary = gem.description
10
8
  gem.homepage = 'https://github.com/rom-rb/devtools'
11
9
  gem.license = 'MIT'
12
10
 
13
- gem.require_paths = %w[lib]
14
- gem.files = `git ls-files`.split($/)
15
- gem.executables = %w[devtools]
16
- gem.test_files = `git ls-files -- spec`.split($/)
17
- gem.extra_rdoc_files = %w[README.md TODO]
18
- gem.required_ruby_version = '>= 2.1'
11
+ gem.require_paths = %w[lib]
12
+ gem.files = `git ls-files`.split("\n")
13
+ gem.executables = %w[]
14
+ gem.test_files = `git ls-files -- spec`.split("\n")
15
+ gem.extra_rdoc_files = %w[README.md]
16
+
17
+ gem.add_runtime_dependency 'abstract_type', '~> 0.0.7'
18
+ gem.add_runtime_dependency 'adamantium', '~> 0.2.0'
19
+ gem.add_runtime_dependency 'anima', '~> 0.3.0'
20
+ gem.add_runtime_dependency 'concord', '~> 0.1.5'
21
+ gem.add_runtime_dependency 'flay', '~> 2.12.0'
22
+ gem.add_runtime_dependency 'flog', '~> 4.6.2'
23
+ gem.add_runtime_dependency 'procto', '~> 0.0.3'
24
+ gem.add_runtime_dependency 'rake', '~> 12.3.0'
25
+ gem.add_runtime_dependency 'reek', '~> 5.6.0'
26
+ gem.add_runtime_dependency 'rspec', '~> 3.8.0'
27
+ gem.add_runtime_dependency 'rspec-core', '~> 3.8.0'
28
+ gem.add_runtime_dependency 'rspec-its', '~> 1.2.0'
29
+ gem.add_runtime_dependency 'rubocop', '~> 0.79.0'
30
+ gem.add_runtime_dependency 'simplecov', '~> 0.16.1'
31
+ gem.add_runtime_dependency 'yard', '~> 0.9.16'
32
+ gem.add_runtime_dependency 'yardstick', '~> 0.9.9'
19
33
 
20
- gem.add_dependency 'rspec', '~> 3.3.0'
21
- gem.add_dependency 'rspec-core', '~> 3.3.0'
22
- gem.add_dependency 'rspec-its', '~> 1.2.0'
23
- gem.add_dependency 'rake', '~> 10.4.2'
24
- gem.add_dependency 'yard', '~> 0.8.7.6'
25
- gem.add_dependency 'flay', '~> 2.6.1'
26
- gem.add_dependency 'flog', '~> 4.3.2'
27
- gem.add_dependency 'reek', '~> 3.3.1'
28
- gem.add_dependency 'rubocop', '~> 0.33.0'
29
- gem.add_dependency 'simplecov', '~> 0.10.0'
30
- gem.add_dependency 'yardstick', '~> 0.9.9'
31
- gem.add_dependency 'mutant', '~> 0.8.3'
32
- gem.add_dependency 'mutant-rspec', '~> 0.8.2'
34
+ gem.add_development_dependency 'mutant', '~> 0.9.4'
33
35
  end