spellr 0.8.2 → 0.8.7

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: 8ed59cf5b3c7a98c77565b63809433c16e16e9f6445f911623d8f73aab0a42b3
4
- data.tar.gz: 20d9208eb6ee13445bf14bf51ae87ef3e4f034bdaab63e2e45614488dbecf3e1
3
+ metadata.gz: c9df7410c75a7e4c7ff3b8defecfdd38252571090e5edacbf46e562be7f27d3e
4
+ data.tar.gz: a7f24ff28fccb5bf4da96891849994442d2d27ad2097bfce246543efd80d1274
5
5
  SHA512:
6
- metadata.gz: 5b947e61408ed87bc8651f8f608550f8520cfbbcedbe22a7323a6dd385aff59bea8bae48d26812e042386bdd29e2cdfb3bbdcc2f4105ba99af2fe14ba5dd542a
7
- data.tar.gz: 6cddbbc490a53949a5656ede17c1330dca3d8d1d94b25a3661dfae6c050116824116468890408dfca87d01b24cfe6946a9b3fe62e0965f79402ab800b3b4a649
6
+ metadata.gz: a582e1b04c1f5f39637877b1f28c468d89c671bc8675bcadd639206b03753ac1df2c83dda0f88d42fb0f0eda1869a33fbb217e0bea45aaa6abc30e363d35774f
7
+ data.tar.gz: 60065eb1def72bb64ed99ef1186eb80d2ea9a6ef908e538677ae830747893b30358f7eee3c8d384cc31186366ac3cb546e6522400d5bc43df2a900818d171e86
@@ -1,3 +1,18 @@
1
+ # v0.8.7
2
+ - Recognize URL with tilde in path
3
+
4
+ # v0.8.6
5
+ - `--suppress--file-rules` so you can check files that would usually be ignored
6
+
7
+ # v0.8.5
8
+ - Single line disable! use `spellr:disable-line` #25
9
+
10
+ # v0.8.4
11
+ - Update fast_ignore dependency, it's faster now (about 0.5s faster on rails codebase)
12
+
13
+ # v0.8.3
14
+ - Update fast_ignore dependency fixing symlinks to directories handling.
15
+
1
16
  # v0.8.2
2
17
  - Massive test refactor
3
18
  - Spellr now only pays attention to Spellr.pwd. Dir.pwd can be whatever
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Spellr
2
2
 
