From 8f8d029f1e9ba286e43cedc274a89bae3fb318b4 Mon Sep 17 00:00:00 2001 From: murphy Date: Tue, 30 Mar 2010 01:13:11 +0000 Subject: Added documentation to encoders; more code cleanups. --- lib/coderay/encoders/debug.rb | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'lib/coderay/encoders/debug.rb') diff --git a/lib/coderay/encoders/debug.rb b/lib/coderay/encoders/debug.rb index 03d6876..4c680d3 100644 --- a/lib/coderay/encoders/debug.rb +++ b/lib/coderay/encoders/debug.rb @@ -1,3 +1,4 @@ +($:.unshift '../..'; require 'coderay') unless defined? CodeRay module CodeRay module Encoders @@ -10,6 +11,8 @@ module Encoders # You cannot fully restore the tokens information from the # output, because consecutive :space tokens are merged. # Use Tokens#dump for caching purposes. + # + # See also: Scanners::Debug class Debug < Encoder include Streamable @@ -47,3 +50,50 @@ module Encoders end end + +if $0 == __FILE__ + $VERBOSE = true + $: << File.join(File.dirname(__FILE__), '..') + eval DATA.read, nil, $0, __LINE__ + 4 +end + +__END__ +require 'test/unit' + +class DebugEncoderTest < Test::Unit::TestCase + + def test_creation + assert CodeRay::Encoders::Debug < CodeRay::Encoders::Encoder + debug = nil + assert_nothing_raised do + debug = CodeRay.encoder :debug + end + assert_kind_of CodeRay::Encoders::Encoder, debug + end + + TEST_INPUT = CodeRay::Tokens[ + ['10', :integer], + ['(\\)', :operator], + [:open, :string], + ['test', :content], + [:close, :string], + [:begin_line, :test], + ["\n", :space], + ["\n \t", :space], + [" \n", :space], + ["[]", :method], + [:end_line, :test], + ] + TEST_OUTPUT = <<-'DEBUG'.chomp +integer(10)operator((\\\))stringtest[ + + +method([])] + DEBUG + + def test_filtering_text_tokens + assert_equal TEST_OUTPUT, CodeRay::Encoders::Debug.new.encode_tokens(TEST_INPUT) + assert_equal TEST_OUTPUT, TEST_INPUT.debug + end + +end -- cgit v1.2.1