Chris@909: module CodeRay Chris@909: module Encoders Chris@909: Chris@909: # Returns the number of tokens. Chris@909: # Chris@909: # Text and block tokens are counted. Chris@909: class Count < Encoder Chris@909: Chris@909: register_for :count Chris@909: Chris@909: protected Chris@909: Chris@909: def setup options Chris@909: super Chris@909: Chris@909: @count = 0 Chris@909: end Chris@909: Chris@909: def finish options Chris@909: output @count Chris@909: end Chris@909: Chris@909: public Chris@909: Chris@909: def text_token text, kind Chris@909: @count += 1 Chris@909: end Chris@909: Chris@909: def begin_group kind Chris@909: @count += 1 Chris@909: end Chris@909: alias end_group begin_group Chris@909: alias begin_line begin_group Chris@909: alias end_line begin_group Chris@909: Chris@909: end Chris@909: Chris@909: end Chris@909: end