rgr 0.0.1 → 0.0.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/bin/rgr +20 -6
- data/lib/rgr.rb +2 -1
- data/lib/rgr/coloured_reporter.rb +2 -2
- data/lib/rgr/globber.rb +51 -0
- data/lib/rgr/plain_reporter.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72fbf35e650c79a99860f5cdf526c2aba2515bbc
|
4
|
+
data.tar.gz: ece6ac7f87bcd96289272757b02921117578411c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de716f18a460e55439033308faacf768ae27b5c7b168a699f0be6210b82f3dd14f469b307b99e67a0d0b3ccd30362efb629bc712384ebff0924beb075a1cddc4
|
7
|
+
data.tar.gz: 40708c03e1997130884e9b7e33fe80227e92ded1645331e3eee9a469846e006dbda74a217a6f257f9bc1220371a949973a47e38ca9dfe7e2658d2f543d3e3e23
|
data/bin/rgr
CHANGED
@@ -1,17 +1,31 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require "rgr"
|
3
3
|
|
4
|
-
|
4
|
+
if ARGV.empty?
|
5
|
+
abort "Usage: rgr [<options>] <search_query> <files...>"
|
6
|
+
end
|
5
7
|
|
6
8
|
reporter = Rgr.reporter.new
|
9
|
+
globber = Rgr::Globber.new
|
7
10
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
+
loop do
|
12
|
+
case option = ARGV.shift
|
13
|
+
when "--ignore"
|
14
|
+
prefix = ARGV.shift or abort "Expected path after --ignore"
|
15
|
+
globber.ignore_prefix(prefix)
|
11
16
|
else
|
12
|
-
|
17
|
+
# not an option, put it back
|
18
|
+
ARGV.unshift(option)
|
19
|
+
break
|
13
20
|
end
|
21
|
+
end
|
22
|
+
|
23
|
+
search_query = ARGV.shift
|
24
|
+
|
25
|
+
ARGV.each do |path|
|
26
|
+
globber.add_path(path)
|
27
|
+
end
|
14
28
|
|
15
|
-
Rgr.search(search_query,
|
29
|
+
Rgr.search(search_query, globber.each_file).each do |file, matches|
|
16
30
|
reporter.report_file_matches(file, matches)
|
17
31
|
end
|
data/lib/rgr.rb
CHANGED
@@ -15,8 +15,8 @@ module Rgr
|
|
15
15
|
|
16
16
|
matches.each do |match|
|
17
17
|
expr = match.expression
|
18
|
-
highlighted_source = highlight_source(expr.
|
19
|
-
printf "\e[33;1m%#{line_number_places}d\e[0m: %s\n", expr.line, highlighted_source
|
18
|
+
highlighted_source = highlight_source(expr.source_line)
|
19
|
+
output.printf "\e[33;1m%#{line_number_places}d\e[0m: %s\n", expr.line, highlighted_source
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
data/lib/rgr/globber.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
module Rgr
|
2
|
+
class Globber
|
3
|
+
attr_reader :paths, :ignored_prefixes
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@paths = []
|
7
|
+
@ignored_prefixes = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def add_path(path)
|
11
|
+
paths << path
|
12
|
+
end
|
13
|
+
|
14
|
+
def ignore_prefix(prefix)
|
15
|
+
ignored_prefixes << prefix
|
16
|
+
end
|
17
|
+
|
18
|
+
def each_file
|
19
|
+
return enum_for(:each_file) unless block_given?
|
20
|
+
|
21
|
+
unfiltered_files.each do |file|
|
22
|
+
next if ignored?(file)
|
23
|
+
yield file
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def ignored?(file)
|
28
|
+
ignored_prefixes.any? { |prefix|
|
29
|
+
file.start_with?(prefix)
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
def unfiltered_files
|
34
|
+
if paths.empty?
|
35
|
+
Dir["**/*.rb"]
|
36
|
+
else
|
37
|
+
paths.flat_map { |path|
|
38
|
+
glob_path(path)
|
39
|
+
}
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def glob_path(path)
|
44
|
+
if File.file?(path)
|
45
|
+
[path]
|
46
|
+
else
|
47
|
+
Dir["#{path}/**/*.rb"]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/rgr/plain_reporter.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rgr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charlie Somerville
|
@@ -48,6 +48,7 @@ files:
|
|
48
48
|
- bin/rgr
|
49
49
|
- lib/rgr.rb
|
50
50
|
- lib/rgr/coloured_reporter.rb
|
51
|
+
- lib/rgr/globber.rb
|
51
52
|
- lib/rgr/plain_reporter.rb
|
52
53
|
- lib/rgr/searcher.rb
|
53
54
|
homepage: https://github.com/charliesome/rgr
|