summaryrefslogtreecommitdiffstats
path: root/vendor/plugins/coderay-0.7.6.227/lib/coderay/encoders/tokens.rb
blob: 27c7f6d5a83ce35c9c32432022bae50ce25b53d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
module CodeRay
module Encoders

  # The Tokens encoder converts the tokens to a simple
  # readable format. It doesn't use colors and is mainly
  # intended for console output.
  #
  # The tokens are converted with Tokens.write_token.
  #
  # The format is:
  #
  #   <token-kind> \t <escaped token-text> \n
  #
  # Example:
  #
  #   require 'coderay'
  #   puts CodeRay.scan("puts 3 + 4", :ruby).tokens
  #
  # prints:
  #
  #   ident   puts
  #   space
  #   integer 3
  #   space
  #   operator        +
  #   space
  #   integer 4
  #
  class Tokens < Encoder

    include Streamable
    register_for :tokens

    FILE_EXTENSION = 'tok'

  protected
    def token text, kind
      @out << CodeRay::Tokens.write_token(text, kind)
    end

  end

end
end