Sha256: c6c4050f0f8c772daaea10ff4226eda654758db148d25aa008835f94036a7f30
Contents?: true
Size: 1.76 KB
Versions: 1
Compression:
Stored size: 1.76 KB
Contents
module Sprockets class SourceLine attr_reader :source_file, :line, :number def initialize(source_file, line, number) @source_file = source_file @line = line @number = number end def comment @comment ||= line[/^\s*\/\/(.*)/, 1] end def parsable_comment @parsable_comment ||= comment || line[/^\s*\/\*(.*)\s*\*\/$/, 1] end def comment? !!comment end def comment! @comment = line end def begins_multiline_comment? line =~ /^\s*\/\*(.*)/ end def begins_pdoc_comment? line =~ /^\s*\/\*\*(.*)/ end def ends_multiline_comment? line =~ /^(.*)\*\/\s*/ end def ends_pdoc_comment? line =~ /^(.*)\*\*\/\s*/ end def require @require ||= (parsable_comment || "")[/^=\s+require\s+(\"(.*?)\"|<(.*?)>)\s*$/, 1] end def require? !!require end def provide @provide ||= (parsable_comment || "")[/^=\s+provide\s+\"(.*?)\"\s*$/, 1] end def provide? !!provide end def inspect "line #@number of #{@source_file.pathname}" end def to_s(constants = source_file.environment.constants) result = line.chomp interpolate_constants!(result, constants) strip_trailing_whitespace!(result) result + $/ end protected def interpolate_constants!(result, constants) result.gsub!(/<%=(.*?)%>/) do constant = $1.strip if value = constants[constant] value else raise UndefinedConstantError, "couldn't find constant `#{constant}' in #{inspect}" end end end def strip_trailing_whitespace!(result) result.gsub!(/\s+$/, "") end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
amiel-sprockets-1.0.5 | lib/sprockets/source_line.rb |