devtools 0.1.19 → 0.1.20

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1c2270dfb75f85fcf1a74d5dd59a150e0b085e53
4
- data.tar.gz: 79016f9af38770aa4a428bc60d6233d8474e0792
2
+ SHA256:
3
+ metadata.gz: 0616e5015d96abe24a54140716e172d0c643937cacf4df99e7e425b9c809fcd4
4
+ data.tar.gz: 192fc5ed731193186e401fec71e4acd6dff379af89c926e76921a93f1c3868b7
5
5
  SHA512:
6
- metadata.gz: dd74658d9892ee698a38afa92c216d7be73044af47ecf0a601ce1596b146961c583a306aba05422c3973ebcb1ffd45d0f721b2e8253f95dcd190c682e7b45c3d
7
- data.tar.gz: 31ac2c0e8bfaad3b1be3477ba39292908a098e95bb57c208ed1abd6f8bebe70930238be6c73eb89a9eaa66997de9722ca03e11ba0caf65c409c1797d84689c8e
6
+ metadata.gz: b51df5fdff2ce21a96f56cd8fd430e5a156818d0d1b822d0a9d2ce405a0511b56e988d57ea504ac0cda661d0a3c839860d229a47c1041978406a9978813106c2
7
+ data.tar.gz: 7ffa20c5a8eccb1a45ce67e80f1fb6227bfde2bf8ae622fc1a4f5a95cc1aa58f5dbd7badc3bbd46a7919ce81547e1b8104e28539ba143eb9cf34a47525d9d4fc
data/Rakefile CHANGED
@@ -1,4 +1,3 @@
1
- # rubocop:disable Naming/FileName
2
1
  require 'devtools'
3
2
 
4
3
  ENV['DEVTOOLS_SELF'] = '1'
@@ -1,3 +1,3 @@
1
1
  ---
2
2
  threshold: 8
3
- total_score: 115
3
+ total_score: 122
@@ -1,2 +1,2 @@
1
1
  ---
2
- threshold: 19.7
2
+ threshold: 13.5
@@ -1,9 +1,18 @@
1
1
  inherit_from: ../.rubocop.yml
2
2
 
3
+ AllCops:
4
+ TargetRubyVersion: 2.3.0
5
+
3
6
  Metrics/BlockLength:
4
7
  Exclude:
5
8
  # Ignore RSpec DSL
6
- - spec/**/*
9
+ - spec/**/*
10
+ # Ignore gemspec DSL
11
+ - '*.gemspec'
12
+
13
+ Naming/FileName:
14
+ Exclude:
15
+ - Rakefile
7
16
 
8
17
  # Avoid parameter lists longer than five parameters.
9
18
  ParameterLists:
@@ -1,7 +1,6 @@
1
- # rubocop:disable Metrics/BlockLength
2
1
  Gem::Specification.new do |gem|
3
2
  gem.name = 'devtools'
4
- gem.version = '0.1.19'
3
+ gem.version = '0.1.20'
5
4
  gem.authors = ['Markus Schirp']
6
5
  gem.email = ['mbj@schirp-dso.com']
7
6
  gem.description = 'A metagem wrapping development tools'
@@ -14,7 +13,7 @@ Gem::Specification.new do |gem|
14
13
  gem.executables = %w[]
15
14
  gem.test_files = `git ls-files -- spec`.split("\n")
16
15
  gem.extra_rdoc_files = %w[README.md]
17
- gem.required_ruby_version = '>= 2.1'
16
+ gem.required_ruby_version = '>= 2.3'
18
17
 
19
18
  gem.add_runtime_dependency 'abstract_type', '~> 0.0.7'
20
19
  gem.add_runtime_dependency 'adamantium', '~> 0.2.0'
@@ -25,13 +24,13 @@ Gem::Specification.new do |gem|
25
24
  gem.add_runtime_dependency 'mutant', '~> 0.8.14'
26
25
  gem.add_runtime_dependency 'mutant-rspec', '~> 0.8.14'
27
26
  gem.add_runtime_dependency 'procto', '~> 0.0.3'
