solargraph_test_coverage 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87bb6c9da590a67d83bc973958129c9a51048932b10e6f93f5b71f434dbc5c24
4
- data.tar.gz: 860848733c64a6ecb211547511e189d6a88375785b0b6de000a32cb9f565a737
3
+ metadata.gz: 663088457d9de39c37ee21f06b2bd16be5a983025af2909f55acfa1d432be0f4
4
+ data.tar.gz: adc3da11d72363b2c1d3ca4a8db307609b34090d9bdf24643a411e47e0a8be09
5
5
  SHA512:
6
- metadata.gz: 05b5cd3c1dd159e537d1832f4a4e95c69225908b9b58a94010de09997264b6262519f32d320e9a43e25b2c24911e59db25e3f89737db934fb4c1653736d14e3e
7
- data.tar.gz: be451c86383a71ad4e462bef3b2bb5f807061d392ba5510cb2b0b957fa639192579c191e9fbb034b5066a389662ebd7422f2390e253941a9f6568ec07dcea980
6
+ metadata.gz: f3407c7390c65e09f14c8f872455317ef28e8dfc30592554d9087d5bf1fb34e30b802077b7098dd1adc7c1a2082ce29c37b999a358654a929c614d6952e376b4
7
+ data.tar.gz: 7c252dc55695be04bdfed84d654d3d1ab41143c4d7cd606488f5cdd56365bea3eee8968f8674d1aa4e1d38e254ece0170dd3f6567752bf46e6fe4451da783f8e
data/Gemfile CHANGED
@@ -1,6 +1,8 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in solargraph_test_coverage.gemspec
4
6
  gemspec
5
7
 
6
- gem "rake", "~> 12.0"
8
+ gem 'rake', '~> 12.0'
data/Gemfile.lock CHANGED
@@ -1,8 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- solargraph_test_coverage (0.1.1)
5
- rspec-core (~> 3.10, >= 3.10.0)
4
+ solargraph_test_coverage (0.2.0)
6
5
  solargraph (~> 0.40, > 0.40)
7
6
 
8
7
  GEM
@@ -18,7 +17,7 @@ GEM
18
17
  rexml
19
18
  kramdown-parser-gfm (1.1.0)
20
19
  kramdown (~> 2.0)
21
- nokogiri (1.12.3-x86_64-darwin)
20
+ nokogiri (1.12.4-x86_64-darwin)
22
21
  racc (~> 1.4)
23
22
  parallel (1.20.1)
24
23
  parser (3.0.2.0)
@@ -30,9 +29,6 @@ GEM
30
29
  reverse_markdown (2.0.0)
31
30
  nokogiri
32
31
  rexml (3.2.5)
33
- rspec-core (3.10.1)
34
- rspec-support (~> 3.10.0)
35
- rspec-support (3.10.2)
36
32
  rubocop (1.20.0)
37
33
  parallel (~> 1.10)
38
34
  parser (>= 3.0.0.0)
data/README.md CHANGED
@@ -2,7 +2,14 @@
2
2
 
3
3
  Solargraph Plugin that provides a diagnostic reporter for unit-test coverage.
4
4
 
