C0 code coverage information
Generated on Wed Oct 07 08:33:57 -0700 2009 with rcov 0.8.2.1
Code reported as executed by Ruby looks like this...
and this: this line is also marked as covered.
Lines considered as run by rcov, but not reported by Ruby, look like this,
and this: these lines were inferred by rcov (using simple heuristics).
Finally, here's a line marked as not executed.
1 # Licensed to the Apache Software Foundation (ASF) under one or more
2 # contributor license agreements. See the NOTICE file distributed with this
3 # work for additional information regarding copyright ownership. The ASF
4 # licenses this file to you under the Apache License, Version 2.0 (the
5 # "License"); you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 # License for the specific language governing permissions and limitations under
14 # the License.
15
16
17 require 'buildr/core/common'
18 require 'buildr/core/project'
19
20
21 module Buildr
22
23 module Help #:nodoc:
24 class << self
25
26 def <<(arg)
27 if arg.respond_to?(:call)
28 texters << arg
29 else
30 texters << lambda { arg }
31 end
32 end
33
34 def to_s
35 texters.map(&:call).join("\n")
36 end
37
38 protected
39 def texters
40 @texters ||= []
41 end
42
43 end
44 end
45
46 class << self
47 def help(&block)
48 Help << block if block_given?
49 Help
50 end
51 end
52
53 end
54
55
56 task 'help' do
57 # Greeater.
58 puts 'Usage:'
59 puts ' buildr [-f rakefile] {options} targets...'
60 puts
61
62 # Show only the top-level projects.
63 projects.reject(&:parent).tap do |top_level|
64 unless top_level.empty?
65 puts 'Top-level projects (buildr help:projects for full list):'
66 width = [top_level.map(&:name).map(&:size), 20].flatten.max
67 top_level.each do |project|
68 puts project.comment.to_s.empty? ? project.name : (" %-#{width}s # %s" % [project.name, project.comment])
69 end
70 puts
71 end
72 end
73
74 # Show all the top-level tasks, excluding projects.
75 puts 'Common tasks:'
76 task('help:tasks').invoke
77 puts
78 puts 'For help on command line options:'
79 puts ' buildr --help'
80 puts Buildr.help.to_s
81 end
82
83
84 module Buildr
85
86 # :call-seq:
87 # help() { ... }
88 #
89 # Use this to enhance the help task, e.g. to print some important information about your build,
90 # configuration options, build instructions, etc.
91 def help(&block)
92 Buildr.help << block
93 end
94
95 end
96
97
98 namespace 'help' do
99
100 desc 'List all projects defined by this buildfile'
101 task 'projects' do
102 width = projects.map(&:name).map(&:size).max
103 projects.each do |project|
104 puts project.comment.to_s.empty? ? " #{project.name}" : (" %-#{width}s # %s" % [project.name, project.comment])
105 end
106 end
107
108 desc 'List all tasks available from this buildfile'
109 task 'tasks' do
110 Buildr.application.tasks.select(&:comment).reject { |task| Project === task }.tap do |tasks|
111 width = [tasks.map(&:name).map(&:size), 20].flatten.max
112 tasks.each do |task|
113 printf " %-#{width}s # %s\n", task.name, task.comment
114 end
115 puts
116 end
117 end
118
119 end
Generated using the rcov code coverage analysis tool for Ruby
version 0.8.2.1.