Sha256: 6350e63d83333da94cb99b1390753e2ef3a628524a2e8643cfd4798ed78cf97f

Contents?: true

Size: 1.56 KB

Versions: 13

Compression:

Stored size: 1.56 KB

Contents

($:.unshift '../..'; require 'coderay') unless defined? CodeRay
module CodeRay
module Encoders
  
  class Filter < Encoder
    
    register_for :filter
    
  protected
    def setup options
      @out = Tokens.new
    end
    
    def text_token text, kind
      [text, kind] if include_text_token? text, kind
    end
    
    def include_text_token? text, kind
      true
    end
    
    def block_token action, kind
      [action, kind] if include_block_token? action, kind
    end
    
    def include_block_token? action, kind
      true
    end
    
  end
  
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 FilterTest < Test::Unit::TestCase
  
  def test_creation
    assert CodeRay::Encoders::Filter < CodeRay::Encoders::Encoder
    filter = nil
    assert_nothing_raised do
      filter = CodeRay.encoder :filter
    end
    assert_kind_of CodeRay::Encoders::Encoder, filter
  end
  
  def test_filtering_text_tokens
    tokens = CodeRay::Tokens.new
    10.times do |i|
      tokens << [i.to_s, :index]
    end
    assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
    assert_equal tokens, tokens.filter
  end
  
  def test_filtering_block_tokens
    tokens = CodeRay::Tokens.new
    10.times do |i|
      tokens << [:open, :index]
      tokens << [i.to_s, :content]
      tokens << [:close, :index]
    end
    assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
    assert_equal tokens, tokens.filter
  end
  
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
coderay-0.9.8 ./lib/coderay/encoders/filter.rb
coderay-0.9.8.pre ./lib/coderay/encoders/filter.rb
coderay-0.9.7 ./lib/coderay/encoders/filter.rb
coderay-0.9.7.pre ./lib/coderay/encoders/filter.rb
coderay-0.9.6 ./lib/coderay/encoders/filter.rb
coderay-0.9.6.pre2 ./lib/coderay/encoders/filter.rb
coderay-0.9.6.pre ./lib/coderay/encoders/filter.rb
coderay-0.9.5 ./lib/coderay/encoders/filter.rb
coderay-0.9.4 ./lib/coderay/encoders/filter.rb
coderay-0.9.3 ./lib/coderay/encoders/filter.rb
coderay-0.9.2 ./lib/coderay/encoders/filter.rb
coderay-0.9.1 ./lib/coderay/encoders/filter.rb
coderay-beta-0.9.1 ./lib/coderay/encoders/filter.rb