28
- gem.add_runtime_dependency 'rake', '~> 12.0.0'
27
+ gem.add_runtime_dependency 'rake', '~> 12.3.0'
29
28
  gem.add_runtime_dependency 'reek', '~> 4.7.3'
30
29
  gem.add_runtime_dependency 'rspec', '~> 3.6.0'
31
30
  gem.add_runtime_dependency 'rspec-core', '~> 3.6.0'
32
31
  gem.add_runtime_dependency 'rspec-its', '~> 1.2.0'
33
- gem.add_runtime_dependency 'rubocop', '~> 0.51.0'
34
- gem.add_runtime_dependency 'simplecov', '~> 0.14.0'
35
- gem.add_runtime_dependency 'yard', '~> 0.9.9'
32
+ gem.add_runtime_dependency 'rubocop', '~> 0.52.1'
33
+ gem.add_runtime_dependency 'simplecov', '~> 0.15.1'
34
+ gem.add_runtime_dependency 'yard', '~> 0.9.12'
36
35
  gem.add_runtime_dependency 'yardstick', '~> 0.9.9'
37
36
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Stdlib infrastructure
2
4
  require 'pathname'
3
5
  require 'rake'
@@ -20,19 +22,18 @@ require 'simplecov'
20
22
 
21
23
  # Main devtools namespace population
22
24
  module Devtools
23
-
24
25
  ROOT = Pathname.new(__FILE__).parent.parent.freeze
25
26
  PROJECT_ROOT = Pathname.pwd.freeze
26
27
  SHARED_PATH = ROOT.join('shared').freeze
27
28
  SHARED_SPEC_PATH = SHARED_PATH.join('spec').freeze
28
29
  DEFAULT_CONFIG_PATH = ROOT.join('default/config').freeze
29
30
  RAKE_FILES_GLOB = ROOT.join('tasks/**/*.rake').to_s.freeze
30
- LIB_DIRECTORY_NAME = 'lib'.freeze
31
- SPEC_DIRECTORY_NAME = 'spec'.freeze
32
- RAKE_FILE_NAME = 'Rakefile'.freeze
33
- SHARED_SPEC_PATTERN = '{shared,support}/**/*.rb'.freeze
34
- UNIT_TEST_PATH_REGEXP = %r{\bspec/unit/}.freeze
35
- DEFAULT_CONFIG_DIR_NAME = 'config'.freeze
31
+ LIB_DIRECTORY_NAME = 'lib'
32
+ SPEC_DIRECTORY_NAME = 'spec'
33
+ RAKE_FILE_NAME = 'Rakefile'
34
+ SHARED_SPEC_PATTERN = '{shared,support}/**/*.rb'
35
+ UNIT_TEST_PATH_REGEXP = %r{\bspec/unit/}
36
+ DEFAULT_CONFIG_DIR_NAME = 'config'
36
37
 
37
38
  private_constant(*constants(false))
38
39
 
@@ -1,5 +1,6 @@
1
- module Devtools
1
+ # frozen_string_literal: true
2
2
 
3
+ module Devtools
3
4
  # Abstract base class of tool configuration
4
5
  class Config
5
6
  include Adamantium::Flat, AbstractType, Concord.new(:config_dir)
@@ -12,8 +13,8 @@ module Devtools
12
13
  # Type check against expected class
13
14
  include Concord.new(:name, :allowed_classes)
14
15
 
15
- ERROR_FORMAT = '%<name>s: Got instance of %<got>s expected %<allowed>s'.freeze
16
- CLASS_DELIM = ','.freeze
16
+ ERROR_FORMAT = '%<name>s: Got instance of %<got>s expected %<allowed>s'
17
+ CLASS_DELIM = ','
17
18
 
18
19
  # Check value for instance of expected class
19
20
  #
@@ -22,13 +23,14 @@ module Devtools
22
23
  # @return [Object]
23
24
  def call(value)
24
25
  klass = value.class
26
+ format_values = {
27
+ name: name,
28
+ got: klass,
29
+ allowed: allowed_classes.join(CLASS_DELIM)
30
+ }
25
31
 
