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
@@ -1,118 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Devtools
4
-
5
- # Provides methods to determine the ruby platform
6
- module Platform
7
-
8
- DEFAULT_RVM_NAME = 'mri'.freeze
9
-
10
- # Return Ruby engine string
11
- #
12
- # @return [String]
13
- #
14
- # @api private
15
- def ruby_engine
16
- @ruby_engine ||= (defined?(RUBY_ENGINE) && RUBY_ENGINE || 'ruby').freeze
17
- end
18
-
19
- # Return RVM name
20
- #
21
- # @return [String]
22
- #
23
- # @api private
24
- def rvm_name
25
- @rvm_name ||= begin
26
- engine = ruby_engine
27
- engine == 'ruby' ? DEFAULT_RVM_NAME : engine
28
- end
29
- end
30
-
31
- # Return RVM string
32
- #
33
- # @return [String]
34
- #
35
- # @api private
36
- def rvm
37
- @rvm ||= "#{rvm_name}-#{RUBY_VERSION}".freeze
38
- end
39
-
40
- # Test for being executed under JRuby
41
- #
42
- # @return [true]
43
- # if running under JRuby
44
- #
45
- # @return [false]
46
- # otherwise
47
- #
48
- # @api private
49
- def jruby?
50
- ruby_engine == 'jruby'
51
- end
52
-
53
- # Test for being executed under rbx
54
- #
55
- # @return [true]
56
- # if running under rbx
57
- #
58
- # @return [false]
59
- # otherwise
60
- #
61
- # @api private
62
- def rbx?
63
- ruby_engine == 'rbx'
64
- end
65
-
66
- # Test for being executed under rubies with a JIT
67
- #
68
- # @return [true]
69
- # if running under JRuby or rbx
70
- #
71
- # @return [false]
72
- # otherwise
73
- #
74
- # @api private
75
- def jit?
76
- jruby? || rbx?
77
- end
78
-
79
- # Test for 1.8 mode
80
- #
81
- # @return [true]
82
- # if running under 1.8.x
83
- #
84
- # @return [false]
85
- # otherwise
86
- #
87
- # @api private
88
- def ruby18?
89
- RUBY_VERSION.start_with?('1.8.')
90
- end
91
-
92
- # Test for 1.9 mode
93
- #
94
- # @return [true]
95
- # if running under 1.9.x
96
- #
97
- # @return [false]
98
- # otherwise
99
- #
100
- # @api private
101
- def ruby19?
102
- RUBY_VERSION.start_with?('1.9.')
103
- end
104
-
105
- # Test for 2.0 mode
106
- #
107
- # @return [true]
108
- # if running under 2.0.x
109
- #
110
- # @return [false]
111
- # otherwise
112
- #
113
- # @api private
114
- def ruby20?
115
- RUBY_VERSION.start_with?('2.0.')
116
- end
117
- end # module Platform
118
- end # module Devtools
@@ -1,57 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Devtools
4
- class Site
5
-
6
- # Supports initializing new projects with a Rakefile
7
- class Initializer
8
-
9
- def self.call(root)
10
- new(root).call
11
- end
12
-
13
- attr_reader :site
14
-
15
- attr_reader :root
16
-
17
- attr_reader :config_dir
18
-
19
- def initialize(site)
20
- @site = site
21
- @root = site.root
22
- config_dir = @root.join(DEFAULT_CONFIG_DIR_NAME).tap(&:mkpath)
23
- @config_dir = config_dir.parent
24
- end
25
-
26
- # Init devtools using default config
27
- #
28
- # @return [undefined]
29
- #
30
- # @api public
31
- def call
32
- FileUtils.cp_r(DEFAULT_CONFIG_PATH, config_dir)
33
-
34
- site.sync
35
- init_rakefile
36
-
37
- self
38
- end
39
-
40
- private
41
-
42
- # Initialize the Rakefile
43
- #
44
- # @return [undefined]
45
- #
46
- # @api private
47
- def init_rakefile
48
- rakefile = root.join(RAKE_FILE_NAME)
49
- return if rakefile.file? && rakefile.read.include?(INIT_RAKE_TASKS)
50
- rakefile.open('a') do |file|
51
- file << ANNOTATION_WRAPPER % [REQUIRE, INIT_RAKE_TASKS].join("\n")
52
- end
53
- end
54
-
55
- end # class Initializer
56
- end # class Site
57
- end # module Devtools
data/lib/devtools/site.rb DELETED
@@ -1,41 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Devtools
4
-
5
- # Encapsulates a specific {Project} devtools is used for
6
- class Site
7
-
8
- attr_reader :root
9
-
10
- attr_reader :project
11
-
12
- def initialize(project)
13
- @project = project
14
- @root = project.root
15
- end
16
-
17
- # Initialize project and load shared specs
18
- #
19
- # Expects to be called from $application_root/spec/spec_helper.rb
20
- #
21
- # @return [self]
22
- #
23
- # @api private
24
- def init_spec_helper
25
- Project::Initializer::Rspec.call(project)
26
- self
27
- end
28
-
29
- # Initialize devtools using default config
30
- #
31
- # @return [undefined]
32
- #
33
- # @api private
34
- def init
35
- Initializer.call(self)
36
- puts 'Run bundle install to complete the devtools installation'
37
- self
38
- end
39
-
40
- end # class Site
41
- end # module Devtools
@@ -1,9 +0,0 @@
1
- # encoding: utf-8
2
-
3
- shared_examples_for 'a hash method' do
4
- it_should_behave_like 'an idempotent method'
5
-
6
- it 'is a Fixnum' do
7
- should be_instance_of(Fixnum)
8
- end
9
- end
@@ -1,50 +0,0 @@
1
- # encoding: utf-8
2
-
3
- namespace :metrics do
4
- config = Devtools.project.mutant
5
-
6
- if !ENV['DEVTOOLS_SELF']
7
- desc 'Measure mutation coverage'
8
- task mutant: :coverage do
9
- require 'mutant'
10
-
11
- namespace =
12
- if config.zombify
13
- Mutant.zombify
14
- Zombie::Mutant
15
- else
16
- Mutant
17
- end
18
-
19
- namespaces = Array(config.namespace).map { |n| "#{n}*" }
20
-
21
- ignore_subjects = config.ignore_subjects.flat_map do |matcher|
22
- %W[--ignore #{matcher}]
23
- end
24
-
25
- since =
26
- if config.since
27
- %W[--since #{config.since}]
28
- else
29
- []
30
- end
31
-
32
- arguments = %W[
33
- --include lib
34
- --require #{config.name}
35
- --expect-coverage #{config.expect_coverage}
36
- --use #{config.strategy}
37
- ].concat(ignore_subjects).concat(namespaces).concat(since)
38
-
39
- status = namespace::CLI.run(arguments)
40
- if status.nonzero?
41
- Devtools.notify_metric_violation 'Mutant task is not successful'
42
- end
43
- end
44
- else
45
- desc 'Measure mutation coverage'
46
- task mutant: :coverage do
47
- $stderr.puts 'Mutant is disabled'
48
- end
49
- end
50
- end