duvet 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
data/duvet.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{duvet}
8
- s.version = "0.1.0"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Joshua Hawxwell"]
12
- s.date = %q{2010-09-15}
12
+ s.date = %q{2010-11-12}
13
13
  s.default_executable = %q{duvet}
14
14
  s.description = %q{Duvet a simple code coverage tool for ruby 1.9}
15
15
  s.email = %q{m@hawx.me}
@@ -31,14 +31,14 @@ Gem::Specification.new do |s|
31
31
  "lib/duvet/cov.rb",
32
32
  "lib/duvet/covs.rb",
33
33
  "lib/duvet/ext.rb",
34
- "lib/duvet/resources/dark.sass",
35
- "lib/duvet/resources/jquery.js",
36
- "lib/duvet/resources/light.sass",
37
- "lib/duvet/resources/main.js",
38
- "lib/duvet/resources/plugins.js",
39
- "lib/duvet/resources/rcov.sass",
40
- "lib/duvet/templates/file.erb",
41
- "lib/duvet/templates/index.erb",
34
+ "templates/css/dark.sass",
35
+ "templates/css/light.sass",
36
+ "templates/css/rcov.sass",
37
+ "templates/html/file.haml",
38
+ "templates/html/index.haml",
39
+ "templates/js/jquery.js",
40
+ "templates/js/main.js",
41
+ "templates/js/plugins.js",
42
42
  "test/helper.rb",
43
43
  "test/test_duvet.rb",
44
44
  "test_duvet/lib/klass.rb",
data/lib/duvet.rb CHANGED
@@ -1,4 +1,4 @@
1
- $:.unshift File.dirname(__FILE__)
1
+ $: << File.join(File.dirname(__FILE__), '..')
2
2
 
3
3
  # Add this to test/helper.rb at the before __anything__ else
4
4
  #
@@ -9,6 +9,7 @@ require 'coverage'
9
9
  require 'ostruct'
10
10
  require 'erubis'
11
11
  require 'pathname'
12
+ require 'haml'
12
13
  require 'sass'
13
14
 
14
15
  require 'duvet/ext'
@@ -21,6 +22,8 @@ module Duvet
21
22
  attr_accessor :opts
22
23
 
23
24
  DEFAULTS = {:dir => 'cov', :style => 'rcov'}
25
+
26
+ TEMPLATE_PATH = File.join File.dirname(__FILE__), '..', 'templates'
24
27
 
25
28
  # Start tracking
26
29
  def self.start(opts={})
data/lib/duvet/cov.rb CHANGED
@@ -3,14 +3,14 @@ module Duvet
3
3
  attr_accessor :path
4
4
 
5
5
  def initialize(path, cov)
6
- if path.include?(Dir.pwd)
7
- @path = path.to_p.relative_path_from(Pathname.pwd)
8
- else
9
- @path = path.to_p
6
+ @path = Pathname.new(path)
7
+ if @path.to_s.include?(Dir.pwd)
8
+ a = Dir.pwd.size+1
9
+ @path = Pathname.new(path[a..-1])
10
+ #@path = @path.relative_path_from(Pathname.getwd)
10
11
  end
11
-
12
+
12
13
  @cov = cov
13
- write
14
14
  end
15
15
 
16
16
  # @return [Array] lines in file
@@ -83,7 +83,7 @@ module Duvet
83
83
  def data