26
32
  unless allowed_classes.any?(&klass.method(:equal?))
27
- fail TypeError, ERROR_FORMAT % {
28
- name: name,
29
- got: klass,
30
- allowed: allowed_classes.join(CLASS_DELIM)
31
- }
33
+ fail TypeError, format(ERROR_FORMAT, format_values)
32
34
  end
33
35
 
34
36
  value
@@ -99,18 +101,18 @@ module Devtools
99
101
 
100
102
  # Rubocop configuration
101
103
  class Rubocop < self
102
- FILE = 'rubocop.yml'.freeze
104
+ FILE = 'rubocop.yml'
103
105
  end # Rubocop
104
106
 
105
107
  # Reek configuration
106
108
  class Reek < self
107
- FILE = 'reek.yml'.freeze
109
+ FILE = 'reek.yml'
108
110
  end # Reek
109
111
 
110
112
  # Flay configuration
111
113
  #
112
114
  class Flay < self
113
- FILE = 'flay.yml'.freeze
115
+ FILE = 'flay.yml'
114
116
  DEFAULT_LIB_DIRS = %w[lib].freeze
115
117
  DEFAULT_EXCLUDES = %w[].freeze
116
118
 
@@ -122,7 +124,7 @@ module Devtools
122
124
 
123
125
  # Yardstick configuration
124
126
  class Yardstick < self
