Module: Tapout
- Defined in:
- lib/tapout.rb,
lib/tapout/cli.rb,
lib/tapout/config.rb,
lib/tapout/utility.rb,
lib/tapout/version.rb,
lib/tapout/parsers/json.rb,
lib/tapout/parsers/perl.rb,
lib/tapout/parsers/yaml.rb,
lib/tapout/adapters/perl.rb,
lib/tapout/parsers/abstract.rb,
lib/tapout/reporters/abstract.rb,
lib/tapout/reporters/turn_reporter.rb,
lib/tapout/reporters/pretty_reporter.rb,
lib/tapout/reporters/runtime_reporter.rb,
lib/tapout/reporters/progress_reporter.rb,
lib/tapout/reporters/breakdown_reporter.rb
Defined Under Namespace
Modules: Reporters Classes: AbstractParser, Config, Curmudgeon, JsonParser, PerlAdapter, PerlParser, Utility, YamlParser
Constant Summary collapse
- REVISION =
The current revision of the TAP-Y/J format.
"4"
Class Method Summary collapse
-
.cli(*argv) ⇒ Object
Command line interface.
-
.config ⇒ Object
Alias for ‘#configuration`.
-
.configuration ⇒ Object
Access to configuration.
-
.configure(&block) ⇒ Object
Define configuration.
-
.const_missing(name) ⇒ Object
Any missing constant will be looked for in project metadata.
-
.metadata ⇒ Hash
Project metadata.
Class Method Details
.cli(*argv) ⇒ Object
Command line interface.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/tapout/cli.rb', line 7 def self.cli(*argv) = {} type = :modern parser = OptionParser.new do |opt| opt. = "tapout [options] [reporter]" opt.separator("\nOPTIONS:") #opt.on('-t', '--tap', 'Consume legacy TAP input') do |fmt| # type = :legacy #end opt.on('--trace', '-t DEPTH', 'set backtrace depth') do |depth| self.config.trace = depth end opt.on('--lines', '-l LINES', 'number of surrounding source code lines') do |lines| self.config.lines = lines.to_i end opt.on('--minimal', '-m', 'show only errors, failures and pending tests') do |val| self.config.minimal = val end opt.on('--no-color', 'suppress ANSI color codes') do $ansi = false end opt.on('--require', '-r FEATURE', 'require feature') do |feature| require feature end #opt.on('--plugin', '-p NAME', 'Require plugin feature (tapout-<name>)') do |name| # require "tapout-#{name}" #end opt.on('--debug', 'run with $DEBUG flag on') do |fmt| $DEBUG = true end opt.separator("\nREPORTERS:\n " + Reporters.index.keys.join("\n ")) end parser.parse!(argv) [:format] = argv.first # TODO: would be nice if it could automatically determine which #c = $stdin.getc # $stdin.pos = 0 #type = :legacy if c =~ /\d/ #type = :modern if c == '-' stdin = Curmudgeon.new($stdin) case stdin.line1 when /^\d/ type = :perl when /^\-/ type = :yaml when /^\{/ type = :json else raise "Not a recognized TAP stream!" end case type when :perl stream_parser = PerlParser.new() exit_code = stream_parser.consume(stdin) when :yaml stream_parser = YamlParser.new() exit_code = stream_parser.consume(stdin) when :json stream_parser = JsonParser.new() exit_code = stream_parser.consume(stdin) end exit(exit_code || 0) end |
.config ⇒ Object
Alias for ‘#configuration`.
14 15 16 |
# File 'lib/tapout/config.rb', line 14 def self.config configuration end |
.configuration ⇒ Object
Access to configuration.
9 10 11 |
# File 'lib/tapout/config.rb', line 9 def self.configuration @config ||= Config.new end |
.configure(&block) ⇒ Object
Define configuration.
4 5 6 |
# File 'lib/tapout/config.rb', line 4 def self.configure(&block) configuration.update(&block) end |
.const_missing(name) ⇒ Object
Any missing constant will be looked for in project metadata.
17 18 19 |
# File 'lib/tapout/version.rb', line 17 def self.const_missing(name) [name.to_s.downcase] || super(name) end |
.metadata ⇒ Hash
Project metadata.
8 9 10 11 12 13 |
# File 'lib/tapout/version.rb', line 8 def self. @metadata ||= ( require 'yaml' YAML.load_file(File.join(File.dirname(__FILE__), '/../tapout.yml')) ) end |