Files

Class/Module Index [+]

Quicksearch

Cucumber::Formatter::Console

This module contains helper methods that are used by formatters that print output to the terminal.

FORMAT is a hash of Proc objects, keyed by step-definition types, e.g. “FORMAT”. The Proc is called for each line of the step’s output.

format_step calls format_string, format_string calls format_for to obtain the formatting Proc.

Example:

The ANSI color console formatter defines a map of step-type to output color (e.g. “passed” to “green”), then builds methods named for the step-types (e.g. “def passed”), which themselves wrap the corresponding color-named methods provided by Term::ANSIColor (e.g. “def red”).

During output, each line is processed by passing it to the formatter Proc which returns the formatted (e.g. colored) string.

Constants

FORMATS

Public Instance Methods

embed(file, mime_type, label) click to toggle source
# File lib/cucumber/formatter/console.rb, line 154
def embed(file, mime_type, label)
  # no-op
end
empty_messages() click to toggle source
# File lib/cucumber/formatter/console.rb, line 191
def empty_messages
  @delayed_messages = []
end
format_step(keyword, step_match, status, source_indent) click to toggle source
# File lib/cucumber/formatter/console.rb, line 33
def format_step(keyword, step_match, status, source_indent)
  comment = if source_indent
    c = (' # ' + step_match.file_colon_line).indent(source_indent)
    format_string(c, :comment)
  else
    ''
  end

  format = format_for(status, :param)
  line = keyword + step_match.format_args(format) + comment
  format_string(line, status)
end
format_string(o, status) click to toggle source
# File lib/cucumber/formatter/console.rb, line 46
def format_string(o, status)
  fmt = format_for(status)
  o.to_s.split("\n").map do |line|
    if Proc === fmt
      fmt.call(line)
    else
      fmt % line
    end
  end.join("\n")
end
linebreaks(s, max) click to toggle source

blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/10655

# File lib/cucumber/formatter/console.rb, line 112
def linebreaks(s, max)
  s.gsub(/.{1,#{max}}(?:\s|\Z)/){($& + 5.chr).gsub(/\n\0005/,"\n").gsub(/\0005/,"\n")}.rstrip
end
puts(*messages) click to toggle source

define @delayed_messages = [] in your Formatter if you want to activate this feature

# File lib/cucumber/formatter/console.rb, line 160
def puts(*messages)
  if @delayed_messages
    @delayed_messages += messages
  else
    if @io
      @io.puts
      messages.each do |message|
        @io.puts(format_string(message, :tag))
      end
      @io.flush
    end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.