125
- FILE = 'yardstick.yml'.freeze
127
+ FILE = 'yardstick.yml'
126
128
  OPTIONS = %w[
127
129
  threshold
128
130
  rules
@@ -145,7 +147,7 @@ module Devtools
145
147
 
146
148
  # Flog configuration
147
149
  class Flog < self
148
- FILE = 'flog.yml'.freeze
150
+ FILE = 'flog.yml'
149
151
  DEFAULT_LIB_DIRS = %w[lib].freeze
150
152
 
151
153
  attribute :total_score, [Float]
@@ -155,9 +157,9 @@ module Devtools
155
157
 
156
158
  # Mutant configuration
157
159
  class Mutant < self
158
- FILE = 'mutant.yml'.freeze
159
- DEFAULT_NAME = ''.freeze
160
- DEFAULT_STRATEGY = 'rspec'.freeze
160
+ FILE = 'mutant.yml'
161
+ DEFAULT_NAME = ''
162
+ DEFAULT_STRATEGY = 'rspec'
161
163
 
162
164
  attribute :name, [String], default: DEFAULT_NAME
163
165
  attribute :strategy, [String], default: DEFAULT_STRATEGY
@@ -169,7 +171,7 @@ module Devtools
169
171
 
170
172
  # Devtools configuration
171
173
  class Devtools < self
172
- FILE = 'devtools.yml'.freeze
174
+ FILE = 'devtools.yml'
173
175
  DEFAULT_UNIT_TEST_TIMEOUT = 0.1 # 100ms
174
176
 
175
177
  attribute :unit_test_timeout, [Float], default: DEFAULT_UNIT_TEST_TIMEOUT
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Devtools
2
4
  module Flay
3
5
  # Measure flay mass relative to size of duplicated sexps
@@ -46,7 +48,7 @@ module Devtools
46
48
  class FileList
47
49
  include Procto.call, Concord.new(:includes, :excludes)
48
50
 
49
- GLOB = '**/*.{rb,erb}'.freeze
51
+ GLOB = '**/*.{rb,erb}'
50
52
 
51
53
  # Expand includes and filter by excludes
52
54
  #
@@ -11,7 +11,9 @@ module Devtools
11
11
  #
12
12
  # @api rpivate
13
13
  def self.call
14
- FileList.glob(RAKE_FILES_GLOB).each(&::Rake.application.method(:add_import))
14
+ FileList
15
+ .glob(RAKE_FILES_GLOB)
16
+ .each(&::Rake.application.method(:add_import))
15
17
  self
16
18
  end
17
19
 
@@ -44,7 +44,9 @@ module Devtools
44
44
  #
45
45
  def enable_unit_test_timeout
46
46
  timeout = project.devtools.unit_test_timeout
47
- RSpec.configuration.around(file_path: UNIT_TEST_PATH_REGEXP) do |example|
47
+ RSpec
48
+ .configuration
49
+ .around(file_path: UNIT_TEST_PATH_REGEXP) do |example|
48
50
  Timeout.timeout(timeout, &example)
49
51
  end
50
52
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Devtools
2
4
  module Rake
3
5
  # Flay metric runner
@@ -6,39 +8,28 @@ module Devtools
6
8
  Procto.call(:verify),
7
9
  Adamantium
8
10
 
9
- BELOW_THRESHOLD = 'Adjust flay threshold down to %d'.freeze
10
- TOTAL_MISMATCH = 'Flay total is now %d, but expected %d'.freeze
11
- ABOVE_THRESHOLD = '%d chunks have a duplicate mass > %d'.freeze
11
+ BELOW_THRESHOLD = 'Adjust flay threshold down to %<mass>d'
12
+ TOTAL_MISMATCH = 'Flay total is now %<mass>d, but expected %<expected>d'
13
+ ABOVE_THRESHOLD = '%<mass>d chunks have a duplicate mass > %<threshold>d'
12
14
 
13
15
  # Verify code specified by `files` does not violate flay expectations
14
16
  #
15
17
  # @raise [SystemExit] if a violation is found
16
18
  # @return [undefined] otherwise
17
19
  #
18
- # rubocop:disable MethodLength
19
20
  #
20
21
  # @api private
21
22
  def verify
22
23
  # Run flay first to ensure the max mass matches the threshold
23
- if below_threshold?
24
- Devtools.notify_metric_violation(
25
- BELOW_THRESHOLD % largest_mass
26
- )
27
- end
28
-
29
- if total_mismatch?
30
- Devtools.notify_metric_violation(
31
- TOTAL_MISMATCH % [total_mass, total_score]
32
- )
33
- end
24
+ below_threshold_message if below_threshold?
25
+
26
+ total_mismatch_message if total_mismatch?
34
27
 
35
28
  # Run flay a second time with the threshold set
36
29
  return unless above_threshold?
37
30
 
38
31
  restricted_flay_scale.flay_report
39
- Devtools.notify_metric_violation(
40
- ABOVE_THRESHOLD % [restricted_mass_size, threshold]
41
- )
32
+ above_threshold_message
42
33
  end
43
34
 
44
35
  private
@@ -79,6 +70,40 @@ module Devtools
79
70
  !total_mass.equal?(total_score)
80
71
  end
81
72
 
73
+ # Above threshold message
74
+ #
75
+ # @return [String]
76
+ #
77
+ # @api private
78
+ def above_threshold_message
79
+ format_values = { mass: restricted_mass_size, threshold: threshold }
80
+ Devtools.notify_metric_violation(
81
+ format(ABOVE_THRESHOLD, format_values)
82
+ )
83
+ end
84
+
85
+ # Below threshold message
86
+ #
87
+ # @return [String]
88
+ #
89
+ # @api private
90
+ def below_threshold_message
91
+ Devtools.notify_metric_violation(
92
+ format(BELOW_THRESHOLD, mass: largest_mass)
93
+ )
94
+ end
95
+
96
+ # Total mismatch message
97
+ #
98
+ # @return [String]
99
+ #
100
+ # @api private
101
+ def total_mismatch_message
102
+ Devtools.notify_metric_violation(
103
+ format(TOTAL_MISMATCH, mass: total_mass, expected: total_score)
104
+ )
105
+ end
106
+
82
107
  # Size of mass measured by `Flay::Scale` and filtered by `threshold`
83
108
  #
84
109
  # @return [Integer]
@@ -1,7 +1,8 @@
1
1
  shared_examples_for 'an idempotent method' do
2
2
  it 'is idempotent' do
3
3
  first = subject
4
- fail 'RSpec not configured for threadsafety' unless RSpec.configuration.threadsafe?
4
+ error = 'RSpec not configured for threadsafety'
5
+ fail error unless RSpec.configuration.threadsafe?
5
6
  mutex = __memoized.instance_variable_get(:@mutex)
6
7
  memoized = __memoized.instance_variable_get(:@memoized)
7
8
  mutex.synchronize { memoized.delete(:subject) }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  describe Devtools::Rake::Flay, '#verify' do
2
4
  let(:tempfile) { Tempfile.new(%w[file .rb], Dir.mktmpdir) }
3
5
  let(:file) { Pathname(tempfile.path) }
@@ -29,7 +31,7 @@ describe Devtools::Rake::Flay, '#verify' do
29
31
 
30
32
  context 'reporting' do
31
33
  let(:options) do
32
- { threshold: 3, total_score: 3, lib_dirs: directories, excludes: [] }.freeze
34
+ { threshold: 3, total_score: 3, lib_dirs: directories, excludes: [] }
33
35
  end
34
36
 
35
37
  let(:instance) { described_class.new(options) }
@@ -49,7 +51,12 @@ describe Devtools::Rake::Flay, '#verify' do
49
51
 
50
52
  context 'when theshold is too low' do
51
53
  let(:instance) do
52
- described_class.new(threshold: 0, total_score: 0, lib_dirs: directories, excludes: [])
54
+ described_class.new(
55
+ threshold: 0,
56
+ total_score: 0,
57
+ lib_dirs: directories,
58
+ excludes: []
59
+ )
53
60
  end
54
61
 
55
62
  specify do
@@ -61,7 +68,12 @@ describe Devtools::Rake::Flay, '#verify' do
61
68
 
62
69
  context 'when threshold is too high' do
63
70
  let(:instance) do
64
- described_class.new(threshold: 1000, total_score: 0, lib_dirs: directories, excludes: [])
71
+ described_class.new(
72
+ threshold: 1000,
73
+ total_score: 0,
74
+ lib_dirs: directories,
75
+ excludes: []
76
+ )
65
77
  end
66
78
 
67
79
  specify do
@@ -73,7 +85,12 @@ describe Devtools::Rake::Flay, '#verify' do
73
85
 
74
86
  context 'when total is too high' do
75
87
  let(:instance) do
76
- described_class.new(threshold: 3, total_score: 50, lib_dirs: directories, excludes: [])
88
+ described_class.new(
89
+ threshold: 3,
90
+ total_score: 50,
91
+ lib_dirs: directories,
92
+ excludes: []
93
+ )
77
94
  end
78
95
 
79
96
  specify do
@@ -105,10 +122,16 @@ Similar code found in :defn (mass = 10)
105
122
  #{file}:1
106
123
  #{file}:5
107
124
  REPORT
125
+ # rubocop:enable Layout/IndentHeredoc
108
126
  end
109
127
 
110
128
  let(:instance) do
111
- described_class.new(threshold: 3, total_score: 5, lib_dirs: directories, excludes: [])
129
+ described_class.new(
130
+ threshold: 3,
131
+ total_score: 5,
132
+ lib_dirs: directories,
133
+ excludes: []
134
+ )
112
135
  end
113
136
 
114
137
  specify do
@@ -144,7 +167,12 @@ REPORT
144
167
  end
145
168
 
146
169
  let(:instance) do
147
- described_class.new(threshold: 5, total_score: 8, lib_dirs: directories, excludes: [])
170
+ described_class.new(
171
+ threshold: 5,
172
+ total_score: 8,
173
+ lib_dirs: directories,
174
+ excludes: []
175
+ )
148
176
  end
149
177
 
150
178
  it 'sums masses for total' do
@@ -155,7 +183,12 @@ REPORT
155
183
  context 'when no duplication masses' do
156
184
  let(:ruby) { '' }
157
185
  let(:instance) do
158
- described_class.new(threshold: 0, total_score: 0, lib_dirs: directories, excludes: [])
186
+ described_class.new(
187
+ threshold: 0,
188
+ total_score: 0,
189
+ lib_dirs: directories,
190
+ excludes: []
191
+ )
159
192
  end
160
193
 
161
194
  specify do
@@ -3,9 +3,8 @@ require 'tempfile'
3
3
  require 'tmpdir'
4
4
 
5
5
  if ENV['COVERAGE'] == 'true'
6
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
7
- SimpleCov::Formatter::HTMLFormatter,
8
- ]
6
+ formatter = [SimpleCov::Formatter::HTMLFormatter]
7
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(formatter)
9
8
 