3
+ [![Build Status](https://travis-ci.com/robotdana/spellr.svg?branch=main)](https://travis-ci.com/robotdana/spellr)
3
4
  [![Gem Version](https://badge.fury.io/rb/spellr.svg)](https://rubygems.org/gems/spellr)
4
- [![Build Status](https://travis-ci.org/robotdana/spellr.svg?branch=master)](https://travis-ci.org/robotdana/spellr)
5
5
 
6
6
  Spell check your source code for fun and occasionally finding bugs
7
7
 
@@ -27,6 +27,8 @@ However, in a programming context spelling things _consistently_ is useful, wher
27
27
 
28
28
  ## Installation
29
29
 
30
+ This is tested against ruby 2.4.0-3.0.0.preview1.
31
+
30
32
  ### With Bundler
31
33
 
32
34
  Add this line to your application's `Gemfile`:
@@ -175,20 +177,27 @@ Type `e` to add this word to the english wordlist and continue on through the sp
175
177
 
176
178
  ### Disabling the tokenizer
177
179
 
178
- If the tokenizer finds a word you don't want to add to the wordlist (perhaps it's an intentional example of a typo, or a non-word string not excluded by the heuristic) then place on the lines before and after
180
+ If the tokenizer finds a word you don't want to add to the wordlist (perhaps it's an intentional example of a typo, or a non-word string not excluded by the heuristic) then add any kind of comment containing `spellr:disable-line` to the line.
181
+ ```ruby
182
+ open('mispeled_filename.txt') # spellr:disable-line
183
+ ```
184
+
185
+ You can also disable multiple lines, by surrounding the offending code with `spellr:disable` and `spellr:enable`
179
186
  ```ruby
180
187
  # spellr:disable
181
- "Test typo of the: teh"
188
+ it "Test typo of the: teh" do
189
+ fill_in(field, with: "teh")
190
+ end
182
191
  # spellr:enable
183
192
  ```
184
193
 
185
- This works with any kind of comment, even in the same line
194
+ If your language supports inline comments you can also surround with `spellr:disable` and `spellr:enable` in the same line:
186
195
  ```html
187
196
  <span><!-- spellr:disable -->nonsenseword<!-- spellr:enable --></span>
188
197
  ```
189
198
  ## Configuration
190
199
 
191
- Spellr's configuration is a `.spellr.yml` file in your project root. This is combined with the gem defaults defined [here](https://github.com/robotdana/spellr/blob/master/lib/.spellr.yml).
200
+ Spellr's configuration is a `.spellr.yml` file in your project root. This is combined with the gem defaults defined [here](https://github.com/robotdana/spellr/blob/main/lib/.spellr.yml).
192
201
  There are top-level keys and per-language keys.
193
202
  ```yml
194
203
  word_minimum_length: 3 # any words shorter than this will be ignored
@@ -297,6 +306,18 @@ Spellr::RakeTask.generate_task(:spellr, **spellr_arguments)
297
306
  task default: :spellr
298
307
  ```
299
308
 
309
+ ## Ignoring the configured patterns
310
+
311
+ Sometimes you'll want to spell check something that would usually be ignored,
312
+ e.g. `.git/COMMIT_EDITMSG` even though `spellr` ignores the `.git` directory.
313
+
314
+ For this you can use the `--suppress-file-rules` command line argument.
315
+ ```bash
316
+ $ spellr --suppress-file-rules .git/COMMIT_EDITMSG
317
+ ```
318
+
319
+ **Note: This still ignores files outside of the current directory**
320
+
300
321
  ## Development
301
322
 
302
323
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests.
@@ -310,4 +331,4 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/robotd
310
331
  ## License
311
332
 
312
333
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
313
- Wordlists packaged with this gem have their own licenses, see them in https://github.com/robotdana/spellr/tree/master/wordlists
334
+ Wordlists packaged with this gem have their own licenses, see them in https://github.com/robotdana/spellr/tree/main/wordlists
@@ -44,6 +44,7 @@ languages:
44
44
  - Rakefile
45
45
  - config.ru
46
46
  - Capfile
47
+ - .simplecov
47
48
  hashbangs:
48
49
  - ruby
49
50
 
@@ -7,6 +7,7 @@ require_relative 'string_format'
7
7
  module Spellr
8
8
  class Check
9
9
  attr_reader :files, :reporter
10
+
10
11
  include StringFormat
11
12
 
12
13
  def exit_code
@@ -28,6 +28,9 @@ module Spellr
28
28
  opts.separator('')
29
29
  opts.on('--[no-]parallel', 'Run in parallel or not, default --parallel', &method(:parallel_option))
30
30
  opts.on('-d', '--dry-run', 'List files to be checked', &method(:dry_run_option))
31
+ opts.on('-f', '--suppress-file-rules', <<~HELP, &method(:suppress_file_rules))
32
+ Suppress all configured, default, and gitignore include and exclude patterns
33
+ HELP
31
34
  opts.separator('')
32
35
  opts.on('-c', '--config FILENAME', String, <<~HELP, &method(:config_option))
33
36
  Path to the config file (default ./.spellr.yml)
@@ -56,6 +59,10 @@ module Spellr
56
59
  Spellr.config.checker = Spellr::CheckInteractive unless @parallel_option
57
60
  end
58
61
 
62
+ def suppress_file_rules(_)
63
+ Spellr.config.suppress_file_rules = true
64
+ end
65
+
59
66
  def config_option(file)
60
67
  file = Spellr.pwd.join(file).expand_path
61
68
 
@@ -4,8 +4,8 @@ require_relative 'line_location'
4
4
 
5
5
  module Spellr
6
6
  class ColumnLocation
7
- attr_reader :char_offset
8
- attr_reader :byte_offset
7
+ attr_reader :char_offset, :byte_offset
8
+
9
9
  attr_accessor :line_location
10
10
 
11
11
  def initialize(char_offset: 0, byte_offset: 0, line_location: LineLocation.new)
@@ -10,10 +10,11 @@ require 'pathname'
10
10
 
11
11
  module Spellr
12
12
  class Config
13
- attr_writer :reporter
14
- attr_writer :checker
13
+ attr_writer :reporter, :checker
14
+
15
+ attr_accessor :suppress_file_rules, :dry_run
16
+
15
17
  attr_reader :config_file
16
- attr_accessor :dry_run
17
18
  alias_method :dry_run?, :dry_run
18
19
 
19
20
  def initialize
@@ -77,7 +78,7 @@ module Spellr
77
78
  Spellr::ConfigValidator.new.valid?
78
79
  end
79
80
 
80
- def reset! # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity
81
+ def reset! # rubocop:disable Metrics/MethodLength
81
82
  @config = ConfigLoader.new
82
83
  remove_instance_variable(:@languages) if defined?(@languages)
83
84
  remove_instance_variable(:@excludes) if defined?(@excludes)
@@ -4,25 +4,6 @@ require 'pathname'
4
4
 
5
5
  module Spellr
6
6
  class File < Pathname
7
- def self.wrap(file)
8
- file.is_a?(Spellr::File) ? file : Spellr::File.new(file)
9
- end
10
-
11
- # don't use FastIgnore shebang handling
12
- # because i use lots of different FastIgnore instances and each would to open the files.
13
- def hashbang
14
- @hashbang ||= begin
15
- return if extname != ''
16
- return unless first_line&.start_with?('#!')
17
-
18
- first_line
19
- end
20
- end
21
-
22
- def first_line
23
- @first_line ||= each_line.first
24
- end
25
-
26
7
  def relative_path
27
8
  @relative_path ||= relative_path_from(Spellr.pwd)
28
9
  end
@@ -34,6 +15,24 @@ module Spellr
34
15
  end
35
16
  end
36
17
 
18
+ # the bulk of this method is copied from fast_ignore
19
+ def first_line # rubocop:disable Metrics/MethodLength
20
+ return @first_line if defined?(@first_line)
21
+
22
+ @first_line = nil
23
+
24
+ file = ::File.new(to_s)
25
+ @first_line = file.sysread(25)
26
+ @first_line += file.sysread(50) until @first_line.include?("\n")
27
+ file.close
28
+ @first_line
29
+ rescue ::EOFError, ::SystemCallError
30
+ # :nocov:
31
+ file&.close
32
+ # :nocov:
33
+ @first_line
34
+ end
35
+
37
36
  def read_write
38
37
  write(yield read)
39
38
  end
@@ -26,11 +26,20 @@ module Spellr
26
26
 
27
27
  private
28
28
 
29
+ def configured_rules
30
+ return { gitignore: false } if Spellr.config.suppress_file_rules
31
+
32
+ {
33
+ ignore_rules: Spellr.config.excludes,
34
+ include_rules: Spellr.config.includes
35
+ }
36
+ end
37
+
29
38
  def fast_ignore # rubocop:disable Metrics/MethodLength
30
39
  FastIgnore.new(
31
- ignore_rules: Spellr.config.excludes,
32
- include_rules: Spellr.config.includes,
40
+ **configured_rules,
33
41
  argv_rules: @patterns,
42
+ follow_symlinks: true,
34
43
  root: Spellr.pwd_s
35
44
  )
36
45
  end
@@ -58,7 +58,7 @@ module Spellr
58
58
  Process.clock_gettime(Process::CLOCK_MONOTONIC)
59
59
  end
60
60
 
61
- def stdin_getch(legal_chars) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
61
+ def stdin_getch(legal_chars) # rubocop:disable Metrics/MethodLength
62
62
  choice = output.stdin.getch
63
63
 
64
64
  if legal_chars.include?(choice)
@@ -18,7 +18,7 @@ module Spellr
18
18
  end
19
19
 
20
20
  def languages
21
- @languages ||= Spellr.config.languages_for(token.location.file.to_path)
21
+ @languages ||= Spellr.config.languages_for(token.location.file)
22
22
  end
23
23
 
24
24
  def addable_languages
@@ -13,10 +13,7 @@ class NaiveBayes
13
13
 
14
14
  YAML_PATH = File.join(__dir__, 'data.yml')
15
15
 
16
- attr_reader :feature_set
17
- attr_reader :num_classes
18
- attr_reader :classes
19
- attr_reader :features
16
+ attr_reader :feature_set, :num_classes, :classes, :features
20
17
 
21
18
  def initialize(path = YAML_PATH)
22
19
  load_from_yaml(path)
@@ -7,17 +7,12 @@ require 'fast_ignore'
7
7
 
8
8
  module Spellr
9
9
  class Language
10
- attr_reader :name
11
- attr_reader :key
10
+ attr_reader :name, :key
12
11
 
13
- def initialize(name, key: name[0], includes: [], hashbangs: [], locale: [], addable: true) # rubocop:disable Metrics/ParameterLists, Metrics/MethodLength
12
+ def initialize(name, key: name[0], includes: [], hashbangs: [], locale: [], addable: true) # rubocop:disable Metrics/ParameterLists
14
13
  @name = name
15
14
  @key = key
16
- @includes = includes
17
- @hashbangs = hashbangs
18
- @hashbang_pattern = unless hashbangs.empty?
19
- /\A#!.*\b(?:#{hashbangs.map { |s| Regexp.escape(s) }.join('|')})\b/
20
- end
15
+ @includes = includes + hashbangs.map { |h| "#!:#{h}" }
21
16
  @locales = Array(locale)
22
17
  @addable = addable
23
18
  end
@@ -26,10 +21,6 @@ module Spellr
26
21
  @addable
27
22
  end
28
23
 
29
- def matches?(file)
30
- matches_includes?(file) || matches_hashbangs?(file)
31
- end
32
-
33
24
  def wordlists
34
25
  default_wordlists.select(&:exist?)
35
26
  end
@@ -41,24 +32,18 @@ module Spellr
41
32
  )
42
33
  end
43
34
 
44
- private
45
-
46
- def matches_hashbangs?(file)
47
- return @includes.empty? unless @hashbang_pattern
48
-
49
- file = Spellr::File.wrap(file)
50
- return unless file.hashbang
35
+ def matches?(file)
36
+ return true if @includes.empty?
51
37
 
52
- @hashbang_pattern.match?(file.hashbang)
38
+ fast_ignore.allowed?(file.to_s, directory: false, content: file.first_line)
53
39
  end
54
40
 
55
- def matches_includes?(file)
56
- return @hashbangs.empty? if @includes.empty?
41
+ private
57
42
 
43
+ def fast_ignore
58
44
  @fast_ignore ||= FastIgnore.new(
59
45
  include_rules: @includes, gitignore: false, root: Spellr.pwd_s
60
46
  )
61
- @fast_ignore.allowed?(file.to_s)
62
47
  end
63
48
 
64
49
  def gem_wordlist
@@ -4,27 +4,22 @@ require_relative 'file'
4
4
 
5
5
  module Spellr
6
6
  class LineLocation
7
- attr_reader :line_number
8
- attr_reader :char_offset
9
- attr_reader :byte_offset
7
+ attr_reader :line_number, :char_offset, :byte_offset, :file
10
8
 
11
- def initialize(file = '[String]', line_number = 1, char_offset: 0, byte_offset: 0)
12
- @filename = file
9
+ def initialize(
10
+ file = ::Spellr::File.new('[string]'),
11
+ line_number = 1,
12
+ char_offset: 0,
13
+ byte_offset: 0
14
+ )
15
+ @file = file
13
16
  @line_number = line_number
14
17
  @char_offset = char_offset
15
18
  @byte_offset = byte_offset
16
19
  end
17
20
 
18
21
  def to_s
19
- "#{file_relative_path}:#{line_number}"
20
- end
21
-
22
- def file_relative_path
23
- file.relative_path
24
- end
25
-
26
- def file
27
- @file ||= Spellr::File.wrap(@filename)
22
+ "#{file.relative_path}:#{line_number}"
28
23
  end
29
24
  end
30
25
  end
@@ -9,8 +9,8 @@ require_relative 'token_regexps'
9
9
 
10
10
  module Spellr
11
11
  class LineTokenizer < StringScanner
12
- attr_reader :line
13
- attr_reader :skip_key
12
+ attr_reader :line, :skip_key
13
+
14
14
  alias_method :skip_key?, :skip_key
15
15
 
16
16
  include TokenRegexps
@@ -16,7 +16,7 @@ module Spellr
16
16
  @stderr ||= StringIO.new
17
17
  end
18
18
 
19
- def marshal_dump # rubocop:disable Metrics/MethodLength
19
+ def marshal_dump # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
20
20
  l_exit_code = @exit_code if defined?(@exit_code)
21
21
  l_counts = @counts if defined?(@counts)
22
22
  l_stdin = @stdin if defined?(@stdin)
@@ -39,7 +39,7 @@ module Spellr
39
39
  # literal \ so that i can match on domains in regexps. no-one cares but me.
40
40
  URL_HOSTNAME = /(?:[[:alnum:]\-\\]+(?:\.[[:alnum:]\-\\]+)+|localhost|#{URL_IP_ADDRESS})/.freeze
41
41
  URL_PORT = /:\d+/.freeze
42
- URL_PATH = %r{/(?:[[:alnum:]=@!$&\-/._\\]|%\h{2})+}.freeze
42
+ URL_PATH = %r{/(?:[[:alnum:]=@!$&~\-/._\\]|%\h{2})+}.freeze
43
43
  URL_QUERY = %r{\?(?:[[:alnum:]=!$\-/.\\]|%\h{2})+(?:&(?:[[:alnum:]=!$\-/.\\]|%\h{2})+)*}.freeze
44
44
  URL_FRAGMENT = %r{#(?:[[:alnum:]=!$&\-/.\\]|%\h{2})+}.freeze
45
45
 
@@ -98,5 +98,6 @@ module Spellr
98
98
 
99
99
  SPELLR_DISABLE_RE = /spellr:disable/.freeze
100
100
  SPELLR_ENABLE_RE = /spellr:enable/.freeze
101
+ SPELLR_LINE_DISABLE_RE = /spellr:disable[-:]line/.freeze
101
102
  end
102
103
  end
@@ -7,9 +7,10 @@ require_relative 'line_tokenizer'
7
7
 
8
8
  module Spellr
9
9
  class Tokenizer
10
- attr_reader :file
10
+ attr_reader :file, :filename
11
11
 
12
12
  def initialize(file, start_at: nil, skip_key: true)
13
+ @filename = file
13
14
  @start_at = start_at || ColumnLocation.new(line_location: LineLocation.new(file))
14
15
  @file = file.is_a?(StringIO) || file.is_a?(IO) ? file : ::File.new(file)
15
16
  @file.pos = @start_at.line_location.byte_offset
@@ -27,7 +28,7 @@ module Spellr
27
28
 
28
29
  def each_term(&block)
29
30
  file.each_line do |line|
30
- prepare_tokenizer_for_line(line).each_term(&block)
31
+ prepare_tokenizer_for_line(line)&.each_term(&block)
31
32
  end
32
33
  ensure
33
34
  file.close
@@ -35,7 +36,7 @@ module Spellr
35
36
 
36
37
  def each_token(skip_term_proc: nil) # rubocop:disable Metrics/MethodLength
37
38
  each_line_with_stats do |line, line_number, char_offset, byte_offset|
38
- prepare_tokenizer_for_line(line).each_token(skip_term_proc: skip_term_proc) do |token|
39
+ prepare_tokenizer_for_line(line)&.each_token(skip_term_proc: skip_term_proc) do |token|
39
40
  token.line = prepare_line(line, line_number, char_offset, byte_offset)
40
41
 
41
42
  yield token
@@ -45,7 +46,7 @@ module Spellr
45
46
 
46
47
  def prepare_line(line, line_number, char_offset, byte_offset)
47
48
  line_location = LineLocation.new(
48
- file, line_number, char_offset: char_offset, byte_offset: byte_offset
49
+ filename, line_number, char_offset: char_offset, byte_offset: byte_offset
49
50
  )
50
51
  column_location = ColumnLocation.new(line_location: line_location)
51
52
  Token.new(line, location: column_location)
@@ -74,6 +75,8 @@ module Spellr
74
75
  attr_reader :line_tokenizer
75
76
 
76
77
  def prepare_tokenizer_for_line(line)
78
+ return if line.match?(Spellr::TokenRegexps::SPELLR_LINE_DISABLE_RE)
79
+
77
80
  line_tokenizer.string = line
78
81
  line_tokenizer.pos = 0
79
82
  line_tokenizer
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spellr
4
- VERSION = '0.8.2'
4
+ VERSION = '0.8.7'
5
5
  end
@@ -14,6 +14,12 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = 'http://github.com/robotdana/spellr'
15
15
  spec.license = 'MIT'
16
16
 
17
+ if spec.respond_to?(:metadata)
18
+ spec.metadata['homepage_uri'] = spec.homepage
19
+ spec.metadata['source_code_uri'] = spec.homepage
20
+ spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/main/CHANGELOG.md"
21
+ end
22
+
17
23
  spec.required_ruby_version = '>= 2.4'
18
24
 
19
25
  spec.files = Dir.glob('{lib,exe,wordlists}/**/{*,.*}') + %w{
@@ -28,19 +34,19 @@ Gem::Specification.new do |spec|
28
34
  spec.require_paths = ['lib']
29
35
 
30
36
  spec.add_development_dependency 'bundler', '~> 2.0'
31
- spec.add_development_dependency 'leftovers', '>= 0.2.2'
37
+ spec.add_development_dependency 'leftovers', '>= 0.4.0'
32
38
  spec.add_development_dependency 'mime-types', '~> 3.3.1'
33
39
  spec.add_development_dependency 'nokogiri'
34
40
  spec.add_development_dependency 'pry'
35
41
  spec.add_development_dependency 'rake', '>= 12.3.3'
36
42
  spec.add_development_dependency 'rspec', '~> 3.0'
37
- spec.add_development_dependency 'rubocop'
38
- spec.add_development_dependency 'rubocop-rspec'
43
+ spec.add_development_dependency 'rubocop', '~> 0.93.1'
44
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.44.1'
39
45
  spec.add_development_dependency 'simplecov', '~> 0.18.5'
40
46
  spec.add_development_dependency 'simplecov-console'
41
47
  spec.add_development_dependency 'tty_string', '>= 0.2.1'
42
48
  spec.add_development_dependency 'webmock', '~> 3.8'
43
49
 
44
- spec.add_dependency 'fast_ignore', '>= 0.10.0'
50
+ spec.add_dependency 'fast_ignore', '>= 0.11.0'
45
51
  spec.add_dependency 'parallel', '~> 1.0'
46
52
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spellr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dana Sherson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-21 00:00:00.000000000 Z
11
+ date: 2020-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.2
33
+ version: 0.4.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.2.2
40
+ version: 0.4.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: mime-types
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -112,30 +112,30 @@ dependencies:
112
112
  name: rubocop
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: 0.93.1
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: 0.93.1
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rubocop-rspec
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '0'
131
+ version: 1.44.1
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '0'
138
+ version: 1.44.1
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: simplecov
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -198,14 +198,14 @@ dependencies:
198
198
  requirements:
199
199
  - - ">="
200
200
  - !ruby/object:Gem::Version
201
- version: 0.10.0
201
+ version: 0.11.0
202
202
  type: :runtime
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - ">="
207
207
  - !ruby/object:Gem::Version
208
- version: 0.10.0
208
+ version: 0.11.0
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: parallel
211
211
  requirement: !ruby/object:Gem::Requirement
@@ -299,7 +299,10 @@ files:
299
299
  homepage: http://github.com/robotdana/spellr
300
300
  licenses:
301
301
  - MIT
302
- metadata: {}
302
+ metadata:
303
+ homepage_uri: http://github.com/robotdana/spellr
304
+ source_code_uri: http://github.com/robotdana/spellr
305
+ changelog_uri: http://github.com/robotdana/spellr/blob/main/CHANGELOG.md
303
306
  post_install_message:
304
307
  rdoc_options: []
305
308
  require_paths:
@@ -315,7 +318,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
315
318
  - !ruby/object:Gem::Version
316
319
  version: '0'
317
320
  requirements: []
318
- rubygems_version: 3.0.3
321
+ rubygems_version: 3.0.8
319
322
  signing_key:
320
323
  specification_version: 4
321
324
  summary: Spell check your source code