5
- Currently only works with RSpec.
5
+ Currently there are four different diagnostics:
6
+ - Line is not covered
7
+ - Branch is not covered (With a note if it's the 'THEN' or 'ELSE' branch)
8
+ - Spec is failing (Error message will be on line 1)
9
+ - Spec cannot be found (Error message will be on line 1)
10
+
11
+
12
+ Currently expects RSpec/Rails.
6
13
 
7
14
  ## Installation
8
15
 
@@ -13,6 +20,7 @@ gem 'solargraph_test_coverage'
13
20
  ```
14
21
 
15
22
  Then add this to your `.solargraph.yml` config:
23
+
16
24
  ```yaml
17
25
  plugins:
18
26
  - solargraph_test_coverage
@@ -20,16 +28,22 @@ reporters:
20
28
  - test_coverage
21
29
  ```
22
30
 
23
- If you are using a `spec/rails_helper.rb` file, you will need to change:
24
- ```ruby
25
- require "spec_helper"
31
+ Additionally, a `test_coverage` key can be added to `.solargraph.yml`. The default values are shown below:
32
+
33
+ ```yaml
34
+ test_coverage:
35
+ preload_rails: true
36
+ test_framework: rspec # or minitest
37
+ coverage:
38
+ - line
39
+ - branch
40
+ - test_failing
41
+ - test_missing
42
+ exclude_paths:
43
+ - 'app/controller'
26
44
  ```
27
45
 
28
- to
29
46
 
30
- ```ruby
31
- require_relative "spec_helper"
32
- ```
33
47
 
34
48
  And then execute:
35
49
 
@@ -41,18 +55,12 @@ Or install it yourself as:
41
55
 
42
56
  ## Usage
43
57
 
44
- With solargraph running and connected to your text editor, you should see diagnostic messages for test coverage.
45
-
46
- Currently there are four different messages:
47
- - Line is not covered
48
- - Branch is not covered (With a note if it's the 'THEN' or 'ELSE' branch)
49
- - Spec is failing (Error message will be on line 1)
50
- - Spec cannot be found (Error message will be on line 1)
58
+ With solargraph running and connected to your text editor, you should see diagnostic messages for line coverage, branch coverage, test file presence, and test status (if it's failing)
51
59
 
52
60
 
53
61
  ## Contributing
54
62
 
55
- Bug reports and pull requests are welcome on GitHub at https://github.com/ckolkey/solargraph_test_coverage.
63
+ Bug reports and pull requests are welcome on GitHub at https://github.com/deepdivr/solargraph_test_coverage.
56
64
 
57
65
 
58
66
  ## License
data/Rakefile CHANGED
@@ -1,2 +1,4 @@
1
- require "bundler/gem_tasks"
2
- task :default => :spec
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ task default: :spec
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ # frozen_string_literal = true
4
+
5
+ module SolargraphTestCoverage
6
+ class Config
7
+ class << self
8
+ DEFAULTS = {
9
+ 'preload_rails' => true, # can be true or false - performance optimization
10
+ 'test_framework' => 'rspec', # can be 'rspec' or 'minitest'
11
+ 'coverage' => [ # All diagnostics are enabled by default
12
+ 'line', # Specifying an array with fewer diagnostics will overwrite this
13
+ 'branch',
14
+ 'test_failing',
15
+ 'test_missing'
16
+ ],
17
+ 'exclude_paths' => [ # don't attempt to find/run a spec for files that match these paths
18
+ 'app/controller'
19
+ ]
20
+ }.freeze
21
+
22
+ def preload_rails?
23
+ plugin_config['preload_rails']
24
+ end
25
+
26
+ def exclude_paths
27
+ plugin_config['exclude_paths']
28
+ end
29
+
30
+ def line_coverage?
31
+ plugin_config['coverage'].include? 'line'
32
+ end
33
+
34
+ def branch_coverage?
35
+ plugin_config['coverage'].include? 'branch'
36
+ end
37
+
38
+ def test_failing_coverage?
39
+ plugin_config['coverage'].include? 'test_failing'
40
+ end
41
+
42
+ def test_missing_coverage?
43
+ plugin_config['coverage'].include? 'test_missing'
44
+ end
45
+
46
+ def test_framework
47
+ plugin_config['test_framework']
48
+ end
49
+
50
+ def test_dir
51
+ case test_framework
52
+ when 'rspec'
53
+ 'spec'
54
+ when 'minitest'
55
+ 'test'
56
+ end
57
+ end
58
+
59
+ def test_file_suffix
60
+ case test_framework
61
+ when 'rspec'
62
+ '_spec.rb'
63
+ when 'minitest'
64
+ '_test.rb'
65
+ end
66
+ end
67
+
68
+ private
69
+
70
+ def plugin_config
71
+ @plugin_config ||= workspace_config.tap do |config|
72
+ DEFAULTS.each_key { |key| config[key] = DEFAULTS[key] unless config.key?(key) }
73
+ end
74
+ end
75
+
76
+ def workspace_config
77
+ Solargraph::Workspace::Config.new(Dir.pwd).raw_data.fetch('test_coverage', {})
78
+ end
79
+ end
80
+ end
81
+ end
@@ -3,14 +3,40 @@
3
3
  module SolargraphTestCoverage
4
4
  module Helpers
5
5
  #
6
- # Attempts to find the corrosponding unit test file
7
- # TODO: This could be a bit more robust, supporting gems (/lib/) and
8
- # minitest (/test/)
6
+ # Determines if a file should be excluded from running diagnostics
7
+ #
8
+ # @return [Boolean]
9
+ #
10
+ def exclude_file?(source_filename)
11
+ return true if source_filename.start_with? File.join(Dir.pwd, Config.test_dir)
12
+
13
+ Config.exclude_paths.each { |path| return true if source_filename.sub(Dir.pwd, '').include? path }
14
+
15
+ false
16
+ end
17
+
18
+ #
19
+ # Attempts to find the corresponding unit test file
9
20
  #
10
21
  # @return [String]
11
22
  #
12
- def locate_test_file(source)
13
- source.location.filename.sub('/app/', '/spec/').sub('.rb', '_spec.rb')
23
+ def test_file(source)
24
+ @test_file ||= begin
25
+ relative_filepath = source.location.filename.sub(Dir.pwd, '').split('/').reject(&:empty?)
26
+ relative_filepath[0] = Config.test_dir
27
+
28
+ File.join(Dir.pwd, relative_filepath.join('/'))
29
+ .sub('.rb', Config.test_file_suffix)
30
+ end
31
+ end
32
+
33
+ #
34
+ # Memoized wrapper for #run_test
35
+ #
36
+ # @return [Hash]
37
+ #
38
+ def results(source)
39
+ @results ||= run_test(source)
14
40
  end
15
41
 
16
42
  #
@@ -20,11 +46,11 @@ module SolargraphTestCoverage
20
46
  #
21
47
  # @return [Hash]
22
48
  #
23
- def run_rspec(source, test_file)
49
+ def run_test(source)
24
50
  ForkProcess.run do
25
51
  Coverage.start(lines: true, branches: true)
26
- exit_code = RSpec::Core::Runner.run([test_file])
27
- Coverage.result.fetch(source.location.filename, {}).merge({ test_status: exit_code })
52
+ runner = TestRunner.with(test_file(source)).run!
53
+ Coverage.result.fetch(source.location.filename, {}).merge({ test_status: runner.passed? })
28
54
  end
29
55
  end
30
56
 
@@ -55,6 +81,22 @@ module SolargraphTestCoverage
55
81
  Branch.build_from(results).reject(&:covered?)
56
82
  end
57
83
 
84
+ #
85
+ # requires the specified testing framework
86
+ #
87
+ # @return [Boolean]
88
+ #
89
+ def self.require_testing_framework!
90
+ case Config.test_framework
91
+ when 'rspec'
92
+ require 'rspec/core'
93
+ when 'minitest'
94
+ require 'minitest/autorun'
95
+ else
96
+ raise UnknownTestingGem
97
+ end
98
+ end
99
+
58
100
  #
59
101
  # Only called once, when gem is loaded
60
102
  # Preloads rails via spec/rails_helper if Rails isn't already defined
@@ -63,21 +105,33 @@ module SolargraphTestCoverage
63
105
  # We rescue the LoadError since Solargraph would catch it otherwise,
64
106
  # and not load the plugin at all.
65
107
  #
108
+ # Adding the spec/ directory to the $LOAD_PATH lets 'require "spec_helper"'
109
+ # commonly found in rails_helper work.
110
+ #
66
111
  # If Coverage was started in Rails/Spec helper by SimpleCov,
67
112
  # calling Coverage.result after requiring stops and resets it.
68
113
  #
69
114
  # This is a bit experimental - I'm not sure if there will be downstream side-effects
70
115
  # from having Rails preloaded, but... we'll see :)
71
116
  #
117
+ # @return [Boolean]
118
+ #
72
119
  def self.preload_rails!
73
120
  return if defined?(Rails)
74
121
  return unless File.file?('spec/rails_helper.rb')
75
122
 
76
- require File.expand_path("spec/rails_helper")
123
+ spec_path = File.join(Dir.pwd, 'spec')
124
+ $LOAD_PATH.unshift(spec_path) unless $LOAD_PATH.include?(spec_path)
125
+
126
+ require File.expand_path('spec/rails_helper')
77
127
  Coverage.result(stop: true, clear: true) if Coverage.running?
128
+
129
+ true
78
130
  rescue LoadError => e
79
131
  Solargraph::Logging.logger.warn "LoadError when trying to require 'rails_helper'"
80
132
  Solargraph::Logging.logger.warn "[#{e.class}] #{e.message}"
133
+
134
+ false
81
135
  end
82
136
  end
83
137
  end
@@ -11,29 +11,46 @@ module SolargraphTestCoverage
11
11
  # @return [Array]
12
12
  #
13
13
  def diagnose(source, _api_map)
14
- return [] if source.code.empty? || !source.location.filename.include?('/app/')
14
+ return [] if source.code.empty? || exclude_file?(source.location.filename)
15
+ return [test_missing_error(source)] unless File.file?(test_file(source))
15
16
 
16
- test_file = locate_test_file(source)
17
- return [no_test_file_error(source, test_file)] unless File.file?(test_file)
18
-
19
- results = run_rspec(source, test_file)
20
- lines = uncovered_lines(results).map { |line| line_coverage_warning(source, line) }
21
- branches = uncovered_branches(results).map { |branch| branch_coverage_warning(source, branch.report) }
22
- status = results[:test_status].zero? ? [] : [test_failing_error(source)]
23
-
24
- lines + branches + status
17
+ messages(source)
25
18
  rescue ChildFailedError
26
19
  []
27
20
  end
28
21
 
29
22
  private
30
23
 
24
+ def messages(source)
25
+ messages = [
26
+ line_warnings(source),
27
+ branch_warnings(source),
28
+ test_passing_error(source)
29
+ ]
30
+
31
+ messages.flatten.compact
32
+ end
33
+
34
+ def line_warnings(source)
35
+ uncovered_lines(results(source)).map { |line| line_coverage_warning(source, line) }
36
+ end
37
+
38
+ def branch_warnings(source)
39
+ uncovered_branches(results(source)).map { |branch| branch_coverage_warning(source, branch.report) }
40
+ end
41
+
42
+ def test_passing_error(source)
43
+ results(source)[:test_status] ? [] : [test_failing_error(source)]
44
+ end
45
+
31
46
  #
32
47
  # Creates LSP warning message for missing line coverage
33
48
  #
34
49
  # @return [Hash]
35
50
  #
36
51
  def line_coverage_warning(source, line)
52
+ return unless Config.line_coverage?
53
+
37
54
  {
38
55
  range: Solargraph::Range.from_to(line, 0, line, source.code.lines[line].length).to_hash,
39
56
  severity: Solargraph::Diagnostics::Severities::WARNING,
@@ -51,8 +68,11 @@ module SolargraphTestCoverage
51
68
  # @return [Hash]
52
69
  #
53
70
  def branch_coverage_warning(source, report)
71
+ return unless Config.branch_coverage?
72
+
54
73
  {
55
- range: Solargraph::Range.from_to(report[:line] - 1, 0, report[:line] - 1, source.code.lines[report[:line] - 1].length).to_hash,
74
+ range: Solargraph::Range.from_to(report[:line] - 1, 0, report[:line] - 1,
75
+ source.code.lines[report[:line] - 1].length).to_hash,
56
76
  severity: Solargraph::Diagnostics::Severities::WARNING,
57
77
  source: 'TestCoverage',
58
78
  message: "'#{report[:type].upcase}' branch is missing test coverage"
@@ -65,11 +85,13 @@ module SolargraphTestCoverage
65
85
  # @return [Hash]
66
86
  #
67
87
  def test_failing_error(source)
88
+ return unless Config.test_failing_coverage?
89
+
68
90
  {
69
91
  range: Solargraph::Range.from_to(0, 0, 0, source.code.lines[0].length).to_hash,
70
92
  severity: Solargraph::Diagnostics::Severities::ERROR,
71
93
  source: 'TestCoverage',
72
- message: "Unit Test is currently failing."
94
+ message: 'Unit Test is currently failing.'
73
95
  }
74
96
  end
75
97
 
@@ -78,12 +100,14 @@ module SolargraphTestCoverage
78
100
  #
79
101
  # @return [Hash]
80
102
  #
81
- def no_test_file_error(source, test_file_location)
103
+ def test_missing_error(source)
104
+ return unless Config.test_missing_coverage?
105
+
82
106
  {
83
107
  range: Solargraph::Range.from_to(0, 0, 0, source.code.lines[0].length).to_hash,
84
108
  severity: Solargraph::Diagnostics::Severities::ERROR,
85
109
  source: 'TestCoverage',
86
- message: "No unit test file found at #{test_file_location}"
110
+ message: "No unit test file found at #{test_file(source)}"
87
111
  }
88
112
  end
89
113
  end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolargraphTestCoverage
4
+ # Parent Class for different testing frameworks
5
+ class TestRunner
6
+ def self.with(test_file)
7
+ case Config.test_framework
8
+ when 'rspec'
9
+ RSpecRunner.new(test_file)
10
+ when 'minitest'
11
+ MinitestRunner.new(test_file)
12
+ end
13
+ end
14
+
15
+ def initialize(test_file)
16
+ @test_file = test_file
17
+ @result = nil
18
+ end
19
+
20
+ def run!
21
+ @result = test_framework_runner.run([@test_file])
22
+ self
23
+ end
24
+
25
+ def passed?
26
+ raise NotImplementedError
27
+ end
28
+
29
+ def test_framework_runner
30
+ raise NotImplementedError
31
+ end
32
+ end
33
+
34
+ # Test Runner Subclass for RSpec
35
+ class RSpecRunner < TestRunner
36
+ def passed?
37
+ @result&.zero?
38
+ end
39
+
40
+ def test_framework_runner
41
+ RSpec::Core::Runner
42
+ end
43
+ end
44
+
45
+ # Test Runner Subclass for Minitest
46
+ class MinitestRunner < TestRunner
47
+ def passed?
48
+ @result
49
+ end
50
+
51
+ def test_framework_runner
52
+ Minitest
53
+ end
54
+ end
55
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SolargraphTestCoverage
2
- VERSION = "0.1.2"
4
+ VERSION = '0.2.0'
3
5
  end
@@ -1,24 +1,23 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'solargraph_test_coverage/version'
2
4
  require 'solargraph_test_coverage/branch'
3
5
  require 'solargraph_test_coverage/fork_process'
4
6
  require 'solargraph_test_coverage/helpers'
7
+ require 'solargraph_test_coverage/config'
8
+ require 'solargraph_test_coverage/test_runner'
5
9
  require 'solargraph_test_coverage/test_coverage_reporter'
6
10
 
7
11
  require 'solargraph'
8
- require 'rspec/core'
9
12
  require 'coverage'
10
13
 
11
- # TODO
12
- # - Finding the right file could use some work
13
- # - Config Options for different errors (line, branch, test missing, test failing)
14
- # - Minitest/Cucumber Support
15
- # - app/lib support
16
- # - filter out stuff like controllers that wouldn't have tests
17
- # - Publish Gem to Rubygems
18
-
19
14
  module SolargraphTestCoverage
20
15
  class ChildFailedError < StandardError; end
21
- Helpers.preload_rails!
16
+
17
+ class UnknownTestingGem < StandardError; end
18
+
19
+ Helpers.require_testing_framework!
20
+ Helpers.preload_rails! if Config.preload_rails?
22
21
 
23
22
  Solargraph::Diagnostics.register 'test_coverage', TestCoverageReporter
24
23
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'lib/solargraph_test_coverage/version'
2
4
 
3
5
  Gem::Specification.new do |spec|
@@ -8,11 +10,11 @@ Gem::Specification.new do |spec|
8
10
 
9
11
  spec.summary = 'Solargraph Plugin'
10
12
  spec.description = 'Solargraph Plugin that reports line/branch coverage from unit tests'
11
- spec.homepage = 'https://github.com/ckolkey/solargraph_test_coverage'
13
+ spec.homepage = 'https://github.com/deepdivr/solargraph_test_coverage'
12
14
  spec.license = 'MIT'
13
- spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.6.0')
14
16
 
15
- spec.metadata['allowed_push_host'] = "https://rubygems.org"
17
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
16
18
 
17
19
  spec.metadata['homepage_uri'] = spec.homepage
18
20
  spec.metadata['source_code_uri'] = spec.homepage
@@ -29,5 +31,4 @@ Gem::Specification.new do |spec|
29
31
  spec.require_paths = ['lib']
30
32
 
31
33
  spec.add_runtime_dependency 'solargraph', '~> 0.40', '> 0.40'
32
- spec.add_runtime_dependency 'rspec-core', '~> 3.10', '>= 3.10.0'
33
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solargraph_test_coverage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Kolkey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-31 00:00:00.000000000 Z
11
+ date: 2021-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solargraph
@@ -30,26 +30,6 @@ dependencies:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '0.40'
33
- - !ruby/object:Gem::Dependency
34
- name: rspec-core
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: 3.10.0
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '3.10'
43
- type: :runtime
44
- prerelease: false
45
- version_requirements: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 3.10.0
50
- - - "~>"
51
- - !ruby/object:Gem::Version
52
- version: '3.10'
53
33
  description: Solargraph Plugin that reports line/branch coverage from unit tests
54
34
  email:
55
35
  - Cameron.Kolkey@gmail.com
@@ -66,19 +46,21 @@ files:
66
46
  - Rakefile
67
47
  - lib/solargraph_test_coverage.rb
68
48
  - lib/solargraph_test_coverage/branch.rb
49
+ - lib/solargraph_test_coverage/config.rb
69
50
  - lib/solargraph_test_coverage/fork_process.rb
70
51
  - lib/solargraph_test_coverage/helpers.rb
71
52
  - lib/solargraph_test_coverage/test_coverage_reporter.rb
53
+ - lib/solargraph_test_coverage/test_runner.rb
72
54
  - lib/solargraph_test_coverage/version.rb
73
55
  - solargraph_test_coverage.gemspec
74
- homepage: https://github.com/ckolkey/solargraph_test_coverage
56
+ homepage: https://github.com/deepdivr/solargraph_test_coverage
75
57
  licenses:
76
58
  - MIT
77
59
  metadata:
78
60
  allowed_push_host: https://rubygems.org
79
- homepage_uri: https://github.com/ckolkey/solargraph_test_coverage
80
- source_code_uri: https://github.com/ckolkey/solargraph_test_coverage
81
- changelog_uri: https://github.com/ckolkey/solargraph_test_coverage
61
+ homepage_uri: https://github.com/deepdivr/solargraph_test_coverage
62
+ source_code_uri: https://github.com/deepdivr/solargraph_test_coverage
63
+ changelog_uri: https://github.com/deepdivr/solargraph_test_coverage
82
64
  post_install_message:
83
65
  rdoc_options: []
84
66
  require_paths:
@@ -87,7 +69,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
87
69
  requirements:
88
70
  - - ">="
89
71
  - !ruby/object:Gem::Version
90
- version: 2.3.0
72
+ version: 2.6.0
91
73
  required_rubygems_version: !ruby/object:Gem::Requirement
92
74
  requirements:
93
75
  - - ">="