Sha256: f032694068220a43c50759090192a7928e36233f60c7a24fd96cf6176914443e
Contents?: true
Size: 934 Bytes
Versions: 7
Compression:
Stored size: 934 Bytes
Contents
module Ruco module SyntaxParser # textpow only offers certain syntax TEXTPOW_CONVERT = { 'html+erb' => 'text.html.ruby', 'rhtml' => 'text.html.ruby', } def self.syntax_for_line(line, languages) syntax_for_lines([line], languages).first end cmemoize :syntax_for_line def self.syntax_for_lines(lines, languages) if syntax = syntax_node(languages) begin processor = syntax.parse(lines.join("\n"), Ruco::ArrayProcessor.new) processor.lines rescue RegexpError, ArgumentError $stderr.puts $! [] end else [] end end def self.syntax_node(languages) found = nil fallbacks = languages.map{|l| TEXTPOW_CONVERT[l] }.compact (languages + fallbacks).detect do |language| found = Textpow.syntax(language) end found end cmemoize :syntax_node end end
Version data entries
7 entries across 7 versions & 1 rubygems