class Trekky::Source

Attributes

context[R]
errors[R]
output[R]
path[R]

Public Class Methods

new(context, path) click to toggle source
# File lib/trekky/source.rb, line 7
def initialize(context, path)
  @path = path
  @context = context
  @errors = []
end

Public Instance Methods

add_error(error) click to toggle source
# File lib/trekky/source.rb, line 33
def add_error(error)
  STDOUT.puts "ERROR: #{error.message} (#{path})"
  @errors << error
  nil
end
clear_errors() click to toggle source
# File lib/trekky/source.rb, line 39
def clear_errors
  @errors = []
end
extension() click to toggle source
# File lib/trekky/source.rb, line 25
def extension
  File.extname(path)
end
input() click to toggle source
# File lib/trekky/source.rb, line 29
def input
  File.read(path)
end
render(&block) click to toggle source
# File lib/trekky/source.rb, line 13
def render(&block)
  raise NotImplementedError
end
render_error(error) click to toggle source
# File lib/trekky/source.rb, line 49
    def render_error(error)
      Haml::Engine.new(<<-INPUT.gsub(" "*8, "")).render(self, {error: error})
        %h1 File: #{path}
        %h3 Error: #{error.message}
        %pre
          %code
            - error.backtrace.each do |line|
              = line
              %br
      INPUT
    end
render_errors() click to toggle source
# File lib/trekky/source.rb, line 43
def render_errors
  @errors.map do |error|
    render_error(error)
  end.join("<br/>")
end
type() click to toggle source
# File lib/trekky/source.rb, line 21
def type
  extension[1..-1].intern
end
valid?() click to toggle source
# File lib/trekky/source.rb, line 17
def valid?
  @errors.empty?
end