84
84
  {
85
85
  "file" => {
86
- "path" => @path,
86
+ "path" => @path.to_s,
87
87
  "url" => @path.file_name + '.html',
88
88
  "source" => @path.readlines,
89
89
  "lines" => lines.size,
@@ -103,14 +103,16 @@ module Duvet
103
103
  #
104
104
  # @return [String]
105
105
  def format
106
- template = File.read(File.join( File.dirname(__FILE__), "templates", "file.erb" ))
107
- e = Erubis::Eruby.new(template).result(Duvet.template_hash.merge(self.data))
108
- e
106
+ template = File.read File.join(TEMPLATE_PATH, 'html', 'file.haml')
107
+ haml_engine = Haml::Engine.new(template)
108
+ output = haml_engine.render(nil, Duvet.template_hash.merge(self.data))
109
+ output
109
110
  end
110
111
 
111
112
  def write(dir='cov')
112
- f = File.new((dir.to_p + @path.file_name).to_s + '.html', "w" )
113
- f.write(format)
113
+ pa = (dir.to_p + @path.file_name).to_s + '.html'
114
+ File.new(pa, 'w')
115
+ File.open(pa, 'w') {|f| f.puts(self.format) }
114
116
  end
115
117
 
116
118
  end
data/lib/duvet/covs.rb CHANGED
@@ -2,9 +2,9 @@ module Duvet
2
2
  class Covs < Array
3
3
 
4
4
  def initialize(cov)
5
- replace []
6
- cov.each do |p, c|
7
- self << Cov.new(p, c)
5
+ self.replace []
6
+ cov.each do |path, c|
7
+ self << Cov.new(path, c)
8
8
  end
9
9
  end
10
10
 
@@ -69,9 +69,10 @@ module Duvet
69
69
  end
70
70
 
71
71
  def format(dir='cov')
72
- template = File.read(File.join( File.dirname(__FILE__), "templates", "index.erb" ))
73
- e = Erubis::Eruby.new(template).result(Duvet.template_hash.merge(self.data))
74
- e
72
+ template = File.read File.join(TEMPLATE_PATH, 'html', 'index.haml')
73
+ haml_engine = Haml::Engine.new(template)
74
+ output = haml_engine.render(nil, Duvet.template_hash.merge(self.data))
75
+ output
75
76
  end
76
77
 
77
78
  def write(dir='cov', style='rcov')
@@ -92,23 +93,22 @@ module Duvet
92
93
 
93
94
  # @todo Allow you to change style used
94
95
  def write_resources(dir, style)
95
- dirs = Dir.glob("#{File.dirname(__FILE__)}/resources/*")
96
- js = dirs.find_all {|i| i[-2..-1] == 'js'}
97
- sass = dirs.find_all {|i| i[-4..-1] == 'sass'}
98
-
99
- js.each do |i|
100
- write_path = dir.to_p + i.to_p.basename
101
- f = File.new(write_path, "w")
102
- f.write(File.read(i))
103
- end
104
-
105
- sass.each do |i|
96
+ js_dir = File.join(TEMPLATE_PATH, 'js')
97
+ css_dir = File.join(TEMPLATE_PATH, 'css')
98
+
99
+ Dir.glob("#{css_dir}/*").each do |i|
106
100
  if i.include?(style)
107
101
  write_path = dir.to_p + 'styles.css'
108
102
  f = File.new(write_path, "w")
109
103
  f.write Sass::Engine.new( File.read(i) ).render
110
104
  end
111
105
  end
106
+
107
+ Dir.glob("#{js_dir}/*").each do |i|
108
+ write_path = dir.to_p + i.to_p.basename
109
+ f = File.new(write_path, "w")
110
+ f.write(File.read(i))
111
+ end
112
112
 
113
113
  end
114
114
 
File without changes
File without changes
File without changes
@@ -0,0 +1,69 @@
1
+ !!!
2
+ %html{:lang => "en"}
3
+ %head
4
+ %meta{:charset => "utf-8"}
5
+ %title= file['path']
6
+ %link{:rel => "stylesheet", :href => "styles.css"}
7
+ %script{:type => "text/javascript", :src => "jquery.js"}
8
+ %script{:type => "text/javascript", :src => "plugins.js"}
9
+ %script{:type => "text/javascript", :src => "main.js"}
10
+
11
+ %body
12
+ %header
13
+ %h1
14
+ %a{:href => "index.html"} Coverage
15
+ %h2= file['path']
16
+
17
+ .table-wrapper
18
+ %table{:class => "summary", :border => "none"}
19
+ %thead
20
+ %tr
21
+ %th Name
22
+ %th Total Lines
23
+ %th Lines of Code
24
+ %th Total Coverage
25
+ %th Code Coverage
26
+
27
+ %tbody
28
+ %tr
29
+ %td{:class => "name"}= file['path']
30
+ %td= file['lines']
31
+ %td= file['lines_code']
32
+ %td= coverage['total']
33
+ %td= coverage['code']
34
+
35
+ .table-wrapper
36
+ %table{:class => "source", :border => "none"}
37
+ - file['source'].zip(coverage['lines']).each_with_index do |(line, count), i|
38
+ - if count.nil?
39
+ %tr{:class => "excluded"}
40
+ %td{:class => "no"}= i
41
+ %td
42
+ %pre
43
+ %code= line.gsub("\n", "")
44
+
45
+ - elsif count.zero?
46
+ %tr{:class => "unran"}
47
+ %td{:class => "no"}= i
48
+ %td
49
+ %pre
50
+ %code= line.gsub("\n", "")
51
+ %td
52
+ %span{:class => "count"}= count
53
+
54
+ - else
55
+ %tr{:class => "ran"}
56
+ %td{:class => "no"}= i
57
+ %td
58
+ %pre
59
+ %code= line.gsub("\n", "")
60
+ %td
61
+ %span{:class => "count"}= count
62
+
63
+
64
+
65
+ %footer
66
+ %span
67
+ Generated on #{time} with
68
+ %a{:href => "http://github.com/hawx/duvet"}= "#{name} #{version}"
69
+
@@ -0,0 +1,52 @@
1
+ !!!
2
+ %html{:lang => "en"}
3
+ %head
4
+ %meta{:charset => "utf-8"}
5
+ %title Coverage
6
+ %link{:rel => "stylesheet", :href => "styles.css"}
7
+ %script{:type => "text/javascript", :src => "jquery.js"}
8
+ %script{:type => "text/javascript", :src => "plugins.js"}
9
+ %script{:type => "text/javascript", :src => "main.js"}
10
+
11
+ %body
12
+ %header
13
+ %h1 Coverage
14
+
15
+ %input{:id => "filter", :name => "filter", :type => "text", :placeholder => "Filter"}
16
+
17
+ .table-wrapper
18
+ %table{:class => "summary sort", :border => "none"}
19
+ %thead
20
+ %tr
21
+ %th{:class => "name"} Name
22
+ %th{:class => "lines"} Total Lines
23
+ %th{:class => "loc"} Lines of Code
24
+ %th{:class => "cov"} Total Coverage
25
+ %th{:class => "code"} Code Coverage
26
+
27
+ %tfoot
28
+ %tr{:class => "totals"}
29
+ %td Total
30
+ %td{:class => "lines"}= total['lines']
31
+ %td{:class => "loc"}= total['lines_code']
32
+ %td{:class => "ran"}= total['lines_ran']
33
+ %td{:class => "cov"}= total['total_cov']
34
+ %td{:class => "code"}= total['code_cov']
35
+
36
+ %tbody
37
+ - files.each do |f|
38
+ %tr
39
+ %td{:class => "name"}
40
+ %a{:href => "#{f['file']['url']}"}= f['file']['path']
41
+
42
+ %td{:class => "lines"}= f['file']['lines']
43
+ %td{:class => "loc"}= f['file']['lines_code']
44
+ %td{:class => "ran"}= f['file']['lines_ran']
45
+ %td{:class => "cov"}= f['coverage']['total']
46
+ %td{:class => "code"}= f['coverage']['code']
47
+
48
+ %footer
49
+ %span
50
+ Generated on #{time} with
51
+ %a{:href => "http://github.com/hawx/duvet"}= "#{name} #{version}"
52
+
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: duvet
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
- - 1
7
+ - 2
9
8
  - 0
10
- version: 0.1.0
9
+ version: 0.2.0
11
10
  platform: ruby
12
11
  authors:
13
12
  - Joshua Hawxwell
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-09-15 00:00:00 +01:00
17
+ date: 2010-11-12 00:00:00 +00:00
19
18
  default_executable: duvet
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
@@ -26,7 +25,6 @@ dependencies:
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- hash: 3
30
28
  segments:
31
29
  - 0
32
30
  version: "0"
@@ -40,7 +38,6 @@ dependencies:
40
38
  requirements:
41
39
  - - ">="
42
40
  - !ruby/object:Gem::Version
43
- hash: 3
44
41
  segments:
45
42
  - 0
46
43
  version: "0"
@@ -68,14 +65,14 @@ files:
68
65
  - lib/duvet/cov.rb
69
66
  - lib/duvet/covs.rb
70
67
  - lib/duvet/ext.rb
71
- - lib/duvet/resources/dark.sass
72
- - lib/duvet/resources/jquery.js
73
- - lib/duvet/resources/light.sass
74
- - lib/duvet/resources/main.js
75
- - lib/duvet/resources/plugins.js
76
- - lib/duvet/resources/rcov.sass
77
- - lib/duvet/templates/file.erb
78
- - lib/duvet/templates/index.erb
68
+ - templates/css/dark.sass
69
+ - templates/css/light.sass
70
+ - templates/css/rcov.sass
71
+ - templates/html/file.haml
72
+ - templates/html/index.haml
73
+ - templates/js/jquery.js
74
+ - templates/js/main.js
75
+ - templates/js/plugins.js
79
76
  - test/helper.rb
80
77
  - test/test_duvet.rb
81
78
  - test_duvet/lib/klass.rb
@@ -95,7 +92,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
95
92
  requirements:
96
93
  - - ">="
97
94
  - !ruby/object:Gem::Version
98
- hash: 3
99
95
  segments:
100
96
  - 0
101
97
  version: "0"
@@ -104,7 +100,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
100
  requirements:
105
101
  - - ">="
106
102
  - !ruby/object:Gem::Version
107
- hash: 3
108
103
  segments:
109
104
  - 0
110
105
  version: "0"
@@ -1,64 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <title><%= file['path'] %></title>
6
- <link rel="stylesheet" href="styles.css" type="text/css" />
7
- <script type="text/javascript" src="jquery.js"></script>
8
- <script type="text/javascript" src="plugins.js"></script>
9
- <script type="text/javascript" src="main.js"></script>
10
- </head>
11
- <body>
12
-
13
- <header>
14
- <h1><a href="index.html">Coverage</a></h1>
15
- <h2><%= file['path'] %></h2>
16
- </header>
17
-
18
- <div class="table-wrapper">
19
- <table class="summary" border="none">
20
- <thead>
21
- <tr>
22
- <th>Name</th>
23
- <th>Total Lines</th>
24
- <th>Lines of Code</th>
25
- <th>Total Coverage</th>
26
- <th>Code Coverage</th>
27
- </tr>
28
- </thead>
29
- <tbody>
30
- <tr>
31
- <td class="name"><%= file['path'] %></td>
32
- <td><%= file['lines'] %></td>
33
- <td><%= file['lines_code'] %></td>
34
- <td><%= coverage['total'] %></td>
35
- <td><%= coverage['code'] %></td>
36
- </tr>
37
- </tbody>
38
- </table>
39
- </div>
40
-
41
- <div class="table-wrapper">
42
- <table class="source" border="none">
43
- <% file["source"].zip(coverage["lines"]).each_with_index do |(line, count), i| %>
44
- <% if count.nil? %>
45
- <tr class="excluded">
46
- <% elsif count.zero? %>
47
- <tr class="unran">
48
- <% else %>
49
- <tr class="ran">
50
- <% end %>
51
- <td class="no"><%= i %></td>
52
- <td><pre><code><%= line.gsub("\n", "") %></code></pre></td>
53
- <td><% if count %><span class="count"><%= count %></span><% end %></td>
54
- </tr>
55
- <% end %>
56
- </table>
57
- </div>
58
-
59
- <footer>
60
- <span>Generated on <%= time %> with </span><a href="http://github.com/hawx/duvet"><%= name %> <%= version %></a>
61
- </footer>
62
-
63
- </body>
64
- </html>
@@ -1,61 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <title>Coverage</title>
6
- <link rel="stylesheet" href="styles.css" type="text/css" />
7
- <script type="text/javascript" src="jquery.js"></script>
8
- <script type="text/javascript" src="plugins.js"></script>
9
- <script type="text/javascript" src="main.js"></script>
10
- </head>
11
- <body>
12
-
13
- <header>
14
- <h1>Coverage</h1>
15
- </header>
16
-
17
- <input id="filter" name="filter" type="text" placeholder="Filter">
18
-
19
- <div class="table-wrapper">
20
- <table class="summary sort" border="none">
21
- <thead>
22
- <tr>
23
- <th class="name">Name</th>
24
- <th class="lines">Total Lines</th>
25
- <th class="loc">Lines of Code</th>
26
- <th class="ran">Lines Ran</td>
27
- <th class="cov">Total Coverage</th>
28
- <th class="code">Code Coverage</th>
29
- </tr>
30
- </thead>
31
- <tfoot>
32
- <tr class="totals">
33
- <td>Total</td>
34
- <td class="lines"><%= total['lines'] %></td>
35
- <td class="loc"><%= total['lines_code'] %></td>
36
- <td class="ran"><%= total['lines_ran'] %></td>
37
- <td class="cov"><%= total['total_cov'] %></td>
38
- <td class="code"><%= total['code_cov'] %></td>
39
- </tr>
40
- </tfoot>
41
- <tbody>
42
- <% files.each do |f| %>
43
- <tr>
44
- <td class="name"><a href="<%= f['file']['url'] %>"><%= f['file']['path'] %></a></td>
45
- <td class="lines"><%= f['file']['lines'] %></td>
46
- <td class="loc"><%= f['file']['lines_code'] %></td>
47
- <td class="ran"><%= f['file']['lines_ran'] %></td>
48
- <td class="cov"><%= f['coverage']['total'] %></td>
49
- <td class="code"><%= f['coverage']['code'] %></td>
50
- </tr>
51
- <% end %>
52
- </tbody>
53
- </table>
54
- </div>
55
-
56
- <footer>
57
- <span>Generated on <%= time %> with </span><a href="http://github.com/hawx/duvet"><%= name %> <%= version %></a>
58
- </footer>
59
-
60
- </body>
61
- </html>