starscope 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +6 -0
- data/CHANGELOG.md +14 -3
- data/Gemfile.lock +2 -2
- data/README.md +1 -0
- data/Rakefile +9 -0
- data/lib/starscope/langs/go.rb +31 -19
- data/lib/starscope/version.rb +1 -1
- data/starscope.gemspec +1 -0
- data/test/files/db_old.json.gz +0 -0
- data/test/{test.go → files/sample_golang.go} +19 -0
- data/test/files/sample_ruby.rb +163 -0
- data/test/lib/test_db.rb +44 -0
- data/test/lib/test_golang.rb +67 -0
- data/test/lib/test_ruby.rb +54 -0
- data/test/lib/test_version.rb +9 -0
- data/test/test_helper.rb +6 -0
- metadata +20 -5
- data/TODO.md +0 -6
data/.travis.yml
ADDED
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,22 @@
|
|
1
1
|
Changelog
|
2
2
|
=========
|
3
3
|
|
4
|
-
v0.1.
|
4
|
+
v0.1.7 (trunk)
|
5
5
|
-------------------
|
6
6
|
|
7
|
-
|
8
|
-
* Much
|
7
|
+
Improvements:
|
8
|
+
* Much better recognition and parsing of definitions and assignments to
|
9
|
+
variables and constants in golang code (fixes #11 among others).
|
10
|
+
|
11
|
+
Infrastructure:
|
12
|
+
* Test suite and continuous integration (via Minitest and Travis-CI).
|
13
|
+
* Use github's tickets instead of a TODO file.
|
14
|
+
|
15
|
+
v0.1.6 (2014-01-10)
|
16
|
+
-------------------
|
17
|
+
|
18
|
+
Improvements:
|
19
|
+
* Better recognition of golang function calls.
|
9
20
|
|
10
21
|
v0.1.5 (2014-01-06)
|
11
22
|
-------------------
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
starscope (0.1.
|
4
|
+
starscope (0.1.7)
|
5
5
|
oj (~> 2.5)
|
6
6
|
parser (~> 2.1)
|
7
7
|
ruby-progressbar (~> 1.4)
|
@@ -20,7 +20,7 @@ GEM
|
|
20
20
|
debugger-ruby_core_source (1.3.1)
|
21
21
|
method_source (0.8.2)
|
22
22
|
oj (2.5.3)
|
23
|
-
parser (2.1.
|
23
|
+
parser (2.1.4)
|
24
24
|
ast (~> 1.1)
|
25
25
|
slop (~> 3.4, >= 3.4.5)
|
26
26
|
pry (0.9.12.4)
|
data/README.md
CHANGED
@@ -2,6 +2,7 @@ StarScope
|
|
2
2
|
=========
|
3
3
|
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/starscope.png)](http://badge.fury.io/rb/starscope)
|
5
|
+
[![Build Status](https://travis-ci.org/eapache/starscope.png?branch=master)](https://travis-ci.org/eapache/starscope)
|
5
6
|
|
6
7
|
Anyone who has done much programming in C (or C++) on a unix-based OS has come
|
7
8
|
across the fantastic [Cscope](http://cscope.sourceforge.net/) tool. Sadly, it
|
data/Rakefile
CHANGED
data/lib/starscope/langs/go.rb
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
module StarScope::Lang
|
2
2
|
module Go
|
3
3
|
FUNC_CALL = /([\w\.]*?\w)\(/
|
4
|
+
END_OF_BLOCK = /^\s*}\s*$/
|
5
|
+
END_OF_GROUP = /^\s*\)\s*$/
|
4
6
|
BUILTIN_FUNCS = ['new', 'make', 'len', 'close', 'copy', 'delete',
|
5
7
|
'int', 'int8', 'int16', 'int32', 'int64',
|
6
8
|
'uint', 'uint8', 'uint16', 'uint32', 'uint64',
|
7
9
|
'string', 'byte']
|
10
|
+
CONTROL_KEYS = ['if', 'for', 'switch', 'case']
|
8
11
|
|
9
12
|
def self.match_file(name)
|
10
13
|
name =~ /.*\.go$/
|
@@ -47,36 +50,38 @@ module StarScope::Lang
|
|
47
50
|
case stack[-1]
|
48
51
|
when :struct
|
49
52
|
case line
|
50
|
-
when
|
51
|
-
yield :defs, $1, line_no: line_no, scope: scope
|
52
|
-
when /}/
|
53
|
+
when END_OF_BLOCK
|
53
54
|
yield :end, "}", line_no: line_no, scope: scope, type: :class
|
54
55
|
stack.pop
|
55
56
|
scope.pop
|
57
|
+
when /(.+)\s+\w+/
|
58
|
+
parse_def($1, line_no, scope, &block)
|
56
59
|
end
|
57
60
|
when :interface
|
58
61
|
case line
|
59
|
-
when
|
60
|
-
yield :defs, $1, line_no: line_no, scope: scope
|
61
|
-
when /}/
|
62
|
+
when END_OF_BLOCK
|
62
63
|
yield :end, "}", line_no: line_no, scope: scope, type: :class
|
63
64
|
stack.pop
|
64
65
|
scope.pop
|
66
|
+
when /(\w+)\(.*\)\s+/
|
67
|
+
yield :defs, $1, line_no: line_no, scope: scope
|
65
68
|
end
|
66
69
|
when :def
|
67
70
|
case line
|
68
|
-
when
|
69
|
-
yield :defs, $1, line_no: line_no, scope: scope
|
70
|
-
when /\)/
|
71
|
+
when END_OF_GROUP
|
71
72
|
stack.pop
|
73
|
+
when /(.+)\s*=.*/
|
74
|
+
parse_def($1, line_no, scope, &block)
|
75
|
+
else
|
76
|
+
parse_def(line, line_no, scope, &block)
|
72
77
|
end
|
73
78
|
when :import
|
74
79
|
case line
|
80
|
+
when END_OF_GROUP
|
81
|
+
stack.pop
|
75
82
|
when /"(.+)"/
|
76
83
|
name = $1.split('/')
|
77
84
|
yield :imports, name[-1], line_no: line_no, scope: name[0...-1]
|
78
|
-
when /\)/
|
79
|
-
stack.pop
|
80
85
|
end
|
81
86
|
else
|
82
87
|
if stack[-1] == :func and /^}/ =~ line
|
@@ -116,15 +121,15 @@ module StarScope::Lang
|
|
116
121
|
stack.push(:def)
|
117
122
|
when /^const\s+(\w+)\s+\w+/
|
118
123
|
yield :defs, $1, line_no: line_no, scope: scope
|
119
|
-
when /^\s+(.*?)
|
120
|
-
$1.split('
|
121
|
-
|
122
|
-
name = var.split('.')
|
123
|
-
|
124
|
-
|
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
|
125
130
|
yield :assigns, name[0], line_no: line_no, scope: scope
|
126
|
-
|
127
|
-
yield :assigns, name[1], line_no: line_no, scope:
|
131
|
+
else
|
132
|
+
yield :assigns, name[1], line_no: line_no, scope: name[0..-1]
|
128
133
|
end
|
129
134
|
end
|
130
135
|
parse_call(line, line_no, scope, &block)
|
@@ -155,5 +160,12 @@ module StarScope::Lang
|
|
155
160
|
end
|
156
161
|
end
|
157
162
|
end
|
163
|
+
|
164
|
+
def self.parse_def(line, line_no, scope)
|
165
|
+
line.split.each do |var|
|
166
|
+
yield :defs, var.delete(','), line_no: line_no, scope: scope
|
167
|
+
break if not var.end_with?(',')
|
168
|
+
end
|
169
|
+
end
|
158
170
|
end
|
159
171
|
end
|
data/lib/starscope/version.rb
CHANGED
data/starscope.gemspec
CHANGED
@@ -11,6 +11,7 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.license = 'MIT'
|
12
12
|
gem.files = `git ls-files`.split("\n")
|
13
13
|
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
14
|
+
gem.test_files = `git ls-files -- test/*`.split("\n")
|
14
15
|
gem.require_paths = ["lib"]
|
15
16
|
gem.required_ruby_version = '>= 1.9.3'
|
16
17
|
|
Binary file
|
@@ -1,5 +1,14 @@
|
|
1
1
|
package main
|
2
2
|
|
3
|
+
var (
|
4
|
+
v1, v2 int = 3, 4
|
5
|
+
)
|
6
|
+
|
7
|
+
const (
|
8
|
+
Sunday = iota
|
9
|
+
Monday
|
10
|
+
)
|
11
|
+
|
3
12
|
func a(c int) int {
|
4
13
|
return 3
|
5
14
|
}
|
@@ -12,6 +21,10 @@ func c(a, b int) int {
|
|
12
21
|
return 1
|
13
22
|
}
|
14
23
|
|
24
|
+
func ttt() (int, int) {
|
25
|
+
return 1, 2
|
26
|
+
}
|
27
|
+
|
15
28
|
func main() {
|
16
29
|
var (
|
17
30
|
q int
|
@@ -20,6 +33,12 @@ func main() {
|
|
20
33
|
x := a(1)
|
21
34
|
y := b()
|
22
35
|
z := c(a(q), b())
|
36
|
+
n, m := ttt()
|
37
|
+
m, x = ttt()
|
38
|
+
|
39
|
+
if m == x {
|
40
|
+
v1 = v2
|
41
|
+
}
|
23
42
|
|
24
43
|
a(c(b(), b()))
|
25
44
|
}
|
@@ -0,0 +1,163 @@
|
|
1
|
+
require 'date'
|
2
|
+
require 'zlib'
|
3
|
+
|
4
|
+
LANGS = [
|
5
|
+
StarScope::Lang::Go,
|
6
|
+
StarScope::Lang::Ruby
|
7
|
+
]
|
8
|
+
|
9
|
+
class StarScope::DB
|
10
|
+
|
11
|
+
PBAR_FORMAT = '%t: %c/%C %E ||%b>%i||'
|
12
|
+
|
13
|
+
class NoTableError < StandardError; end
|
14
|
+
|
15
|
+
def initialize(progress)
|
16
|
+
@progress = progress
|
17
|
+
@paths = []
|
18
|
+
@files = {}
|
19
|
+
@tables = {}
|
20
|
+
end
|
21
|
+
|
22
|
+
def load(file)
|
23
|
+
File.open(file, 'r') do |file|
|
24
|
+
Zlib::GzipReader.wrap(file) do |file|
|
25
|
+
format = file.gets.to_i
|
26
|
+
if format == DB_FORMAT
|
27
|
+
@paths = Oj.load(file.gets)
|
28
|
+
@files = Oj.load(file.gets)
|
29
|
+
@tables = Oj.load(file.gets, symbol_keys: true)
|
30
|
+
elsif format <= 2
|
31
|
+
# Old format (pre-json), so read the directories segment then rebuild
|
32
|
+
len = file.gets.to_i
|
33
|
+
add_paths(Marshal::load(file.read(len)))
|
34
|
+
elsif format < DB_FORMAT
|
35
|
+
# Old format, so read the directories segment then rebuild
|
36
|
+
add_paths(Oj.load(file.gets))
|
37
|
+
elsif format > DB_FORMAT
|
38
|
+
raise UnknownDBFormatError
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def save(file)
|
45
|
+
File.open(file, 'w') do |file|
|
46
|
+
Zlib::GzipWriter.wrap(file) do |file|
|
47
|
+
file.puts DB_FORMAT
|
48
|
+
file.puts Oj.dump @paths
|
49
|
+
file.puts Oj.dump @files
|
50
|
+
file.puts Oj.dump @tables
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def add_paths(paths)
|
56
|
+
paths -= @paths
|
57
|
+
return if paths.empty?
|
58
|
+
@paths += paths
|
59
|
+
files = paths.map {|p| self.class.files_from_path(p)}.flatten
|
60
|
+
return if files.empty?
|
61
|
+
if @progress
|
62
|
+
pbar = ProgressBar.create(title: "Building", total: files.length, format: PBAR_FORMAT, length: 80)
|
63
|
+
end
|
64
|
+
files.each do |f|
|
65
|
+
add_file(f)
|
66
|
+
pbar.increment if @progress
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def update
|
71
|
+
new_files = (@paths.map {|p| self.class.files_from_path(p)}.flatten) - @files.keys
|
72
|
+
if @progress
|
73
|
+
pbar = ProgressBar.create(title: "Updating", total: new_files.length + @files.length, format: PBAR_FORMAT, length: 80)
|
74
|
+
end
|
75
|
+
changed = @files.keys.map do |f|
|
76
|
+
changed = update_file(f)
|
77
|
+
pbar.increment if @progress
|
78
|
+
changed
|
79
|
+
end
|
80
|
+
new_files.each do |f|
|
81
|
+
add_file(f)
|
82
|
+
pbar.increment if @progress
|
83
|
+
end
|
84
|
+
changed.any? || !new_files.empty?
|
85
|
+
end
|
86
|
+
|
87
|
+
def summary
|
88
|
+
ret = {}
|
89
|
+
|
90
|
+
@tables.each_key do |key|
|
91
|
+
ret[key] = @tables[key].keys.count
|
92
|
+
end
|
93
|
+
|
94
|
+
ret
|
95
|
+
end
|
96
|
+
|
97
|
+
private
|
98
|
+
|
99
|
+
def self.files_from_path(path)
|
100
|
+
if File.file?(path)
|
101
|
+
[path]
|
102
|
+
elsif File.directory?(path)
|
103
|
+
Dir[File.join(path, "**", "*")].select {|p| File.file?(p)}
|
104
|
+
else
|
105
|
+
[]
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def db_by_line()
|
110
|
+
tmpdb = {}
|
111
|
+
@tables.each do |tbl, vals|
|
112
|
+
vals.each do |key, val|
|
113
|
+
val.each do |entry|
|
114
|
+
if entry[:line_no]
|
115
|
+
tmpdb[entry[:file]] ||= {}
|
116
|
+
tmpdb[entry[:file]][entry[:line_no]] ||= []
|
117
|
+
tmpdb[entry[:file]][entry[:line_no]] << {tbl: tbl, key: key, entry: entry}
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
return tmpdb
|
123
|
+
end
|
124
|
+
|
125
|
+
def add_file(file)
|
126
|
+
return if not File.file? file
|
127
|
+
|
128
|
+
@files[file] = File.mtime(file).to_s
|
129
|
+
|
130
|
+
LANGS.each do |lang|
|
131
|
+
next if not lang.match_file file
|
132
|
+
lang.extract file do |tbl, key, args|
|
133
|
+
key = key.to_sym
|
134
|
+
@tables[tbl] ||= {}
|
135
|
+
@tables[tbl][key] ||= []
|
136
|
+
@tables[tbl][key] << StarScope::Datum.build(file, key, args)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
def remove_file(file)
|
142
|
+
@files.delete(file)
|
143
|
+
@tables.each do |name, tbl|
|
144
|
+
tbl.each do |key, val|
|
145
|
+
val.delete_if {|dat| dat[:file] == file}
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
def update_file(file)
|
151
|
+
if not File.exists?(file) or not File.file?(file)
|
152
|
+
remove_file(file)
|
153
|
+
true
|
154
|
+
elsif DateTime.parse(@files[file]).to_time < File.mtime(file)
|
155
|
+
remove_file(file)
|
156
|
+
add_file(file)
|
157
|
+
true
|
158
|
+
else
|
159
|
+
false
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
data/test/lib/test_db.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
describe StarScope::DB do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@db = StarScope::DB.new(false)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "must raise on invalid tables" do
|
10
|
+
proc {@db.dump_table(:foo)}.must_raise StarScope::DB::NoTableError
|
11
|
+
end
|
12
|
+
|
13
|
+
it "must correctly add paths" do
|
14
|
+
paths = [GOLANG_SAMPLE, 'test/files']
|
15
|
+
@db.add_paths(paths)
|
16
|
+
@db.instance_eval('@paths').must_equal paths
|
17
|
+
@db.instance_eval('@files').keys.must_include GOLANG_SAMPLE
|
18
|
+
@db.instance_eval('@files').keys.must_include RUBY_SAMPLE
|
19
|
+
end
|
20
|
+
|
21
|
+
it "must correctly pick up new files in old paths" do
|
22
|
+
@db.instance_eval('@paths = ["test/files"]')
|
23
|
+
@db.update
|
24
|
+
files = @db.instance_eval('@files').keys
|
25
|
+
files.must_include GOLANG_SAMPLE
|
26
|
+
files.must_include RUBY_SAMPLE
|
27
|
+
end
|
28
|
+
|
29
|
+
it "must correctly remove old files in existing paths" do
|
30
|
+
@db.instance_eval('@paths = ["test/files"]')
|
31
|
+
@db.instance_eval('@files = {"test/files/foo"=>"2012-01-01"}')
|
32
|
+
@db.instance_eval('@files').keys.must_include 'test/files/foo'
|
33
|
+
@db.update
|
34
|
+
@db.instance_eval('@files').keys.wont_include 'test/files/foo'
|
35
|
+
end
|
36
|
+
|
37
|
+
it "must correctly load an old DB file" do
|
38
|
+
@db.load('test/files/db_old.json.gz')
|
39
|
+
@db.instance_eval('@paths').must_equal ['test/files']
|
40
|
+
@db.instance_eval('@files').keys.must_include GOLANG_SAMPLE
|
41
|
+
@db.instance_eval('@files').keys.must_include RUBY_SAMPLE
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
class TestGolang < MiniTest::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@db = {}
|
6
|
+
StarScope::Lang::Go.extract(GOLANG_SAMPLE) do |tbl, key, args|
|
7
|
+
key = key.to_sym
|
8
|
+
@db[tbl] ||= {}
|
9
|
+
@db[tbl][key] ||= []
|
10
|
+
@db[tbl][key] << args
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_recognition
|
15
|
+
assert StarScope::Lang::Go.match_file(GOLANG_SAMPLE)
|
16
|
+
refute StarScope::Lang::Go.match_file('something_else')
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_defs
|
20
|
+
assert @db.keys.include? :defs
|
21
|
+
defs = @db[:defs].keys
|
22
|
+
assert defs.include? :a
|
23
|
+
assert defs.include? :b
|
24
|
+
assert defs.include? :c
|
25
|
+
assert defs.include? :ttt
|
26
|
+
assert defs.include? :main
|
27
|
+
assert defs.include? :v1
|
28
|
+
assert defs.include? :v2
|
29
|
+
assert defs.include? :Sunday
|
30
|
+
assert defs.include? :Monday
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_function_ends
|
34
|
+
assert @db.keys.include? :end
|
35
|
+
ends = @db[:end]
|
36
|
+
assert ends.keys.count == 1
|
37
|
+
assert ends.values.first.count == 5
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_function_calls
|
41
|
+
assert @db.keys.include? :calls
|
42
|
+
calls = @db[:calls]
|
43
|
+
assert calls.keys.include? :a
|
44
|
+
assert calls.keys.include? :b
|
45
|
+
assert calls.keys.include? :c
|
46
|
+
assert calls.keys.include? :ttt
|
47
|
+
assert calls[:a].count == 3
|
48
|
+
assert calls[:b].count == 4
|
49
|
+
assert calls[:c].count == 2
|
50
|
+
assert calls[:ttt].count == 2
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_variable_assigns
|
54
|
+
assert @db.keys.include? :assigns
|
55
|
+
assigns = @db[:assigns]
|
56
|
+
assert assigns.keys.include? :x
|
57
|
+
assert assigns.keys.include? :y
|
58
|
+
assert assigns.keys.include? :z
|
59
|
+
assert assigns.keys.include? :n
|
60
|
+
assert assigns.keys.include? :m
|
61
|
+
assert assigns[:x].count == 2
|
62
|
+
assert assigns[:y].count == 1
|
63
|
+
assert assigns[:z].count == 1
|
64
|
+
assert assigns[:n].count == 1
|
65
|
+
assert assigns[:m].count == 2
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
class TestRuby < MiniTest::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@db = {}
|
6
|
+
StarScope::Lang::Ruby.extract(RUBY_SAMPLE) do |tbl, key, args|
|
7
|
+
key = key.to_sym
|
8
|
+
@db[tbl] ||= {}
|
9
|
+
@db[tbl][key] ||= []
|
10
|
+
@db[tbl][key] << args
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_recognition
|
15
|
+
assert StarScope::Lang::Ruby.match_file(RUBY_SAMPLE)
|
16
|
+
assert StarScope::Lang::Ruby.match_file('bin/starscope')
|
17
|
+
refute StarScope::Lang::Ruby.match_file('test/files/sample_golang.go')
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_function_defs
|
21
|
+
assert @db.keys.include? :defs
|
22
|
+
defs = @db[:defs].keys
|
23
|
+
assert defs.include? :DB
|
24
|
+
assert defs.include? :NoTableError
|
25
|
+
assert defs.include? :load
|
26
|
+
assert defs.include? :update
|
27
|
+
assert defs.include? :files_from_path
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_function_ends
|
31
|
+
assert @db.keys.include? :end
|
32
|
+
ends = @db[:end]
|
33
|
+
assert ends.keys.count == 1
|
34
|
+
assert ends.values.first.count == 13
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_function_calls
|
38
|
+
assert @db.keys.include? :calls
|
39
|
+
calls = @db[:calls]
|
40
|
+
assert calls.keys.include? :add_file
|
41
|
+
assert calls.keys.include? :each
|
42
|
+
assert calls[:add_file].count == 3
|
43
|
+
assert calls[:each].count == 8
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_variable_assigns
|
47
|
+
assert @db.keys.include? :assigns
|
48
|
+
assigns = @db[:assigns]
|
49
|
+
assert assigns.keys.include? :pbar
|
50
|
+
assert assigns.keys.include? :PBAR_FORMAT
|
51
|
+
assert assigns[:pbar].count == 2
|
52
|
+
assert assigns[:PBAR_FORMAT].count == 1
|
53
|
+
end
|
54
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: starscope
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-01-
|
12
|
+
date: 2014-01-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oj
|
@@ -131,13 +131,13 @@ extensions: []
|
|
131
131
|
extra_rdoc_files: []
|
132
132
|
files:
|
133
133
|
- .gitignore
|
134
|
+
- .travis.yml
|
134
135
|
- CHANGELOG.md
|
135
136
|
- Gemfile
|
136
137
|
- Gemfile.lock
|
137
138
|
- LICENSE.txt
|
138
139
|
- README.md
|
139
140
|
- Rakefile
|
140
|
-
- TODO.md
|
141
141
|
- bin/starscope
|
142
142
|
- lib/starscope.rb
|
143
143
|
- lib/starscope/datum.rb
|
@@ -146,7 +146,14 @@ files:
|
|
146
146
|
- lib/starscope/langs/ruby.rb
|
147
147
|
- lib/starscope/version.rb
|
148
148
|
- starscope.gemspec
|
149
|
-
- test/
|
149
|
+
- test/files/db_old.json.gz
|
150
|
+
- test/files/sample_golang.go
|
151
|
+
- test/files/sample_ruby.rb
|
152
|
+
- test/lib/test_db.rb
|
153
|
+
- test/lib/test_golang.rb
|
154
|
+
- test/lib/test_ruby.rb
|
155
|
+
- test/lib/test_version.rb
|
156
|
+
- test/test_helper.rb
|
150
157
|
homepage: https://github.com/eapache/starscope
|
151
158
|
licenses:
|
152
159
|
- MIT
|
@@ -172,4 +179,12 @@ rubygems_version: 1.8.23
|
|
172
179
|
signing_key:
|
173
180
|
specification_version: 3
|
174
181
|
summary: A code indexer and analyzer
|
175
|
-
test_files:
|
182
|
+
test_files:
|
183
|
+
- test/files/db_old.json.gz
|
184
|
+
- test/files/sample_golang.go
|
185
|
+
- test/files/sample_ruby.rb
|
186
|
+
- test/lib/test_db.rb
|
187
|
+
- test/lib/test_golang.rb
|
188
|
+
- test/lib/test_ruby.rb
|
189
|
+
- test/lib/test_version.rb
|
190
|
+
- test/test_helper.rb
|