nakajima-protocov 0.0.2 → 0.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.
- 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
|