Mercurial > hg > soundsoftware-site
view .svn/pristine/33/33a69333d665b6d06e88fdb324d960ab74dff338.svn-base @ 1423:40e82f170353 biblio_alt_search_auth
small adjustments to text box size.
author | luisf <luis.figueira@eecs.qmul.ac.uk> |
---|---|
date | Wed, 02 Oct 2013 16:47:03 +0100 |
parents | cbb26bc654de |
children |
line wrap: on
line source
module CodeRay # The result of a scan operation is a TokensProxy, but should act like Tokens. # # This proxy makes it possible to use the classic CodeRay.scan.encode API # while still providing the benefits of direct streaming. class TokensProxy attr_accessor :input, :lang, :options, :block # Create a new TokensProxy with the arguments of CodeRay.scan. def initialize input, lang, options = {}, block = nil @input = input @lang = lang @options = options @block = block end # Call CodeRay.encode if +encoder+ is a Symbol; # otherwise, convert the receiver to tokens and call encoder.encode_tokens. def encode encoder, options = {} if encoder.respond_to? :to_sym CodeRay.encode(input, lang, encoder, options) else encoder.encode_tokens tokens, options end end # Tries to call encode; # delegates to tokens otherwise. def method_missing method, *args, &blk encode method.to_sym, *args rescue PluginHost::PluginNotFound tokens.send(method, *args, &blk) end # The (cached) result of the tokenized input; a Tokens instance. def tokens @tokens ||= scanner.tokenize(input) end # A (cached) scanner instance to use for the scan task. def scanner @scanner ||= CodeRay.scanner(lang, options, &block) end # Overwrite Struct#each. def each *args, &blk tokens.each(*args, &blk) self end end end