Sha256: 27fcbb1c47a4a49ca267e4656e7dfc8a2f837c610ee474cf38d5cf9799757b45

Contents?: true

Size: 585 Bytes

Versions: 1

Compression:

Stored size: 585 Bytes

Contents

module Cuukie
  module CodeSnippets
    NULL_SNIPPET = Hash.new
    
    def code_snippet(file, line)
      return NULL_SNIPPET unless File.exist? file

      all_lines = File.open(file) {|f| f.readlines}
      return NULL_SNIPPET unless line <= all_lines.size

      first_line = [1, line - 2].max

      {:first_line => first_line,
       :marked_line => line,
       :raw_lines => all_lines[(first_line - 1)..line].join }
    end

    def backtrace_to_snippet(backtrace)
      return NULL_SNIPPET unless backtrace[0] =~ /(.*):(\d+)/
      code_snippet $1, $2.to_i
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cuukie-0.1.4 lib/cuukie/cucumber/formatter/code_snippets.rb