rgr 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|