From a3b4ad06b992bd418a1d34bfb271c09fd9bedf11 Mon Sep 17 00:00:00 2001 From: murphy Date: Tue, 21 Mar 2006 14:46:34 +0000 Subject: =?UTF-8?q?CodeRay::Duo=20added=20for=20cool=20caching!=20bench/ca?= =?UTF-8?q?ching.rb=20added=20t=C2=B4for=20demonstrating=20this.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HTML Encoder: creates unwrapped output by default (still problems with that.) Numerizing changed (doesn't try to prevent nesting errors) Speedup: "::String" is faster. --- lib/coderay/encoders/html.rb | 13 +++++-------- lib/coderay/encoders/html/numerization.rb | 30 +++++++++++++++--------------- lib/coderay/encoders/html/output.rb | 4 ++-- 3 files changed, 22 insertions(+), 25 deletions(-) (limited to 'lib/coderay/encoders') diff --git a/lib/coderay/encoders/html.rb b/lib/coderay/encoders/html.rb index b75f9e5..11fa84c 100644 --- a/lib/coderay/encoders/html.rb +++ b/lib/coderay/encoders/html.rb @@ -36,7 +36,7 @@ module Encoders # # You can also use Encoders::Div and Encoders::Span. # - # Default: :page + # Default: nil # # === :line_numbers # Include line numbers in :table, :inline, :list or nil (no line numbers) @@ -73,7 +73,7 @@ module Encoders :style => :cycnus, - :wrap => :page, + :wrap => nil, :line_numbers => nil, :line_number_start => 1, @@ -208,17 +208,14 @@ module Encoders @out.extend Output @out.css = @css - @out.numerize! options[:line_numbers], options # if options[:line_numbers] - @out.wrap! options[:wrap] # if options[:wrap] - - #require 'pp' - #pp @css_style, @css_style.size + @out.numerize! options[:line_numbers], options + @out.wrap! options[:wrap] super end def token text, type - if text.is_a? String + if text.is_a? ::String if text =~ /#{HTML_ESCAPE_PATTERN}/o text = text.gsub(/#{HTML_ESCAPE_PATTERN}/o) { |m| @HTML_ESCAPE[m] } end diff --git a/lib/coderay/encoders/html/numerization.rb b/lib/coderay/encoders/html/numerization.rb index edce9eb..c5d96f3 100644 --- a/lib/coderay/encoders/html/numerization.rb +++ b/lib/coderay/encoders/html/numerization.rb @@ -1,5 +1,5 @@ module CodeRay - module Encoders +module Encoders class HTML @@ -9,13 +9,13 @@ module CodeRay clone.numerize!(*args) end - NUMERIZABLE_WRAPPINGS = { - :table => [:div, :page], +=begin NUMERIZABLE_WRAPPINGS = { + :table => [:div, :page, nil], :inline => :all, - :list => [:div, :page] + :list => [:div, :page, nil] } NUMERIZABLE_WRAPPINGS.default = :all - +=end def numerize! mode = :table, options = {} return self unless mode @@ -26,16 +26,17 @@ module CodeRay raise ArgumentError, "Invalid value %p for :line_number_start; Integer expected." % start end - allowed_wrappings = NUMERIZABLE_WRAPPINGS[mode] - unless allowed_wrappings == :all or allowed_wrappings.include? options[:wrap] - raise ArgumentError, "Can't numerize, :wrap must be in %p, but is %p" % [NUMERIZABLE_WRAPPINGS, options[:wrap]] - end + #allowed_wrappings = NUMERIZABLE_WRAPPINGS[mode] + #unless allowed_wrappings == :all or allowed_wrappings.include? options[:wrap] + # raise ArgumentError, "Can't numerize, :wrap must be in %p, but is %p" % [NUMERIZABLE_WRAPPINGS, options[:wrap]] + #end bold_every = options[:bold_every] bolding = - if bold_every == :no_bolding or bold_every == 0 + if bold_every == false proc { |line| line.to_s } elsif bold_every.is_a? Integer + raise ArgumentError, ":bolding can't be 0." if bold_every == 0 proc do |line| if line % bold_every == 0 "#{line}" # every bold_every-th number in bold @@ -44,11 +45,11 @@ module CodeRay end end else - raise ArgumentError, "Invalid value %p for :bolding; :no_bolding or Integer expected." % bolding + raise ArgumentError, 'Invalid value %p for :bolding; false or Integer expected.' % bold_every end line_count = count("\n") - line_count += 1 if self[-1] != ?\n + line_count += 1 unless self[-1] == ?\n case mode when :inline @@ -59,7 +60,6 @@ module CodeRay line += 1 "#{ line_number.rjust(max_width) } " end - #wrap! :div when :table # This is really ugly. @@ -97,8 +97,8 @@ module CodeRay @wrapped_in = :div else - raise ArgumentError, "Unknown value %p for mode: expected one of %p" % - [mode, NUMERIZABLE_WRAPPINGS.keys - [:all]] + raise ArgumentError, 'Unknown value %p for mode: expected one of %p' % + [mode, [:table, :list, :inline]] end self diff --git a/lib/coderay/encoders/html/output.rb b/lib/coderay/encoders/html/output.rb index 8096dc8..80ab4f1 100644 --- a/lib/coderay/encoders/html/output.rb +++ b/lib/coderay/encoders/html/output.rb @@ -158,10 +158,10 @@ module CodeRay DIV TABLE = <<-`TABLE` - +
-
<%LINE_NUMBERS%>
<%CONTENT%>
+ TABLE # title="double click to expand" -- cgit v1.2.1