spellr 0.8.2 → 0.8.7

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
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