10
9
  SimpleCov.start do
11
10
  command_name 'spec:unit'
@@ -1,7 +1,7 @@
1
1
  describe Devtools::Flay::Scale, '#measure' do
2
2
  subject(:measure) { instance.measure }
3
3
 
4
- let(:minimum_mass) { 0 }
4
+ let(:minimum_mass) { 0 }
5
5
  let(:files) { [instance_double(File)] }
6
6
  let(:flay_masses) { { 0 => 5, 1 => 10 } }
7
7
 
@@ -5,7 +5,8 @@ RSpec.describe Devtools::Project do
5
5
  subject { object.init_rspec }
6
6
 
7
7
  it 'calls the rspec initializer' do
8
- expect(Devtools::Project::Initializer::Rspec).to receive(:call).with(Devtools.project)
8
+ expect(Devtools::Project::Initializer::Rspec)
9
+ .to receive(:call).with(Devtools.project)
9
10
  expect(subject).to be(object)
10
11
  end
11
12
  end
@@ -4,6 +4,7 @@ namespace :metrics do
4
4
  begin
5
5
  # rubocop:disable Style/ParallelAssignment
6
6
  original, ENV['COVERAGE'] = ENV['COVERAGE'], 'true'
7
+ # rubocop:enable Style/ParallelAssignment
7
8
  Rake::Task['spec:unit'].execute
