nakajima-protocov 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/Rakefile +0 -2
- data/lib/protocov.rb +1 -1
- data/lib/protocov/base.rb +0 -8
- data/lib/protocov/ext/string_extensions.rb +1 -1
- data/lib/protocov/runner.rb +4 -4
- data/lib/protocov/source_file.rb +6 -0
- data/lib/protocov/test_file.rb +7 -1
- data/test/test_string_extensions.rb +24 -4
- metadata +2 -2
data/History.txt
CHANGED
data/Rakefile
CHANGED
@@ -7,8 +7,6 @@ require './lib/protocov.rb'
|
|
7
7
|
Hoe.new('protocov', ProtoCov::VERSION) do |p|
|
8
8
|
# p.rubyforge_name = 'protocovx' # if different than lowercase project name
|
9
9
|
p.developer('Pat Nakajima', 'patnakajima@gmail.com')
|
10
|
-
p.description = 'Code coverage docs for Prototype-style Javascript projects'
|
11
|
-
p.homepage = 'http://github.com/nakajima/protocov'
|
12
10
|
end
|
13
11
|
|
14
12
|
# vim: syntax=Ruby
|
data/lib/protocov.rb
CHANGED
data/lib/protocov/base.rb
CHANGED
@@ -12,14 +12,6 @@ module ProtoCov
|
|
12
12
|
|
13
13
|
# Parent class of SourceFile and TestFile. Defines common methods.
|
14
14
|
class GenericFile
|
15
|
-
class << self
|
16
|
-
def find_files_in(dir)
|
17
|
-
dir.entries \
|
18
|
-
.select { |file| valid?(file) } \
|
19
|
-
.collect { |file| new(file, File.expand_path(dir.path)) }
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
15
|
def path
|
24
16
|
File.expand_path(File.join(path_prefix, filename))
|
25
17
|
end
|
@@ -11,7 +11,7 @@ module ProtoCov
|
|
11
11
|
string.gsub!(/\bvar\b/, '')
|
12
12
|
result = case thing
|
13
13
|
when :method_definitions: self.scan(/(\w+)\s*:\s*function\s*\(|[A-Z][A-Za-z0-9]*\.prototype\.(\w+)/i)
|
14
|
-
when :method_invocations: self.scan(/\.(
|
14
|
+
when :method_invocations: self.scan(/\.(\w+)\(/)
|
15
15
|
when :modules: self.scan(/\s*[^\/{2}]*\s+([A-Z][A-Za-z0-9]+)\s*[\=\:]\s*\{/)
|
16
16
|
when :classes: self.scan(/\s*([A-Z][A-Za-z0-9]+)\s*[\=\:]\s*Class\.create/)
|
17
17
|
else
|
data/lib/protocov/runner.rb
CHANGED
@@ -4,16 +4,16 @@ module ProtoCov
|
|
4
4
|
|
5
5
|
def initialize(args)
|
6
6
|
parse_args(args)
|
7
|
-
get_files
|
7
|
+
get_files!
|
8
8
|
@source_files.invoke(:annotate!) and return if @annotate
|
9
9
|
report!
|
10
10
|
end
|
11
11
|
|
12
12
|
# This could definitely be smarter
|
13
|
-
def get_files
|
13
|
+
def get_files!
|
14
14
|
@source_files = SourceFile.find_files_in(Dir.new(File.join(@dir.path, 'src')))
|
15
15
|
@test_files = TestFile.find_files_in(Dir.new(File.join(@dir.path, 'test')))
|
16
|
-
@test_files += TestFile.find_files_in(Dir.new(File.join(@dir.path, 'test', 'unit'))) if @dir.entries.
|
16
|
+
@test_files += TestFile.find_files_in(Dir.new(File.join(@dir.path, 'test', 'unit'))) if Dir.new(File.join(@dir.path, 'test')).entries.detect { |e| e.match(/unit/) }
|
17
17
|
end
|
18
18
|
|
19
19
|
# Holy cow this method is ugly.
|
@@ -48,7 +48,7 @@ module ProtoCov
|
|
48
48
|
args = args.dup
|
49
49
|
raise NoPathSpecified.new("Please specify your project's root directory, e.g. `protocov .") if args.empty?
|
50
50
|
@annotate = args.delete('--annotate') ? true : false
|
51
|
-
@dir = Dir.new(File.join(Dir.pwd, args.shift))
|
51
|
+
@dir = Dir.new(File.expand_path(File.join(Dir.pwd, args.shift)))
|
52
52
|
|
53
53
|
rescue Errno::ENOENT => e
|
54
54
|
d = e.to_s.match(/src/) ? 'src/' : 'test/'
|
data/lib/protocov/source_file.rb
CHANGED
@@ -3,6 +3,12 @@ module ProtoCov
|
|
3
3
|
attr_reader :filename, :path_prefix
|
4
4
|
|
5
5
|
class << self
|
6
|
+
def find_files_in(dir)
|
7
|
+
dir.entries \
|
8
|
+
.select { |file| valid?(file) } \
|
9
|
+
.collect { |file| new(file, File.expand_path(dir.path)) }
|
10
|
+
end
|
11
|
+
|
6
12
|
def valid?(file)
|
7
13
|
file.match(/\.js\z/)
|
8
14
|
end
|
data/lib/protocov/test_file.rb
CHANGED
@@ -3,8 +3,14 @@ module ProtoCov
|
|
3
3
|
attr_reader :filename, :path_prefix
|
4
4
|
|
5
5
|
class << self
|
6
|
+
def find_files_in(dir)
|
7
|
+
dir.entries \
|
8
|
+
.select { |file| valid?(file) } \
|
9
|
+
.collect { |file| new(file, File.expand_path(dir.path)) }
|
10
|
+
end
|
11
|
+
|
6
12
|
def valid?(file)
|
7
|
-
file.match(/\.(html|js)
|
13
|
+
file.match(/\.(html|js)/i)
|
8
14
|
end
|
9
15
|
end
|
10
16
|
|
@@ -16,10 +16,30 @@ class TestStringExtensions < Test::Unit::TestCase
|
|
16
16
|
|
17
17
|
def test_should_get_method_invocations
|
18
18
|
method_invocations = @_test_string_2.parse_for(:method_invocations)
|
19
|
-
assert_equal
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
assert_equal [
|
20
|
+
"Defaultable",
|
21
|
+
"addClassName",
|
22
|
+
"any",
|
23
|
+
"bindAsEventListener",
|
24
|
+
"blank",
|
25
|
+
"clear",
|
26
|
+
"create",
|
27
|
+
"delegators",
|
28
|
+
"each",
|
29
|
+
"element",
|
30
|
+
"extend",
|
31
|
+
"findForms",
|
32
|
+
"invoke",
|
33
|
+
"observe",
|
34
|
+
"pluck",
|
35
|
+
"readAttribute",
|
36
|
+
"removeClassName",
|
37
|
+
"select",
|
38
|
+
"setup",
|
39
|
+
"setupBehaviors",
|
40
|
+
"stop",
|
41
|
+
"uniq"
|
42
|
+
].sort, method_invocations.sort, method_invocations.inspect
|
23
43
|
end
|
24
44
|
|
25
45
|
def test_should_get_modules
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nakajima-protocov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pat Nakajima
|
@@ -73,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
73
73
|
version:
|
74
74
|
requirements: []
|
75
75
|
|
76
|
-
rubyforge_project:
|
76
|
+
rubyforge_project: protocov
|
77
77
|
rubygems_version: 1.0.1
|
78
78
|
signing_key:
|
79
79
|
specification_version: 2
|