class Cuukie::Server

Public Instance Methods

code_snippet_for(exception) click to toggle source
# File lib/cuukie/server/server.rb, line 112
def code_snippet_for(exception)
  return '' unless exception[:raw_lines]
  result = '<pre class="ruby"><code>'
  linenum = exception[:first_line].to_i
  html_lines = htmlize(exception[:raw_lines]).split "\n"
  html_lines.each do |html_line|
    line = "<span class=\"linenum\">#{linenum}</span>#{html_line}"
    line = "<span class=\"offending\">#{line}</span>" if linenum.to_s == exception[:marked_line]
    result << "#{line}<br/>"
    linenum += 1
  end
  result << '</code></pre>'
end
counts(elements) click to toggle source
# File lib/cuukie/server/server.rb, line 179
def counts(elements)
  counts = ['failed', 'skipped', 'undefined', 'pending', 'passed'].map do |status|
    selected = elements.find_all {|element| element[:status] == status }
    selected.any? ? "#{selected.size} #{status}" : nil
  end.compact
  counts.any? ? " (#{counts.join(', ')})" : ''
end
current_feature() click to toggle source
# File lib/cuukie/server/server.rb, line 136
def current_feature
  settings.features.last
end
current_scenario() click to toggle source
# File lib/cuukie/server/server.rb, line 140
def current_scenario
  # return a "nil scenario" (that includes a "nil step") if we
  # don't have a scenario yet. this is useful to eliminate steps
  # coming from backgrounds (which will be re-sent during the
  # following scenarios anyway)
  return { :steps => [{}] } if current_feature[:scenarios].empty?
  current_feature[:scenarios].last
end
current_step() click to toggle source
# File lib/cuukie/server/server.rb, line 149
def current_step
  current_scenario[:steps].last
end
format_time() click to toggle source
# File lib/cuukie/server/server.rb, line 130
def format_time
  min, sec = time.to_i.divmod(60)
  "#{min}':#{sec}''"
end
htmlize(ruby) click to toggle source
# File lib/cuukie/server/server.rb, line 187
def htmlize(ruby)
  convertor = Syntax::Convertors::HTML.for_syntax("ruby")
  convertor.convert(ruby, false)
end
pluralize(count, what) click to toggle source
# File lib/cuukie/server/server.rb, line 175
def pluralize(count, what)
  "#{count} #{what}#{count == 1 ? '' : 's'}"
end
read_from_request() click to toggle source
# File lib/cuukie/server/server.rb, line 192
def read_from_request
  result = {}
  request.params.each do |k, v|
    result[k.to_sym] = (k =~ /^raw_/) ? v : Rack::Utils.escape_html(v)
  end
  result
end
stats() click to toggle source
# File lib/cuukie/server/server.rb, line 159
def stats
  scenarios = []
  settings.features.each {|feature| scenarios.concat feature[:scenarios] }

  result = {:scenarios => String.new, :steps => String.new}
  result[:scenarios] << pluralize(scenarios.size, "scenario")
  result[:scenarios] << counts(scenarios)
  
  steps = []
  scenarios.each {|scenario| steps.concat scenario[:steps] }
  result[:steps] << pluralize(steps.size, "step")
  step_count = counts steps
  result[:steps] << step_count if step_count
  result
end
time() click to toggle source
# File lib/cuukie/server/server.rb, line 153
def time
  return settings.duration if settings.duration
  return 0 unless settings.start_time
  return Time.now - settings.start_time
end
time_label() click to toggle source
# File lib/cuukie/server/server.rb, line 126
def time_label
  settings.duration ? "Duration" : "Running time"
end