8
9
  ensure
9
10
  ENV['COVERAGE'] = original
@@ -40,3 +40,4 @@ namespace :metrics do
40
40
  end
41
41
  end
42
42
  end
43
+ # rubocop:enable Metrics/BlockLength
@@ -40,3 +40,4 @@ namespace :metrics do
40
40
  end
41
41
  end
42
42
  end
43
+ # rubocop:enable Metrics/BlockLength
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devtools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.19
4
+ version: 0.1.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-17 00:00:00.000000000 Z
11
+ date: 2018-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: abstract_type
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 12.0.0
145
+ version: 12.3.0
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 12.0.0
152
+ version: 12.3.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: reek
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -212,42 +212,42 @@ dependencies:
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: 0.51.0
215
+ version: 0.52.1
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: 0.51.0
222
+ version: 0.52.1
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: simplecov
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
227
  - - "~>"
228
228
  - !ruby/object:Gem::Version
229
- version: 0.14.0
229
+ version: 0.15.1
230
230
  type: :runtime
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
234
  - - "~>"
235
235
  - !ruby/object:Gem::Version
236
- version: 0.14.0
236
+ version: 0.15.1
237
237
  - !ruby/object:Gem::Dependency
238
238
  name: yard
239
239
  requirement: !ruby/object:Gem::Requirement
240
240
  requirements:
241
241
  - - "~>"
242
242
  - !ruby/object:Gem::Version
243
- version: 0.9.9
243
+ version: 0.9.12
244
244
  type: :runtime
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - "~>"
249
249
  - !ruby/object:Gem::Version
250
- version: 0.9.9
250
+ version: 0.9.12
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: yardstick
253
253
  requirement: !ruby/object:Gem::Requirement
@@ -334,7 +334,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
334
334
  requirements:
335
335
  - - ">="
336
336
  - !ruby/object:Gem::Version
337
- version: '2.1'
337
+ version: '2.3'
338
338
  required_rubygems_version: !ruby/object:Gem::Requirement
339
339
  requirements:
340
340
  - - ">="
@@ -342,7 +342,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
342
342
  version: '0'
343
343
  requirements: []
344
344
  rubyforge_project:
345
- rubygems_version: 2.6.13
345
+ rubygems_version: 2.7.3
346
346
  signing_key:
347
347
  specification_version: 4
348
348
  summary: A metagem wrapping development tools