lib/rouge.rb in rouge-0.2.8 vs lib/rouge.rb in rouge-0.2.9
- old
+ new
@@ -1,18 +1,29 @@
# stdlib
require 'pathname'
+# The containing module for Rouge
module Rouge
class << self
- def highlight(text, lexer, formatter)
+ # Highlight some text with a given lexer and formatter.
+ #
+ # @example
+ # Rouge.highlight('@foo = 1', 'ruby', 'html')
+ # Rouge.highlight('var foo = 1;', 'js', 'terminal256')
+ #
+ # # streaming - chunks become available as they are lexed
+ # Rouge.highlight(large_string, 'ruby', 'html') do |chunk|
+ # $stdout.print chunk
+ # end
+ def highlight(text, lexer, formatter, &b)
lexer = Lexer.find(lexer) unless lexer.respond_to? :lex
raise "unknown lexer #{lexer}" unless lexer
formatter = Formatter.find(formatter) unless formatter.respond_to? :format
raise "unknown formatter #{formatter}" unless formatter
- formatter.format(lexer.lex(text))
+ formatter.format(lexer.lex(text), &b)
end
end
end
load_dir = Pathname.new(__FILE__).dirname
@@ -36,10 +47,13 @@
load load_dir.join('rouge/lexers/sql.rb')
load load_dir.join('rouge/lexers/make.rb')
load load_dir.join('rouge/lexers/shell.rb')
load load_dir.join('rouge/lexers/viml.rb')
+load load_dir.join('rouge/lexers/nginx.rb')
+load load_dir.join('rouge/lexers/conf.rb')
+load load_dir.join('rouge/lexers/sed.rb')
load load_dir.join('rouge/lexers/javascript.rb')
load load_dir.join('rouge/lexers/css.rb')
load load_dir.join('rouge/lexers/html.rb')
load load_dir.join('rouge/lexers/xml.rb')
@@ -58,9 +72,10 @@
load load_dir.join('rouge/lexers/ruby.rb')
load load_dir.join('rouge/lexers/perl.rb')
load load_dir.join('rouge/lexers/factor.rb')
load load_dir.join('rouge/lexers/clojure.rb')
load load_dir.join('rouge/lexers/groovy.rb')
+load load_dir.join('rouge/lexers/io.rb')
load load_dir.join('rouge/lexers/haskell.rb')
load load_dir.join('rouge/lexers/scheme.rb')
load load_dir.join('rouge/lexers/common_lisp.rb')