fast_ignore 0.17.1 → 0.17.2
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/fast_ignore/file_root.rb +0 -4
- data/lib/fast_ignore/gitconfig_parser.rb +2 -3
- data/lib/fast_ignore/gitignore_include_rule_builder.rb +1 -5
- data/lib/fast_ignore/rule_builder.rb +1 -5
- data/lib/fast_ignore/rule_sets.rb +0 -4
- data/lib/fast_ignore/shebang_rule.rb +1 -1
- data/lib/fast_ignore/version.rb +1 -1
- data/lib/fast_ignore.rb +1 -8
- metadata +15 -2
- data/lib/fast_ignore/backports.rb +0 -66
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56582bce9b3eae6e761585c77846530bb96b287c2d6938dd7213c31b84567560
|
4
|
+
data.tar.gz: c2aabc49876831524acc8f14bc483aa8ec44ec715941a562bf4a6d5c4ac76b5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc5e6b69f903bf2bb0beed6001bfa01bfa2f8b7e452eca9270884a38a1924649e336866d94085bd59ff72549d495d3857035227a7b3b0cf22859fd939c1e32ac
|
7
|
+
data.tar.gz: e286d5802e0a0857552b9c9dbe03999546817478f2960fdbd057709485a862e876e3e9328a12fafc34388ba1aad0893f10ea318e7bdff728fb3ef41facc1568a
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
# v0.17.2
|
2
|
+
- Remove unnecessary backport code that was leftover when support for 2.4 was dropped
|
3
|
+
- Tiny performance improvements from rubocop-performance's suggestions
|
4
|
+
|
1
5
|
# v0.17.1
|
2
6
|
- fix handling of backward character classes `[z-a]`
|
3
7
|
previously this raised a RegexpError, but git just considered it to be identical to `[z]`, now we match the git behaviour (but why would you ever do this?, i only found it because of the fuzz spec in the `leftovers` gem)
|
@@ -2,10 +2,6 @@
|
|
2
2
|
|
3
3
|
class FastIgnore
|
4
4
|
class FileRoot
|
5
|
-
# :nocov:
|
6
|
-
using ::FastIgnore::Backports::DeletePrefixSuffix if defined?(::FastIgnore::Backports::DeletePrefixSuffix)
|
7
|
-
# :nocov:
|
8
|
-
|
9
5
|
def self.build(file_path, project_root)
|
10
6
|
file_root = "#{::File.dirname(file_path)}/".delete_prefix(project_root)
|
11
7
|
|
@@ -100,9 +100,8 @@ class FastIgnore
|
|
100
100
|
|
101
101
|
def on_branch?(branch_pattern)
|
102
102
|
branch_pattern += '**' if branch_pattern.end_with?('/')
|
103
|
-
current_branch = ::File.readable?("#{root}/.git/HEAD") &&
|
104
|
-
|
105
|
-
)
|
103
|
+
current_branch = ::File.readable?("#{root}/.git/HEAD") &&
|
104
|
+
::File.read("#{root}/.git/HEAD").delete_prefix('ref: refs/heads/')
|
106
105
|
return unless current_branch
|
107
106
|
|
108
107
|
# goddamit git what does 'a pattern with standard globbing wildcards' mean
|
@@ -2,10 +2,6 @@
|
|
2
2
|
|
3
3
|
class FastIgnore
|
4
4
|
class GitignoreIncludeRuleBuilder < GitignoreRuleBuilder
|
5
|
-
# :nocov:
|
6
|
-
using ::FastIgnore::Backports::DeletePrefixSuffix if defined?(::FastIgnore::Backports::DeletePrefixSuffix)
|
7
|
-
# :nocov:
|
8
|
-
|
9
5
|
def initialize(rule, file_path, expand_path_from = nil)
|
10
6
|
super(rule, file_path)
|
11
7
|
|
@@ -15,7 +11,7 @@ class FastIgnore
|
|
15
11
|
end
|
16
12
|
|
17
13
|
def expand_rule_path
|
18
|
-
anchored! unless @s.match?(/\*/)
|
14
|
+
anchored! unless @s.match?(/\*/) # rubocop:disable Performance/StringInclude # it's StringScanner#match?
|
19
15
|
return unless @s.match?(%r{(?:[~/]|\.{1,2}/|.*/\.\./)})
|
20
16
|
|
21
17
|
dir_only! if @s.match?(%r{.*/\s*\z})
|
@@ -3,10 +3,6 @@
|
|
3
3
|
class FastIgnore
|
4
4
|
module RuleBuilder
|
5
5
|
class << self
|
6
|
-
# :nocov:
|
7
|
-
using ::FastIgnore::Backports::DeletePrefixSuffix if defined?(::FastIgnore::Backports::DeletePrefixSuffix)
|
8
|
-
# :nocov:
|
9
|
-
|
10
6
|
def build(rule, allow, expand_path_with, file_root)
|
11
7
|
if rule.delete_prefix!('#!:')
|
12
8
|
shebang_rules(rule, allow, file_root)
|
@@ -23,7 +19,7 @@ class FastIgnore
|
|
23
19
|
rule = ::FastIgnore::ShebangRule.new(pattern, allow, file_root&.shebang_path_pattern)
|
24
20
|
return rule unless allow
|
25
21
|
|
26
|
-
rules = gitignore_rules('*/'
|
22
|
+
rules = gitignore_rules(+'*/', allow, file_root)
|
27
23
|
rules.pop # don't want the include all children one.
|
28
24
|
rules << rule
|
29
25
|
rules
|
@@ -2,10 +2,6 @@
|
|
2
2
|
|
3
3
|
class FastIgnore
|
4
4
|
class RuleSets
|
5
|
-
# :nocov:
|
6
|
-
using ::FastIgnore::Backports::DeletePrefixSuffix if defined?(::FastIgnore::Backports::DeletePrefixSuffix)
|
7
|
-
# :nocov:
|
8
|
-
|
9
5
|
def initialize( # rubocop:disable Metrics/ParameterLists
|
10
6
|
root:,
|
11
7
|
ignore_rules: nil,
|
@@ -63,7 +63,7 @@ class FastIgnore
|
|
63
63
|
file = ::File.new(path)
|
64
64
|
first_line = file.sysread(64)
|
65
65
|
if first_line.start_with?('#!')
|
66
|
-
first_line += file.readline unless first_line.
|
66
|
+
first_line += file.readline unless first_line.include?("\n")
|
67
67
|
else
|
68
68
|
file.close
|
69
69
|
return
|
data/lib/fast_ignore/version.rb
CHANGED
data/lib/fast_ignore.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative './fast_ignore/backports'
|
4
|
-
|
5
3
|
require 'set'
|
6
4
|
require 'strscan'
|
7
5
|
|
@@ -24,11 +22,6 @@ class FastIgnore
|
|
24
22
|
|
25
23
|
include ::Enumerable
|
26
24
|
|
27
|
-
# :nocov:
|
28
|
-
using ::FastIgnore::Backports::DeletePrefixSuffix if defined?(::FastIgnore::Backports::DeletePrefixSuffix)
|
29
|
-
using ::FastIgnore::Backports::DirEachChild if defined?(::FastIgnore::Backports::DirEachChild)
|
30
|
-
# :nocov:
|
31
|
-
|
32
25
|
def initialize(relative: false, root: nil, gitignore: :auto, follow_symlinks: false, **rule_set_builder_args)
|
33
26
|
@relative = relative
|
34
27
|
@follow_symlinks_method = ::File.method(follow_symlinks ? :stat : :lstat)
|
@@ -41,7 +34,7 @@ class FastIgnore
|
|
41
34
|
end
|
42
35
|
|
43
36
|
def each(&block)
|
44
|
-
return enum_for(:each) unless
|
37
|
+
return enum_for(:each) unless block
|
45
38
|
|
46
39
|
dir_pwd = ::Dir.pwd
|
47
40
|
root_from_pwd = @root.start_with?(dir_pwd) ? ".#{@root.delete_prefix(dir_pwd)}" : @root
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fast_ignore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.17.
|
4
|
+
version: 0.17.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dana Sherson
|
@@ -100,6 +100,20 @@ dependencies:
|
|
100
100
|
- - "<"
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '1.12'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: rubocop-performance
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
103
117
|
- !ruby/object:Gem::Dependency
|
104
118
|
name: rubocop-rake
|
105
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -181,7 +195,6 @@ files:
|
|
181
195
|
- LICENSE.txt
|
182
196
|
- README.md
|
183
197
|
- lib/fast_ignore.rb
|
184
|
-
- lib/fast_ignore/backports.rb
|
185
198
|
- lib/fast_ignore/file_root.rb
|
186
199
|
- lib/fast_ignore/gitconfig_parser.rb
|
187
200
|
- lib/fast_ignore/gitignore_include_rule_builder.rb
|
@@ -1,66 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class FastIgnore
|
4
|
-
module Backports
|
5
|
-
ruby_major, ruby_minor = ::RUBY_VERSION.split('.', 2)
|
6
|
-
unless ruby_major.to_i > 2 || ruby_major.to_i == 2 && ruby_minor.to_i > 5
|
7
|
-
module DirEachChild
|
8
|
-
refine ::Dir.singleton_class do
|
9
|
-
def children(path)
|
10
|
-
::Dir.entries(path) - ['.', '..']
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
module DeletePrefixSuffix
|
16
|
-
refine ::String do
|
17
|
-
# delete_prefix!(prefix) -> self or nil
|
18
|
-
# Deletes leading prefix from str, returning nil if no change was made.
|
19
|
-
#
|
20
|
-
# "hello".delete_prefix!("hel") #=> "lo"
|
21
|
-
# "hello".delete_prefix!("llo") #=> nil
|
22
|
-
def delete_prefix!(str)
|
23
|
-
return unless start_with?(str)
|
24
|
-
|
25
|
-
slice!(0..(str.length - 1))
|
26
|
-
self
|
27
|
-
end
|
28
|
-
|
29
|
-
# delete_suffix!(suffix) -> self or nil
|
30
|
-
# Deletes trailing suffix from str, returning nil if no change was made.
|
31
|
-
#
|
32
|
-
# "hello".delete_suffix!("llo") #=> "he"
|
33
|
-
# "hello".delete_suffix!("hel") #=> nil
|
34
|
-
def delete_suffix!(str)
|
35
|
-
return unless end_with?(str)
|
36
|
-
|
37
|
-
slice!(-str.length..-1)
|
38
|
-
self
|
39
|
-
end
|
40
|
-
|
41
|
-
# delete_prefix(prefix) -> new_str click to toggle source
|
42
|
-
# Returns a copy of str with leading prefix deleted.
|
43
|
-
#
|
44
|
-
# "hello".delete_prefix("hel") #=> "lo"
|
45
|
-
# "hello".delete_prefix("llo") #=> "hello"
|
46
|
-
def delete_prefix(str)
|
47
|
-
s = dup
|
48
|
-
s.delete_prefix!(str)
|
49
|
-
s
|
50
|
-
end
|
51
|
-
|
52
|
-
# delete_suffix(suffix) -> new_str
|
53
|
-
# Returns a copy of str with trailing suffix deleted.
|
54
|
-
#
|
55
|
-
# "hello".delete_suffix("llo") #=> "he"
|
56
|
-
# "hello".delete_suffix("hel") #=> "hello"
|
57
|
-
def delete_suffix(str) # leftovers:allowed
|
58
|
-
s = dup
|
59
|
-
s.delete_suffix!(str)
|
60
|
-
s
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|