summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/coderay/tokens_proxy.rb25
1 files changed, 13 insertions, 12 deletions
diff --git a/lib/coderay/tokens_proxy.rb b/lib/coderay/tokens_proxy.rb
index b333e57..2a20435 100644
--- a/lib/coderay/tokens_proxy.rb
+++ b/lib/coderay/tokens_proxy.rb
@@ -2,6 +2,14 @@ module CodeRay
class TokensProxy < Struct.new :input, :lang, :options, :block
+ def encode encoder, options = {}
+ if encoder.respond_to? :to_sym
+ CodeRay.encode(input, lang, encoder, options)
+ else
+ encoder.encode_tokens tokens, options
+ end
+ end
+
def method_missing method, *args, &blk
encode method, *args
rescue PluginHost::PluginNotFound
@@ -12,26 +20,19 @@ module CodeRay
@tokens ||= scanner.tokenize(input)
end
+ def scanner
+ @scanner ||= CodeRay.scanner(lang, options, &block)
+ end
+
def each *args, &blk
tokens.each(*args, &blk)
+ self
end
def count
tokens.count
end
- def scanner
- @scanner ||= CodeRay.scanner(lang, options, &block)
- end
-
- def encode encoder, options = {}
- if encoder.respond_to? :to_sym
- CodeRay.encode(input, lang, encoder, options)
- else
- encoder.encode_tokens tokens, options
- end
- end
-
end
end