starscope 1.0.2 → 1.0.3
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 +7 -0
- data/CHANGELOG.md +10 -1
- data/Gemfile.lock +10 -10
- data/README.md +2 -0
- data/lib/starscope/db.rb +20 -19
- data/lib/starscope/langs/go.rb +77 -73
- data/lib/starscope/langs/ruby.rb +20 -14
- data/lib/starscope/record.rb +9 -1
- data/lib/starscope/version.rb +1 -1
- data/starscope.gemspec +2 -2
- data/test/lib/test_record.rb +15 -0
- metadata +17 -36
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 38376cc70ae8d935176b3b428d6b82acb2e9ed28
|
4
|
+
data.tar.gz: eb7761acf9adc1aef79eaf1e2e74b04d7be51ca2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b2df9c55e2e0ca2ab3c0aeb825f7a9e9f3dec274216256a9e712eb60ea3176c4851925799b5621220fa59eca32ff67ba5813699eec056aa285840397f91775db
|
7
|
+
data.tar.gz: c5159b4997e35cd23f29ffee1a17da99e298dcdb7a02789a5b64435cd645e1af56788c5666c1ef5ac3dccfd5fdc250e48c62e7c170a8aaf71009e62138590d19
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,28 +1,28 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
starscope (1.0.
|
5
|
-
oj (~> 2.
|
4
|
+
starscope (1.0.3)
|
5
|
+
oj (~> 2.9)
|
6
6
|
parser (~> 2.1)
|
7
|
-
ruby-progressbar (~> 1.
|
7
|
+
ruby-progressbar (~> 1.5)
|
8
8
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
ast (
|
12
|
+
ast (2.0.0)
|
13
13
|
coderay (1.1.0)
|
14
14
|
method_source (0.8.2)
|
15
|
-
minitest (5.3.
|
16
|
-
oj (2.
|
17
|
-
parser (2.1.
|
18
|
-
ast (
|
15
|
+
minitest (5.3.4)
|
16
|
+
oj (2.9.4)
|
17
|
+
parser (2.1.9)
|
18
|
+
ast (>= 1.1, < 3.0)
|
19
19
|
slop (~> 3.4, >= 3.4.5)
|
20
20
|
pry (0.9.12.6)
|
21
21
|
coderay (~> 1.0)
|
22
22
|
method_source (~> 0.8)
|
23
23
|
slop (~> 3.4)
|
24
|
-
rake (10.
|
25
|
-
ruby-progressbar (1.
|
24
|
+
rake (10.3.2)
|
25
|
+
ruby-progressbar (1.5.1)
|
26
26
|
slop (3.5.0)
|
27
27
|
|
28
28
|
PLATFORMS
|
data/README.md
CHANGED
data/lib/starscope/db.rb
CHANGED
@@ -35,20 +35,20 @@ class StarScope::DB
|
|
35
35
|
@output.log("Reading database from `#{file}`... ")
|
36
36
|
File.open(file, 'r') do |file|
|
37
37
|
Zlib::GzipReader.wrap(file) do |file|
|
38
|
-
|
39
|
-
|
38
|
+
case file.gets.to_i
|
39
|
+
when DB_FORMAT
|
40
40
|
@meta = Oj.load(file.gets)
|
41
41
|
@tables = Oj.load(file.gets)
|
42
42
|
return false
|
43
|
-
|
43
|
+
when 3..4
|
44
|
+
# Old format, so read the directories segment then rebuild
|
45
|
+
add_paths(Oj.load(file.gets))
|
46
|
+
return true
|
47
|
+
when 0..2
|
44
48
|
# Old format (pre-json), so read the directories segment then rebuild
|
45
49
|
len = file.gets.to_i
|
46
50
|
add_paths(Marshal::load(file.read(len)))
|
47
51
|
return true
|
48
|
-
elsif format <= 4
|
49
|
-
# Old format, so read the directories segment then rebuild
|
50
|
-
add_paths(Oj.load(file.gets))
|
51
|
-
return true
|
52
52
|
else
|
53
53
|
raise UnknownDBFormatError
|
54
54
|
end
|
@@ -190,10 +190,11 @@ END
|
|
190
190
|
buf = ""
|
191
191
|
files = []
|
192
192
|
db_by_line().each do |filename, lines|
|
193
|
-
if
|
194
|
-
|
195
|
-
|
196
|
-
|
193
|
+
next if lines.empty?
|
194
|
+
|
195
|
+
buf << "\t@#{filename}\n\n"
|
196
|
+
files << filename
|
197
|
+
|
197
198
|
lines.sort.each do |line_no, records|
|
198
199
|
begin
|
199
200
|
line = records.first[:line].strip.gsub(/\s+/, ' ')
|
@@ -201,25 +202,25 @@ END
|
|
201
202
|
# invalid utf-8 byte sequence in the line, just do our best
|
202
203
|
line = records.first[:line]
|
203
204
|
end
|
204
|
-
toks = {}
|
205
205
|
|
206
|
+
toks = {}
|
206
207
|
records.each do |record|
|
207
|
-
|
208
|
+
key = record[:name][-1].to_s
|
209
|
+
index = line.index(key)
|
208
210
|
while index
|
209
211
|
toks[index] = record
|
210
|
-
index = line.index(
|
212
|
+
index = line.index(key, index + 1)
|
211
213
|
end
|
212
214
|
end
|
213
|
-
|
214
215
|
next if toks.empty?
|
215
216
|
|
216
217
|
prev = 0
|
217
218
|
buf << line_no.to_s << " "
|
218
|
-
toks.sort
|
219
|
+
toks.sort.each do |offset, record|
|
220
|
+
key = record[:name][-1].to_s
|
219
221
|
buf << line.slice(prev...offset) << "\n"
|
220
|
-
buf << StarScope::Record.cscope_mark(record[:tbl], record)
|
221
|
-
|
222
|
-
prev = offset + record[:name][-1].to_s.length
|
222
|
+
buf << StarScope::Record.cscope_mark(record[:tbl], record) << key << "\n"
|
223
|
+
prev = offset + key.length
|
223
224
|
end
|
224
225
|
buf << line.slice(prev..-1) << "\n\n"
|
225
226
|
end
|
data/lib/starscope/langs/go.rb
CHANGED
@@ -18,51 +18,39 @@ module StarScope::Lang
|
|
18
18
|
scope = []
|
19
19
|
str = File.readlines(file).each_with_index do |line, line_no|
|
20
20
|
line_no += 1 # zero-index to one-index
|
21
|
+
|
21
22
|
# strip single-line comments like // foo
|
22
23
|
match = /(.*)\/\//.match(line)
|
23
|
-
if match
|
24
|
-
line = match[1]
|
25
|
-
end
|
24
|
+
line = match[1] if match
|
26
25
|
# strip single-line comments like foo /* foo */ foo
|
27
26
|
match = /(.*?)\/\*.*\*\/(.*)/.match(line)
|
28
|
-
if match
|
29
|
-
line = match[1] + match[2]
|
30
|
-
end
|
27
|
+
line = match[1] + match[2] if match
|
31
28
|
# strip end-of-line comment starters like foo /* foo \n
|
32
29
|
match = /(.*?)\/\*/.match(line)
|
33
|
-
if match
|
34
|
-
|
35
|
-
|
36
|
-
else
|
37
|
-
ends_with_comment = false
|
38
|
-
end
|
30
|
+
line = match[1] if match
|
31
|
+
ends_with_comment = !match.nil?
|
32
|
+
|
39
33
|
# if we're in a block comment, wait for it to end
|
40
34
|
if stack[-1] == :comment
|
41
35
|
match = /\*\/(.*)/.match(line)
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
else
|
46
|
-
next
|
47
|
-
end
|
36
|
+
next unless match
|
37
|
+
line = match[1]
|
38
|
+
stack.pop
|
48
39
|
end
|
40
|
+
|
49
41
|
# poor-man's parser
|
50
42
|
case stack[-1]
|
51
43
|
when :struct
|
52
44
|
case line
|
53
45
|
when END_OF_BLOCK
|
54
|
-
|
55
|
-
stack.pop
|
56
|
-
scope.pop
|
46
|
+
end_block(line_no, scope, stack, &block)
|
57
47
|
when /(.+)\s+\w+/
|
58
48
|
parse_def($1, line_no, scope, &block)
|
59
49
|
end
|
60
50
|
when :interface
|
61
51
|
case line
|
62
52
|
when END_OF_BLOCK
|
63
|
-
|
64
|
-
stack.pop
|
65
|
-
scope.pop
|
53
|
+
end_block(line_no, scope, stack, &block)
|
66
54
|
when /(\w+)\(.*\)\s+/
|
67
55
|
yield :defs, scope + [$1], :line_no => line_no
|
68
56
|
end
|
@@ -83,60 +71,18 @@ module StarScope::Lang
|
|
83
71
|
name = $1.split('/')
|
84
72
|
yield :imports, name, :line_no => line_no
|
85
73
|
end
|
86
|
-
|
87
|
-
|
74
|
+
when :func
|
75
|
+
case line
|
76
|
+
when /^\}/
|
88
77
|
yield :end, "}", :line_no => line_no, :type => :func
|
89
78
|
stack.pop
|
90
|
-
end
|
91
|
-
case line
|
92
|
-
when /^func\s+(\w+)\(/
|
93
|
-
yield :defs, scope + [$1], :line_no => line_no, :type => :func
|
94
|
-
stack.push(:func)
|
95
|
-
when /^func\s+\(\w+\s+\*?(\w+)\)\s*(\w+)\(/
|
96
|
-
yield :defs, scope + [$1, $2], :line_no => line_no, :type => :func
|
97
|
-
stack.push(:func)
|
98
|
-
when /^package\s+(\w+)/
|
99
|
-
scope.push($1)
|
100
|
-
yield :defs, scope, :line_no => line_no, :type => :package
|
101
|
-
when /^type\s+(\w+)\s+struct\s*\{/
|
102
|
-
scope.push($1)
|
103
|
-
stack.push(:struct)
|
104
|
-
yield :defs, scope, :line_no => line_no, :type => :class
|
105
|
-
when /^type\s+(\w+)\s+interface\s*\{/
|
106
|
-
scope.push($1)
|
107
|
-
stack.push(:interface)
|
108
|
-
yield :defs, scope, :line_no => line_no, :type => :class
|
109
|
-
when /^type\s+(\w+)/
|
110
|
-
yield :defs, scope + [$1], :line_no => line_no, :type => :type
|
111
|
-
when /^import\s+"(.+)"/
|
112
|
-
name = $1.split('/')
|
113
|
-
yield :imports, name, :line_no => line_no
|
114
|
-
when /^import\s+\(/
|
115
|
-
stack.push(:import)
|
116
|
-
when /^var\s+\(/
|
117
|
-
stack.push(:def)
|
118
|
-
when /^var\s+(\w+)\s/
|
119
|
-
yield :defs, scope + [$1], :line_no => line_no
|
120
|
-
when /^const\s+\(/
|
121
|
-
stack.push(:def)
|
122
|
-
when /^const\s+(\w+)\s/
|
123
|
-
yield :defs, scope + [$1], :line_no => line_no
|
124
|
-
when /^\s+(.*?) :?=[^=]/
|
125
|
-
$1.split(' ').each do |var|
|
126
|
-
next if CONTROL_KEYS.include?(var)
|
127
|
-
name = var.delete(',').split('.')
|
128
|
-
next if name[0] == "_" # assigning to _ is a discard in golang
|
129
|
-
if name.length == 1
|
130
|
-
yield :assigns, scope + [name[0]], :line_no => line_no
|
131
|
-
else
|
132
|
-
yield :assigns, name, :line_no => line_no
|
133
|
-
end
|
134
|
-
end
|
135
|
-
parse_call(line, line_no, scope, &block)
|
136
79
|
else
|
137
|
-
|
80
|
+
parse_new_line(line, line_no, scope, stack, &block)
|
138
81
|
end
|
82
|
+
else
|
83
|
+
parse_new_line(line, line_no, scope, stack, &block)
|
139
84
|
end
|
85
|
+
|
140
86
|
# if the line looks like "foo /* foo" then we enter the comment state
|
141
87
|
# after parsing the usable part of the line
|
142
88
|
if ends_with_comment
|
@@ -145,6 +91,58 @@ module StarScope::Lang
|
|
145
91
|
end
|
146
92
|
end
|
147
93
|
|
94
|
+
# handles new lines (when not in the middle of an existing definition)
|
95
|
+
def self.parse_new_line(line, line_no, scope, stack, &block)
|
96
|
+
case line
|
97
|
+
when /^func\s+(\w+)\(/
|
98
|
+
yield :defs, scope + [$1], :line_no => line_no, :type => :func
|
99
|
+
stack.push(:func)
|
100
|
+
when /^func\s+\(\w+\s+\*?(\w+)\)\s*(\w+)\(/
|
101
|
+
yield :defs, scope + [$1, $2], :line_no => line_no, :type => :func
|
102
|
+
stack.push(:func)
|
103
|
+
when /^package\s+(\w+)/
|
104
|
+
scope.push($1)
|
105
|
+
yield :defs, scope, :line_no => line_no, :type => :package
|
106
|
+
when /^type\s+(\w+)\s+struct\s*\{/
|
107
|
+
scope.push($1)
|
108
|
+
stack.push(:struct)
|
109
|
+
yield :defs, scope, :line_no => line_no, :type => :class
|
110
|
+
when /^type\s+(\w+)\s+interface\s*\{/
|
111
|
+
scope.push($1)
|
112
|
+
stack.push(:interface)
|
113
|
+
yield :defs, scope, :line_no => line_no, :type => :class
|
114
|
+
when /^type\s+(\w+)/
|
115
|
+
yield :defs, scope + [$1], :line_no => line_no, :type => :type
|
116
|
+
when /^import\s+"(.+)"/
|
117
|
+
name = $1.split('/')
|
118
|
+
yield :imports, name, :line_no => line_no
|
119
|
+
when /^import\s+\(/
|
120
|
+
stack.push(:import)
|
121
|
+
when /^var\s+\(/
|
122
|
+
stack.push(:def)
|
123
|
+
when /^var\s+(\w+)\s/
|
124
|
+
yield :defs, scope + [$1], :line_no => line_no
|
125
|
+
when /^const\s+\(/
|
126
|
+
stack.push(:def)
|
127
|
+
when /^const\s+(\w+)\s/
|
128
|
+
yield :defs, scope + [$1], :line_no => line_no
|
129
|
+
when /^\s+(.*?) :?=[^=]/
|
130
|
+
$1.split(' ').each do |var|
|
131
|
+
next if CONTROL_KEYS.include?(var)
|
132
|
+
name = var.delete(',').split('.')
|
133
|
+
next if name[0] == "_" # assigning to _ is a discard in golang
|
134
|
+
if name.length == 1
|
135
|
+
yield :assigns, scope + [name[0]], :line_no => line_no
|
136
|
+
else
|
137
|
+
yield :assigns, name, :line_no => line_no
|
138
|
+
end
|
139
|
+
end
|
140
|
+
parse_call(line, line_no, scope, &block)
|
141
|
+
else
|
142
|
+
parse_call(line, line_no, scope, &block)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
148
146
|
def self.parse_call(line, line_no, scope)
|
149
147
|
line.scan(FUNC_CALL) do |match|
|
150
148
|
name = match[0].split('.').select {|chunk| not chunk.empty?}
|
@@ -171,5 +169,11 @@ module StarScope::Lang
|
|
171
169
|
break if not var.end_with?(',')
|
172
170
|
end
|
173
171
|
end
|
172
|
+
|
173
|
+
def self.end_block(line_no, scope, stack)
|
174
|
+
yield :end, scope + ["}"], :line_no => line_no, :type => :class
|
175
|
+
stack.pop
|
176
|
+
scope.pop
|
177
|
+
end
|
174
178
|
end
|
175
179
|
end
|
data/lib/starscope/langs/ruby.rb
CHANGED
@@ -51,32 +51,38 @@ module StarScope::Lang
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def extract_node(node)
|
54
|
+
loc = node.location
|
55
|
+
|
54
56
|
case node.type
|
55
57
|
when :send
|
56
|
-
|
57
|
-
yield :calls, fqn, :line_no => node.location.expression.line
|
58
|
+
yield :calls, scoped_name(node), :line_no => loc.expression.line
|
58
59
|
if node.children[0].nil? and node.children[1] == :require and node.children[2].type == :str
|
59
|
-
|
60
|
-
|
60
|
+
yield :requires, node.children[2].children[0].split("/"),
|
61
|
+
:line_no => loc.expression.line
|
61
62
|
end
|
63
|
+
|
62
64
|
when :def
|
63
65
|
yield :defs, @scope + [node.children[0]],
|
64
|
-
:line_no =>
|
65
|
-
yield :end, :end, :line_no =>
|
66
|
+
:line_no => loc.expression.line, :type => :func
|
67
|
+
yield :end, :end, :line_no => loc.end.line, :type => :func
|
68
|
+
|
66
69
|
when :defs
|
67
70
|
yield :defs, @scope + [node.children[1]],
|
68
|
-
:line_no =>
|
69
|
-
yield :end, :end, :line_no =>
|
71
|
+
:line_no => loc.expression.line, :type => :func
|
72
|
+
yield :end, :end, :line_no => loc.end.line, :type => :func
|
73
|
+
|
70
74
|
when :module, :class
|
71
|
-
|
72
|
-
|
73
|
-
yield :end, :end, :line_no =>
|
75
|
+
yield :defs, @scope + scoped_name(node.children[0]),
|
76
|
+
:line_no => loc.expression.line, :type => node.type
|
77
|
+
yield :end, :end, :line_no => loc.end.line, :type => node.type
|
78
|
+
|
74
79
|
when :casgn
|
75
80
|
fqn = scoped_name(node)
|
76
|
-
yield :assigns, fqn, :line_no =>
|
77
|
-
yield :defs, fqn, :line_no =>
|
81
|
+
yield :assigns, fqn, :line_no => loc.expression.line
|
82
|
+
yield :defs, fqn, :line_no => loc.expression.line
|
83
|
+
|
78
84
|
when :lvasgn, :ivasgn, :cvasgn, :gvasgn
|
79
|
-
yield :assigns, @scope + [node.children[0]], :line_no =>
|
85
|
+
yield :assigns, @scope + [node.children[0]], :line_no => loc.expression.line
|
80
86
|
end
|
81
87
|
end
|
82
88
|
|
data/lib/starscope/record.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
class StarScope::Record
|
2
2
|
|
3
|
+
@@cachedFile = nil
|
4
|
+
@@cachedLines = nil
|
5
|
+
|
3
6
|
def self.build(file, name, args)
|
4
7
|
args[:file] = file
|
5
8
|
|
@@ -10,7 +13,12 @@ class StarScope::Record
|
|
10
13
|
end
|
11
14
|
|
12
15
|
if args[:line_no]
|
13
|
-
|
16
|
+
if @@cachedFile != file
|
17
|
+
@@cachedFile = file
|
18
|
+
@@cachedLines = File.readlines(file)
|
19
|
+
end
|
20
|
+
|
21
|
+
args[:line] = @@cachedLines[args[:line_no]-1].chomp
|
14
22
|
end
|
15
23
|
|
16
24
|
args
|
data/lib/starscope/version.rb
CHANGED
data/starscope.gemspec
CHANGED
@@ -15,9 +15,9 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.required_ruby_version = '>= 1.8.7'
|
17
17
|
|
18
|
-
gem.add_dependency 'oj', '~> 2.
|
18
|
+
gem.add_dependency 'oj', '~> 2.9'
|
19
19
|
gem.add_dependency 'parser', '~> 2.1'
|
20
|
-
gem.add_dependency 'ruby-progressbar', '~> 1.
|
20
|
+
gem.add_dependency 'ruby-progressbar', '~> 1.5'
|
21
21
|
gem.add_development_dependency 'bundler', '~> 1.5'
|
22
22
|
gem.add_development_dependency 'rake'
|
23
23
|
gem.add_development_dependency 'pry'
|
data/test/lib/test_record.rb
CHANGED
@@ -13,8 +13,23 @@ describe StarScope::Record do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it "must read correct line from file" do
|
16
|
+
|
17
|
+
# we interleave the files here to test the cache
|
18
|
+
|
16
19
|
rec = StarScope::Record.build(GOLANG_SAMPLE, :a, {:line_no => 1})
|
17
20
|
rec[:line].must_equal "package main"
|
21
|
+
|
22
|
+
rec = StarScope::Record.build(GOLANG_SAMPLE, :a, {:line_no => 62})
|
23
|
+
rec[:line].must_equal "\tfmt.Println(t)"
|
24
|
+
|
25
|
+
rec = StarScope::Record.build(RUBY_SAMPLE, :a, {:line_no => 1})
|
26
|
+
rec[:line].must_equal "require 'date'"
|
27
|
+
|
28
|
+
rec = StarScope::Record.build(RUBY_SAMPLE, :a, {:line_no => 163})
|
29
|
+
rec[:line].must_equal "end"
|
30
|
+
|
31
|
+
rec = StarScope::Record.build(GOLANG_SAMPLE, :a, {:line_no => 63})
|
32
|
+
rec[:line].must_equal "}"
|
18
33
|
end
|
19
34
|
|
20
35
|
end
|
metadata
CHANGED
@@ -1,36 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: starscope
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Evan Huus
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-06-10 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: oj
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '2.
|
19
|
+
version: '2.9'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '2.
|
26
|
+
version: '2.9'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: parser
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,23 +41,20 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: ruby-progressbar
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '1.
|
47
|
+
version: '1.5'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
54
|
+
version: '1.5'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: bundler
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,49 +69,43 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rake
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: pry
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - '>='
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: minitest
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - '>='
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - '>='
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
description: A tool like the venerable cscope, but for ruby, golang and other languages
|
@@ -163,30 +148,26 @@ files:
|
|
163
148
|
homepage: https://github.com/eapache/starscope
|
164
149
|
licenses:
|
165
150
|
- MIT
|
151
|
+
metadata: {}
|
166
152
|
post_install_message:
|
167
153
|
rdoc_options: []
|
168
154
|
require_paths:
|
169
155
|
- lib
|
170
156
|
required_ruby_version: !ruby/object:Gem::Requirement
|
171
|
-
none: false
|
172
157
|
requirements:
|
173
|
-
- -
|
158
|
+
- - '>='
|
174
159
|
- !ruby/object:Gem::Version
|
175
160
|
version: 1.8.7
|
176
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
162
|
requirements:
|
179
|
-
- -
|
163
|
+
- - '>='
|
180
164
|
- !ruby/object:Gem::Version
|
181
165
|
version: '0'
|
182
|
-
segments:
|
183
|
-
- 0
|
184
|
-
hash: 2115433325249412524
|
185
166
|
requirements: []
|
186
167
|
rubyforge_project:
|
187
|
-
rubygems_version:
|
168
|
+
rubygems_version: 2.0.14
|
188
169
|
signing_key:
|
189
|
-
specification_version:
|
170
|
+
specification_version: 4
|
190
171
|
summary: A code indexer and analyzer
|
191
172
|
test_files:
|
192
173
|
- test/files/db_old.json.gz
|