spellr 0.1.0 → 0.2.0

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
- SHA256:
3
- metadata.gz: 9b7c231dabb4a0b49998f877ebd00ecf07ea6f25a80f22e353e39fcd4b0c9ad1
4
- data.tar.gz: 99e8eb2b64932a8e60abe5650044e7a2372c2d7b31109468e876462b83c02fe6
2
+ SHA1:
3
+ metadata.gz: '08e49a55e37f2b63ecb10f8ce5218b6c1baa2c53'
4
+ data.tar.gz: d2d69cdf740d24670efde7b60389494688d42354
5
5
  SHA512:
6
- metadata.gz: fb2a823596e83c160e693b09885238809fb119ccb4b73819b27d2adc3cda19b183bc4b667d2530f3e13a898e10bcf6ca4fa10f298c01b600856fd2c314038a9b
7
- data.tar.gz: 399db2df47f14233869752713bb5f5a93a2c9bb6f08f5d0edbf7344f190a464d9d57a1d24ae49ed1b057e5e601babf0f7a5894a0305c686971c75a9cd03dd3b3
6
+ metadata.gz: a2d76f91252a4c97fa202f91c8500d0829dbf2392f7d4b433f42dfcc851b4402681e7104f2d19ba47d81ff0d74fd7bf4d0ca487edfe450563c7a38555bf64cb0
7
+ data.tar.gz: 93b0c4758dd2d39fbe50ff9b8434171955fccef32d973998d4a01be4c4f8b2366160e6f6732709ffee77d533601609e68fb43679ab67457b6ca99d6f7af11b10
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  /.spellr_wordlists/generated/*
2
2
  .rspec_status
3
+ pkg
@@ -69,15 +69,15 @@ Layout/FirstHashElementLineBreak:
69
69
  Enabled: true
70
70
 
71
71
  # to match our preference for consistent indentation
72
- Layout/FirstParameterIndentation:
72
+ Layout/IndentFirstArgument:
73
73
  EnforcedStyle: consistent
74
74
 
75
75
  # to match our preference for consistent indentation
76
- Layout/IndentArray:
76
+ Layout/IndentFirstArrayElement:
77
77
  EnforcedStyle: consistent
78
78
 
79
79
  # to match our preference for consistent indentation
80
- Layout/IndentHash:
80
+ Layout/IndentFirstHashElement:
81
81
  EnforcedStyle: consistent
82
82
 
83
83
  # to match our preference for consistent indentation
@@ -3,5 +3,8 @@ sudo: false
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.5.1
7
- before_install: gem install bundler -v 1.17.1
6
+ - 2.3
7
+ - 2.4
8
+ - 2.5
9
+ - 2.6
10
+ before_install: gem install bundler
@@ -0,0 +1,5 @@
1
+ # v0.2.0
2
+ - Supports ruby 2.3 - 2.6
3
+
4
+ # v0.1.0
5
+ Initial Release
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- spellr (0.1.0)
4
+ spellr (0.2.0)
5
5
  fast_ignore
6
6
  parallel
7
7
 
@@ -11,50 +11,48 @@ GEM
11
11
  ast (2.4.0)
12
12
  coderay (1.1.2)
13
13
  diff-lcs (1.3)
14
- fast_ignore (0.1.0)
15
- jaro_winkler (1.5.2)
14
+ fast_ignore (0.3.2)
15
+ jaro_winkler (1.5.3)
16
16
  method_source (0.9.2)
17
- parallel (1.14.0)
18
- parser (2.6.2.0)
17
+ parallel (1.17.0)
18
+ parser (2.6.4.1)
19
19
  ast (~> 2.4.0)
20
20
  pry (0.12.2)
21
21
  coderay (~> 1.1.0)
22
22
  method_source (~> 0.9.0)
23
- psych (3.1.0)
24
23
  rainbow (3.0.0)
25
24
  rake (10.5.0)
26
25
  rspec (3.8.0)
27
26
  rspec-core (~> 3.8.0)
28
27
  rspec-expectations (~> 3.8.0)
29
28
  rspec-mocks (~> 3.8.0)
30
- rspec-core (3.8.0)
29
+ rspec-core (3.8.2)
31
30
  rspec-support (~> 3.8.0)
32
31
  rspec-eventually (0.2.2)
33
- rspec-expectations (3.8.2)
32
+ rspec-expectations (3.8.4)
34
33
  diff-lcs (>= 1.2.0, < 2.0)
35
34
  rspec-support (~> 3.8.0)
36
- rspec-mocks (3.8.0)
35
+ rspec-mocks (3.8.1)
37
36
  diff-lcs (>= 1.2.0, < 2.0)
38
37
  rspec-support (~> 3.8.0)
39
- rspec-support (3.8.0)
40
- rubocop (0.66.0)
38
+ rspec-support (3.8.2)
39
+ rubocop (0.74.0)
41
40
  jaro_winkler (~> 1.5.1)
42
41
  parallel (~> 1.10)
43
- parser (>= 2.5, != 2.5.1.1)
44
- psych (>= 3.1.0)
42
+ parser (>= 2.6)
45
43
  rainbow (>= 2.2.2, < 4.0)
46
44
  ruby-progressbar (~> 1.7)
47
- unicode-display_width (>= 1.4.0, < 1.6)
48
- rubocop-rspec (1.32.0)
45
+ unicode-display_width (>= 1.4.0, < 1.7)
46
+ rubocop-rspec (1.35.0)
49
47
  rubocop (>= 0.60.0)
50
- ruby-progressbar (1.10.0)
51
- unicode-display_width (1.5.0)
48
+ ruby-progressbar (1.10.1)
49
+ unicode-display_width (1.6.0)
52
50
 
53
51
  PLATFORMS
54
52
  ruby
55
53
 
56
54
  DEPENDENCIES
57
- bundler (~> 1.17)
55
+ bundler (~> 2.0)
58
56
  pry
59
57
  rake (~> 10.0)
60
58
  rspec (~> 3.0)
@@ -64,4 +62,4 @@ DEPENDENCIES
64
62
  spellr!
65
63
 
66
64
  BUNDLED WITH
67
- 1.17.3
65
+ 2.0.2
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Spellr
2
2
 
3
+ [![Build Status](https://travis-ci.org/robotdana/spellr.svg?branch=master)](https://travis-ci.org/robotdana/spellr)
4
+
3
5
  Spell check your source code for fun and occasionally finding bugs
4
6
 
5
7
  This is inspired by https://github.com/myint/scspell but i wanted a ruby gem
@@ -40,25 +42,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/robotd
40
42
  ## License
41
43
 
42
44
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
43
-
44
- ## TODO Before release
45
-
46
- - [x] handle interactive add
47
- - [x] handling wordlists per language better
48
- - [x] global wordlists
49
- - [x] dynamic wordlist (e.g. built from ruby and YOUR Gemfile and stdlib packages)
50
- - [x] gem committed semi-dynamic wordlist
51
- - [x] gem committed static wordlist
52
- - [x] enable/disable
53
- - [x] get marketplacer codebase green
54
- - [x] escape
55
- - [ ] remove default dynamic wordlist nonsense
56
- - [x] fix bugs, have specs
57
- - [x] attempt key recognition
58
- ## TODO after release
59
- - [ ] throw instead of raise for flow control
60
- - [ ] attempt subwords again
61
- - [ ] (semi)dynamic js wordlist
62
- - [ ] (semi)dynamic html wordlist
63
- - [ ] (semi)dynamic bash wordlist
64
- - [ ] editor plugins
@@ -29,9 +29,6 @@ module Spellr
29
29
  files.each do |file|
30
30
  check_file(file)
31
31
  checked += 1
32
- rescue InvalidByteSequence
33
- # sometimes files are binary
34
- puts "Skipped unreadable file: #{file}" unless Spellr.config.quiet?
35
32
  end
36
33
 
37
34
  reporter.finish(checked) if reporter.respond_to?(:finish)
@@ -39,7 +36,7 @@ module Spellr
39
36
 
40
37
  private
41
38
 
42
- def check_file(file, start_at: nil, wordlists: Spellr.config.wordlists_for(file))
39
+ def check_file(file, start_at: nil, wordlists: Spellr.config.wordlists_for(file)) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/LineLength
43
40
  Spellr::Tokenizer.new(file, start_at: start_at).each_token do |token|
44
41
  next if wordlists.any? { |d| d.include?(token) }
45
42
 
@@ -51,6 +48,9 @@ module Spellr
51
48
  check_file(file, start_at: e.token.location, wordlists: wordlists)
52
49
  rescue Spellr::DidAdd => e
53
50
  check_file(file, start_at: e.token.location) # don't cache the wordlists
51
+ rescue InvalidByteSequence
52
+ # sometimes files are binary
53
+ puts "Skipped unreadable file: #{file}" unless Spellr.config.quiet?
54
54
  end
55
55
  end
56
56
  end
@@ -89,7 +89,24 @@ module Spellr
89
89
 
90
90
  return {} unless ::File.exist?(path)
91
91
 
92
- YAML.safe_load(::File.read(path), symbolize_names: true)
92
+ if RUBY_VERSION >= '2.5'
93
+ YAML.safe_load(::File.read(path), symbolize_names: true)
94
+ else
95
+ symbolize_names!(YAML.safe_load(::File.read(path)))
96
+ end
97
+ end
98
+
99
+ def symbolize_names!(obj)
100
+ case obj
101
+ when Hash
102
+ obj.keys.each do |key|
103
+ value = obj.delete(key)
104
+ obj[key.to_sym] = symbolize_names!(value)
105
+ end
106
+ when Array
107
+ obj.map! { |ea| symbolize_names!(ea) }
108
+ end
109
+ obj
93
110
  end
94
111
 
95
112
  def merge_config(default, project)
@@ -143,7 +143,8 @@ module Spellr
143
143
  def handle_replacement(token, original_token: token) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
144
144
  readline_editable_print(token.chomp)
145
145
  highlighted_token = token == original_token ? red(token) : token.highlight(original_token.char_range)
146
- prompt = "#{aqua '>>'} #{highlighted_token.chomp}\n#{aqua '=>'} "
146
+ puts "#{aqua '>>'} #{highlighted_token.chomp}"
147
+ prompt = "#{aqua '=>'} "
147
148
  replacement = Readline.readline(prompt)
148
149
  if replacement.empty?
149
150
  call(token)
@@ -115,7 +115,7 @@ module Spellr
115
115
  return unless skip_uri?
116
116
  return unless match?(URL_RE)
117
117
 
118
- captures = URL_RE.match(matched).named_captures
118
+ captures = URL_RE.match(matched)
119
119
  skip(URL_RE) if captures['scheme'] || captures['userinfo'] || captures['path']
120
120
  end
121
121
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spellr
4
- VERSION = '0.1.0'
4
+ VERSION = '0.2.0'
5
5
  end
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ['lib']
25
25
 
26
- spec.add_development_dependency 'bundler', '~> 1.17'
26
+ spec.add_development_dependency 'bundler', '~> 2.0'
27
27
  spec.add_development_dependency 'pry'
28
28
  spec.add_development_dependency 'rake', '~> 10.0'
29
29
  spec.add_development_dependency 'rspec', '~> 3.0'
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.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dana Sherson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-06 00:00:00.000000000 Z
11
+ date: 2019-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: '2.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.17'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pry
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -154,6 +154,7 @@ files:
154
154
  - ".spellr_wordlists/lorem.txt"
155
155
  - ".spellr_wordlists/ruby.txt"
156
156
  - ".travis.yml"
157
+ - CHANGELOG.md
157
158
  - Gemfile
158
159
  - Gemfile.lock
159
160
  - LICENSE.txt
@@ -210,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
210
211
  version: '0'
211
212
  requirements: []
212
213
  rubyforge_project:
213
- rubygems_version: 2.7.6
214
+ rubygems_version: 2.5.2.1
214
215
  signing_key:
215
216
  specification_version: 4
216
217
  summary: Spell check your source code