summaryrefslogtreecommitdiff
path: root/lib/coderay/encoders/debug.rb
diff options
context:
space:
mode:
authormurphy <murphy@rubychan.de>2010-03-30 01:13:11 +0000
committermurphy <murphy@rubychan.de>2010-03-30 01:13:11 +0000
commit8f8d029f1e9ba286e43cedc274a89bae3fb318b4 (patch)
tree56e32bd33788c37f20a4d2f3bd51e58ad4c45022 /lib/coderay/encoders/debug.rb
parent476bc1bfe2f2000acc665f034e7da19bd3f0cc6b (diff)
downloadcoderay-8f8d029f1e9ba286e43cedc274a89bae3fb318b4.tar.gz
Added documentation to encoders; more code cleanups.
Diffstat (limited to 'lib/coderay/encoders/debug.rb')
-rw-r--r--lib/coderay/encoders/debug.rb50
1 files changed, 50 insertions, 0 deletions
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((\\\))string<content(test)>test[
+
+
+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