summaryrefslogtreecommitdiffstats
path: root/vendor/gems/coderay-1.0.0/lib
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gems/coderay-1.0.0/lib')
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay.rb278
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/duo.rb81
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoder.rb201
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/_map.rb17
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/comment_filter.rb25
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/count.rb39
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/debug.rb61
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/div.rb23
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/filter.rb58
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/html.rb302
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/css.rb65
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/numbering.rb115
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/output.rb158
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/json.rb83
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/lines_of_code.rb45
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/null.rb18
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/page.rb24
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/span.rb23
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/statistic.rb96
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/terminal.rb179
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/text.rb46
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/token_kind_filter.rb111
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/xml.rb72
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/encoders/yaml.rb50
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/for_redcloth.rb95
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/helpers/file_type.rb141
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/helpers/gzip.rb41
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/helpers/plugin.rb284
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/helpers/word_list.rb77
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanner.rb323
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/_map.rb24
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/c.rb189
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/clojure.rb217
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/cpp.rb215
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/css.rb192
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/debug.rb65
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/delphi.rb144
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/diff.rb201
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/erb.rb81
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/groovy.rb255
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/haml.rb168
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/html.rb253
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/java.rb174
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/java/builtin_types.rb421
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/java_script.rb213
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/json.rb95
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/php.rb509
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/python.rb287
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/raydebug.rb66
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby.rb461
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/patterns.rb175
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/string_state.rb71
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/sql.rb174
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/text.rb26
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/xml.rb17
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/scanners/yaml.rb140
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/style.rb23
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/styles/_map.rb7
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/styles/alpha.rb143
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/token_kinds.rb90
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/tokens.rb215
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/tokens_proxy.rb55
-rw-r--r--vendor/gems/coderay-1.0.0/lib/coderay/version.rb3
63 files changed, 0 insertions, 8500 deletions
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay.rb b/vendor/gems/coderay-1.0.0/lib/coderay.rb
deleted file mode 100644
index c89722026..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay.rb
+++ /dev/null
@@ -1,278 +0,0 @@
-# encoding: utf-8
-# Encoding.default_internal = 'UTF-8'
-
-# = CodeRay Library
-#
-# CodeRay is a Ruby library for syntax highlighting.
-#
-# I try to make CodeRay easy to use and intuitive, but at the same time fully
-# featured, complete, fast and efficient.
-#
-# See README.
-#
-# It consists mainly of
-# * the main engine: CodeRay (Scanners::Scanner, Tokens, Encoders::Encoder)
-# * the plugin system: PluginHost, Plugin
-# * the scanners in CodeRay::Scanners
-# * the encoders in CodeRay::Encoders
-# * the styles in CodeRay::Styles
-#
-# Here's a fancy graphic to light up this gray docu:
-#
-# http://cycnus.de/raindark/coderay/scheme.png
-#
-# == Documentation
-#
-# See CodeRay, Encoders, Scanners, Tokens.
-#
-# == Usage
-#
-# Remember you need RubyGems to use CodeRay, unless you have it in your load
-# path. Run Ruby with -rubygems option if required.
-#
-# === Highlight Ruby code in a string as html
-#
-# require 'coderay'
-# print CodeRay.scan('puts "Hello, world!"', :ruby).html
-#
-# # prints something like this:
-# puts <span class="s">&quot;Hello, world!&quot;</span>
-#
-#
-# === Highlight C code from a file in a html div
-#
-# require 'coderay'
-# print CodeRay.scan(File.read('ruby.h'), :c).div
-# print CodeRay.scan_file('ruby.h').html.div
-#
-# You can include this div in your page. The used CSS styles can be printed with
-#
-# % coderay_stylesheet
-#
-# === Highlight without typing too much
-#
-# If you are one of the hasty (or lazy, or extremely curious) people, just run this file:
-#
-# % ruby -rubygems /path/to/coderay/coderay.rb > example.html
-#
-# and look at the file it created in your browser.
-#
-# = CodeRay Module
-#
-# The CodeRay module provides convenience methods for the engine.
-#
-# * The +lang+ and +format+ arguments select Scanner and Encoder to use. These are
-# simply lower-case symbols, like <tt>:python</tt> or <tt>:html</tt>.
-# * All methods take an optional hash as last parameter, +options+, that is send to
-# the Encoder / Scanner.
-# * Input and language are always sorted in this order: +code+, +lang+.
-# (This is in alphabetical order, if you need a mnemonic ;)
-#
-# You should be able to highlight everything you want just using these methods;
-# so there is no need to dive into CodeRay's deep class hierarchy.
-#
-# The examples in the demo directory demonstrate common cases using this interface.
-#
-# = Basic Access Ways
-#
-# Read this to get a general view what CodeRay provides.
-#
-# == Scanning
-#
-# Scanning means analysing an input string, splitting it up into Tokens.
-# Each Token knows about what type it is: string, comment, class name, etc.
-#
-# Each +lang+ (language) has its own Scanner; for example, <tt>:ruby</tt> code is
-# handled by CodeRay::Scanners::Ruby.
-#
-# CodeRay.scan:: Scan a string in a given language into Tokens.
-# This is the most common method to use.
-# CodeRay.scan_file:: Scan a file and guess the language using FileType.
-#
-# The Tokens object you get from these methods can encode itself; see Tokens.
-#
-# == Encoding
-#
-# Encoding means compiling Tokens into an output. This can be colored HTML or
-# LaTeX, a textual statistic or just the number of non-whitespace tokens.
-#
-# Each Encoder provides output in a specific +format+, so you select Encoders via
-# formats like <tt>:html</tt> or <tt>:statistic</tt>.
-#
-# CodeRay.encode:: Scan and encode a string in a given language.
-# CodeRay.encode_tokens:: Encode the given tokens.
-# CodeRay.encode_file:: Scan a file, guess the language using FileType and encode it.
-#
-# == All-in-One Encoding
-#
-# CodeRay.encode:: Highlight a string with a given input and output format.
-#
-# == Instanciating
-#
-# You can use an Encoder instance to highlight multiple inputs. This way, the setup
-# for this Encoder must only be done once.
-#
-# CodeRay.encoder:: Create an Encoder instance with format and options.
-# CodeRay.scanner:: Create an Scanner instance for lang, with '' as default code.
-#
-# To make use of CodeRay.scanner, use CodeRay::Scanner::code=.
-#
-# The scanning methods provide more flexibility; we recommend to use these.
-#
-# == Reusing Scanners and Encoders
-#
-# If you want to re-use scanners and encoders (because that is faster), see
-# CodeRay::Duo for the most convenient (and recommended) interface.
-module CodeRay
-
- $CODERAY_DEBUG ||= false
-
- require 'coderay/version'
-
- # helpers
- autoload :FileType, 'coderay/helpers/file_type'
-
- # Tokens
- autoload :Tokens, 'coderay/tokens'
- autoload :TokensProxy, 'coderay/tokens_proxy'
- autoload :TokenKinds, 'coderay/token_kinds'
-
- # Plugin system
- autoload :PluginHost, 'coderay/helpers/plugin'
- autoload :Plugin, 'coderay/helpers/plugin'
-
- # Plugins
- autoload :Scanners, 'coderay/scanner'
- autoload :Encoders, 'coderay/encoder'
- autoload :Styles, 'coderay/style'
-
- # Convenience access and reusable Encoder/Scanner pair
- autoload :Duo, 'coderay/duo'
-
- class << self
-
- # Scans the given +code+ (a String) with the Scanner for +lang+.
- #
- # This is a simple way to use CodeRay. Example:
- # require 'coderay'
- # page = CodeRay.scan("puts 'Hello, world!'", :ruby).html
- #
- # See also demo/demo_simple.
- def scan code, lang, options = {}, &block
- # FIXME: return a proxy for direct-stream encoding
- TokensProxy.new code, lang, options, block
- end
-
- # Scans +filename+ (a path to a code file) with the Scanner for +lang+.
- #
- # If +lang+ is :auto or omitted, the CodeRay::FileType module is used to
- # determine it. If it cannot find out what type it is, it uses
- # CodeRay::Scanners::Text.
- #
- # Calls CodeRay.scan.
- #
- # Example:
- # require 'coderay'
- # page = CodeRay.scan_file('some_c_code.c').html
- def scan_file filename, lang = :auto, options = {}, &block
- lang = FileType.fetch filename, :text, true if lang == :auto
- code = File.read filename
- scan code, lang, options, &block
- end
-
- # Encode a string.
- #
- # This scans +code+ with the the Scanner for +lang+ and then
- # encodes it with the Encoder for +format+.
- # +options+ will be passed to the Encoder.
- #
- # See CodeRay::Encoder.encode.
- def encode code, lang, format, options = {}
- encoder(format, options).encode code, lang, options
- end
-
- # Encode pre-scanned Tokens.
- # Use this together with CodeRay.scan:
- #
- # require 'coderay'
- #
- # # Highlight a short Ruby code example in a HTML span
- # tokens = CodeRay.scan '1 + 2', :ruby
- # puts CodeRay.encode_tokens(tokens, :span)
- #
- def encode_tokens tokens, format, options = {}
- encoder(format, options).encode_tokens tokens, options
- end
-
- # Encodes +filename+ (a path to a code file) with the Scanner for +lang+.
- #
- # See CodeRay.scan_file.
- # Notice that the second argument is the output +format+, not the input language.
- #
- # Example:
- # require 'coderay'
- # page = CodeRay.encode_file 'some_c_code.c', :html
- def encode_file filename, format, options = {}
- tokens = scan_file filename, :auto, get_scanner_options(options)
- encode_tokens tokens, format, options
- end
-
- # Highlight a string into a HTML <div>.
- #
- # CSS styles use classes, so you have to include a stylesheet
- # in your output.
- #
- # See encode.
- def highlight code, lang, options = { :css => :class }, format = :div
- encode code, lang, format, options
- end
-
- # Highlight a file into a HTML <div>.
- #
- # CSS styles use classes, so you have to include a stylesheet
- # in your output.
- #
- # See encode.
- def highlight_file filename, options = { :css => :class }, format = :div
- encode_file filename, format, options
- end
-
- # Finds the Encoder class for +format+ and creates an instance, passing
- # +options+ to it.
- #
- # Example:
- # require 'coderay'
- #
- # stats = CodeRay.encoder(:statistic)
- # stats.encode("puts 17 + 4\n", :ruby)
- #
- # puts '%d out of %d tokens have the kind :integer.' % [
- # stats.type_stats[:integer].count,
- # stats.real_token_count
- # ]
- # #-> 2 out of 4 tokens have the kind :integer.
- def encoder format, options = {}
- Encoders[format].new options
- end
-
- # Finds the Scanner class for +lang+ and creates an instance, passing
- # +options+ to it.
- #
- # See Scanner.new.
- def scanner lang, options = {}, &block
- Scanners[lang].new '', options, &block
- end
-
- # Extract the options for the scanner from the +options+ hash.
- #
- # Returns an empty Hash if <tt>:scanner_options</tt> is not set.
- #
- # This is used if a method like CodeRay.encode has to provide options
- # for Encoder _and_ scanner.
- def get_scanner_options options
- options.fetch :scanner_options, {}
- end
-
- end
-
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/duo.rb b/vendor/gems/coderay-1.0.0/lib/coderay/duo.rb
deleted file mode 100644
index cb3f8ee82..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/duo.rb
+++ /dev/null
@@ -1,81 +0,0 @@
-module CodeRay
-
- # = Duo
- #
- # A Duo is a convenient way to use CodeRay. You just create a Duo,
- # giving it a lang (language of the input code) and a format (desired
- # output format), and call Duo#highlight with the code.
- #
- # Duo makes it easy to re-use both scanner and encoder for a repetitive
- # task. It also provides a very easy interface syntax:
- #
- # require 'coderay'
- # CodeRay::Duo[:python, :div].highlight 'import this'
- #
- # Until you want to do uncommon things with CodeRay, I recommend to use
- # this method, since it takes care of everything.
- class Duo
-
- attr_accessor :lang, :format, :options
-
- # Create a new Duo, holding a lang and a format to highlight code.
- #
- # simple:
- # CodeRay::Duo[:ruby, :html].highlight 'bla 42'
- #
- # with options:
- # CodeRay::Duo[:ruby, :html, :hint => :debug].highlight '????::??'
- #
- # alternative syntax without options:
- # CodeRay::Duo[:ruby => :statistic].encode 'class << self; end'
- #
- # alternative syntax with options:
- # CodeRay::Duo[{ :ruby => :statistic }, :do => :something].encode 'abc'
- #
- # The options are forwarded to scanner and encoder
- # (see CodeRay.get_scanner_options).
- def initialize lang = nil, format = nil, options = {}
- if format.nil? && lang.is_a?(Hash) && lang.size == 1
- @lang = lang.keys.first
- @format = lang[@lang]
- else
- @lang = lang
- @format = format
- end
- @options = options
- end
-
- class << self
- # To allow calls like Duo[:ruby, :html].highlight.
- alias [] new
- end
-
- # The scanner of the duo. Only created once.
- def scanner
- @scanner ||= CodeRay.scanner @lang, CodeRay.get_scanner_options(@options)
- end
-
- # The encoder of the duo. Only created once.
- def encoder
- @encoder ||= CodeRay.encoder @format, @options
- end
-
- # Tokenize and highlight the code using +scanner+ and +encoder+.
- def encode code, options = {}
- options = @options.merge options
- encoder.encode(code, @lang, options)
- end
- alias highlight encode
-
- # Allows to use Duo like a proc object:
- #
- # CodeRay::Duo[:python => :yaml].call(code)
- #
- # or, in Ruby 1.9 and later:
- #
- # CodeRay::Duo[:python => :yaml].(code)
- alias call encode
-
- end
-
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoder.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoder.rb
deleted file mode 100644
index d2d6c7e62..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoder.rb
+++ /dev/null
@@ -1,201 +0,0 @@
-module CodeRay
-
- # This module holds the Encoder class and its subclasses.
- # For example, the HTML encoder is named CodeRay::Encoders::HTML
- # can be found in coderay/encoders/html.
- #
- # Encoders also provides methods and constants for the register
- # mechanism and the [] method that returns the Encoder class
- # belonging to the given format.
- module Encoders
-
- extend PluginHost
- plugin_path File.dirname(__FILE__), 'encoders'
-
- # = Encoder
- #
- # The Encoder base class. Together with Scanner and
- # Tokens, it forms the highlighting triad.
- #
- # Encoder instances take a Tokens object and do something with it.
- #
- # The most common Encoder is surely the HTML encoder
- # (CodeRay::Encoders::HTML). It highlights the code in a colorful
- # html page.
- # If you want the highlighted code in a div or a span instead,
- # use its subclasses Div and Span.
- class Encoder
- extend Plugin
- plugin_host Encoders
-
- class << self
-
- # If FILE_EXTENSION isn't defined, this method returns the
- # downcase class name instead.
- def const_missing sym
- if sym == :FILE_EXTENSION
- (defined?(@plugin_id) && @plugin_id || name[/\w+$/].downcase).to_s
- else
- super
- end
- end
-
- # The default file extension for output file of this encoder class.
- def file_extension
- self::FILE_EXTENSION
- end
-
- end
-
- # Subclasses are to store their default options in this constant.
- DEFAULT_OPTIONS = { }
-
- # The options you gave the Encoder at creating.
- attr_accessor :options, :scanner
-
- # Creates a new Encoder.
- # +options+ is saved and used for all encode operations, as long
- # as you don't overwrite it there by passing additional options.
- #
- # Encoder objects provide three encode methods:
- # - encode simply takes a +code+ string and a +lang+
- # - encode_tokens expects a +tokens+ object instead
- #
- # Each method has an optional +options+ parameter. These are
- # added to the options you passed at creation.
- def initialize options = {}
- @options = self.class::DEFAULT_OPTIONS.merge options
- @@CODERAY_TOKEN_INTERFACE_DEPRECATION_WARNING_GIVEN = false
- end
-
- # Encode a Tokens object.
- def encode_tokens tokens, options = {}
- options = @options.merge options
- @scanner = tokens.scanner if tokens.respond_to? :scanner
- setup options
- compile tokens, options
- finish options
- end
-
- # Encode the given +code+ using the Scanner for +lang+.
- def encode code, lang, options = {}
- options = @options.merge options
- @scanner = Scanners[lang].new code, CodeRay.get_scanner_options(options).update(:tokens => self)
- setup options
- @scanner.tokenize
- finish options
- end
-
- # You can use highlight instead of encode, if that seems
- # more clear to you.
- alias highlight encode
-
- # The default file extension for this encoder.
- def file_extension
- self.class.file_extension
- end
-
- def << token
- unless @@CODERAY_TOKEN_INTERFACE_DEPRECATION_WARNING_GIVEN
- warn 'Using old Tokens#<< interface.'
- @@CODERAY_TOKEN_INTERFACE_DEPRECATION_WARNING_GIVEN = true
- end
- self.token(*token)
- end
-
- # Called with +content+ and +kind+ of the currently scanned token.
- # For simple scanners, it's enougth to implement this method.
- #
- # By default, it calls text_token, begin_group, end_group, begin_line,
- # or end_line, depending on the +content+.
- def token content, kind
- case content
- when String
- text_token content, kind
- when :begin_group
- begin_group kind
- when :end_group
- end_group kind
- when :begin_line
- begin_line kind
- when :end_line
- end_line kind
- else
- raise ArgumentError, 'Unknown token content type: %p, kind = %p' % [content, kind]
- end
- end
-
- # Called for each text token ([text, kind]), where text is a String.
- def text_token text, kind
- @out << text
- end
-
- # Starts a token group with the given +kind+.
- def begin_group kind
- end
-
- # Ends a token group with the given +kind+.
- def end_group kind
- end
-
- # Starts a new line token group with the given +kind+.
- def begin_line kind
- end
-
- # Ends a new line token group with the given +kind+.
- def end_line kind
- end
-
- protected
-
- # Called with merged options before encoding starts.
- # Sets @out to an empty string.
- #
- # See the HTML Encoder for an example of option caching.
- def setup options
- @out = get_output(options)
- end
-
- def get_output options
- options[:out] || ''
- end
-
- # Append data.to_s to the output. Returns the argument.
- def output data
- @out << data.to_s
- data
- end
-
- # Called with merged options after encoding starts.
- # The return value is the result of encoding, typically @out.
- def finish options
- @out
- end
-
- # Do the encoding.
- #
- # The already created +tokens+ object must be used; it must be a
- # Tokens object.
- def compile tokens, options = {}
- content = nil
- for item in tokens
- if item.is_a? Array
- raise ArgumentError, 'Two-element array tokens are no longer supported.'
- end
- if content
- token content, item
- content = nil
- else
- content = item
- end
- end
- raise 'odd number list for Tokens' if content
- end
-
- alias tokens compile
- public :tokens
-
- end
-
- end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/_map.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/_map.rb
deleted file mode 100644
index 4cca1963f..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/_map.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-module CodeRay
-module Encoders
-
- map \
- :loc => :lines_of_code,
- :plain => :text,
- :plaintext => :text,
- :remove_comments => :comment_filter,
- :stats => :statistic,
- :term => :terminal,
- :tty => :terminal,
- :yml => :yaml
-
- # No default because Tokens#nonsense should raise NoMethodError.
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/comment_filter.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/comment_filter.rb
deleted file mode 100644
index 28336b3d4..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/comment_filter.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-module CodeRay
-module Encoders
-
- load :token_kind_filter
-
- # A simple Filter that removes all tokens of the :comment kind.
- #
- # Alias: +remove_comments+
- #
- # Usage:
- # CodeRay.scan('print # foo', :ruby).comment_filter.text
- # #-> "print "
- #
- # See also: TokenKindFilter, LinesOfCode
- class CommentFilter < TokenKindFilter
-
- register_for :comment_filter
-
- DEFAULT_OPTIONS = superclass::DEFAULT_OPTIONS.merge \
- :exclude => [:comment, :docstring]
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/count.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/count.rb
deleted file mode 100644
index 98a427e18..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/count.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-module CodeRay
-module Encoders
-
- # Returns the number of tokens.
- #
- # Text and block tokens are counted.
- class Count < Encoder
-
- register_for :count
-
- protected
-
- def setup options
- super
-
- @count = 0
- end
-
- def finish options
- output @count
- end
-
- public
-
- def text_token text, kind
- @count += 1
- end
-
- def begin_group kind
- @count += 1
- end
- alias end_group begin_group
- alias begin_line begin_group
- alias end_line begin_group
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/debug.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/debug.rb
deleted file mode 100644
index 95d6138f3..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/debug.rb
+++ /dev/null
@@ -1,61 +0,0 @@
-module CodeRay
-module Encoders
-
- # = Debug Encoder
- #
- # Fast encoder producing simple debug output.
- #
- # It is readable and diff-able and is used for testing.
- #
- # You cannot fully restore the tokens information from the
- # output, because consecutive :space tokens are merged.
- # Use Tokens#dump for caching purposes.
- #
- # See also: Scanners::Debug
- class Debug < Encoder
-
- register_for :debug
-
- FILE_EXTENSION = 'raydebug'
-
- def initialize options = {}
- super
- @opened = []
- end
-
- def text_token text, kind
- if kind == :space
- @out << text
- else
- # TODO: Escape (
- text = text.gsub(/[)\\]/, '\\\\\0') # escape ) and \
- @out << kind.to_s << '(' << text << ')'
- end
- end
-
- def begin_group kind
- @opened << kind
- @out << kind.to_s << '<'
- end
-
- def end_group kind
- if @opened.last != kind
- puts @out
- raise "we are inside #{@opened.inspect}, not #{kind}"
- end
- @opened.pop
- @out << '>'
- end
-
- def begin_line kind
- @out << kind.to_s << '['
- end
-
- def end_line kind
- @out << ']'
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/div.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/div.rb
deleted file mode 100644
index efd9435c2..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/div.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-module CodeRay
-module Encoders
-
- load :html
-
- # Wraps HTML output into a DIV element, using inline styles by default.
- #
- # See Encoders::HTML for available options.
- class Div < HTML
-
- FILE_EXTENSION = 'div.html'
-
- register_for :div
-
- DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
- :css => :style,
- :wrap => :div,
- :line_numbers => false
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/filter.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/filter.rb
deleted file mode 100644
index e7f34d6ad..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/filter.rb
+++ /dev/null
@@ -1,58 +0,0 @@
-module CodeRay
-module Encoders
-
- # A Filter encoder has another Tokens instance as output.
- # It can be subclass to select, remove, or modify tokens in the stream.
- #
- # Subclasses of Filter are called "Filters" and can be chained.
- #
- # == Options
- #
- # === :tokens
- #
- # The Tokens object which will receive the output.
- #
- # Default: Tokens.new
- #
- # See also: TokenKindFilter
- class Filter < Encoder
-
- register_for :filter
-
- protected
- def setup options
- super
-
- @tokens = options[:tokens] || Tokens.new
- end
-
- def finish options
- output @tokens
- end
-
- public
-
- def text_token text, kind # :nodoc:
- @tokens.text_token text, kind
- end
-
- def begin_group kind # :nodoc:
- @tokens.begin_group kind
- end
-
- def begin_line kind # :nodoc:
- @tokens.begin_line kind
- end
-
- def end_group kind # :nodoc:
- @tokens.end_group kind
- end
-
- def end_line kind # :nodoc:
- @tokens.end_line kind
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html.rb
deleted file mode 100644
index 60dfad189..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html.rb
+++ /dev/null
@@ -1,302 +0,0 @@
-require 'set'
-
-module CodeRay
-module Encoders
-
- # = HTML Encoder
- #
- # This is CodeRay's most important highlighter:
- # It provides save, fast XHTML generation and CSS support.
- #
- # == Usage
- #
- # require 'coderay'
- # puts CodeRay.scan('Some /code/', :ruby).html #-> a HTML page
- # puts CodeRay.scan('Some /code/', :ruby).html(:wrap => :span)
- # #-> <span class="CodeRay"><span class="co">Some</span> /code/</span>
- # puts CodeRay.scan('Some /code/', :ruby).span #-> the same
- #
- # puts CodeRay.scan('Some code', :ruby).html(
- # :wrap => nil,
- # :line_numbers => :inline,
- # :css => :style
- # )
- #
- # == Options
- #
- # === :tab_width
- # Convert \t characters to +n+ spaces (a number.)
- #
- # Default: 8
- #
- # === :css
- # How to include the styles; can be :class or :style.
- #
- # Default: :class
- #
- # === :wrap
- # Wrap in :page, :div, :span or nil.
- #
- # You can also use Encoders::Div and Encoders::Span.
- #
- # Default: nil
- #
- # === :title
- #
- # The title of the HTML page (works only when :wrap is set to :page.)
- #
- # Default: 'CodeRay output'
- #
- # === :line_numbers
- # Include line numbers in :table, :inline, or nil (no line numbers)
- #
- # Default: nil
- #
- # === :line_number_anchors
- # Adds anchors and links to the line numbers. Can be false (off), true (on),
- # or a prefix string that will be prepended to the anchor name.
- #
- # The prefix must consist only of letters, digits, and underscores.
- #
- # Default: true, default prefix name: "line"
- #
- # === :line_number_start
- # Where to start with line number counting.
- #
- # Default: 1
- #
- # === :bold_every
- # Make every +n+-th number appear bold.
- #
- # Default: 10
- #
- # === :highlight_lines
- #
- # Highlights certain line numbers.
- # Can be any Enumerable, typically just an Array or Range, of numbers.
- #
- # Bolding is deactivated when :highlight_lines is set. It only makes sense
- # in combination with :line_numbers.
- #
- # Default: nil
- #
- # === :hint
- # Include some information into the output using the title attribute.
- # Can be :info (show token kind on mouse-over), :info_long (with full path)
- # or :debug (via inspect).
- #
- # Default: false
- class HTML < Encoder
-
- register_for :html
-
- FILE_EXTENSION = 'snippet.html'
-
- DEFAULT_OPTIONS = {
- :tab_width => 8,
-
- :css => :class,
- :style => :alpha,
- :wrap => nil,
- :title => 'CodeRay output',
-
- :line_numbers => nil,
- :line_number_anchors => 'n',
- :line_number_start => 1,
- :bold_every => 10,
- :highlight_lines => nil,
-
- :hint => false,
- }
-
- autoload :Output, 'coderay/encoders/html/output'
- autoload :CSS, 'coderay/encoders/html/css'
- autoload :Numbering, 'coderay/encoders/html/numbering'
-
- attr_reader :css
-
- protected
-
- HTML_ESCAPE = { #:nodoc:
- '&' => '&amp;',
- '"' => '&quot;',
- '>' => '&gt;',
- '<' => '&lt;',
- }
-
- # This was to prevent illegal HTML.
- # Strange chars should still be avoided in codes.
- evil_chars = Array(0x00...0x20) - [?\n, ?\t, ?\s]
- evil_chars.each { |i| HTML_ESCAPE[i.chr] = ' ' }
- #ansi_chars = Array(0x7f..0xff)
- #ansi_chars.each { |i| HTML_ESCAPE[i.chr] = '&#%d;' % i }
- # \x9 (\t) and \xA (\n) not included
- #HTML_ESCAPE_PATTERN = /[\t&"><\0-\x8\xB-\x1f\x7f-\xff]/
- HTML_ESCAPE_PATTERN = /[\t"&><\0-\x8\xB-\x1f]/
-
- TOKEN_KIND_TO_INFO = Hash.new do |h, kind|
- h[kind] = kind.to_s.gsub(/_/, ' ').gsub(/\b\w/) { $&.capitalize }
- end
-
- TRANSPARENT_TOKEN_KINDS = Set[
- :delimiter, :modifier, :content, :escape, :inline_delimiter,
- ]
-
- # Generate a hint about the given +kinds+ in a +hint+ style.
- #
- # +hint+ may be :info, :info_long or :debug.
- def self.token_path_to_hint hint, kinds
- kinds = Array kinds
- title =
- case hint
- when :info
- kinds = kinds[1..-1] if TRANSPARENT_TOKEN_KINDS.include? kinds.first
- TOKEN_KIND_TO_INFO[kinds.first]
- when :info_long
- kinds.reverse.map { |kind| TOKEN_KIND_TO_INFO[kind] }.join('/')
- when :debug
- kinds.inspect
- end
- title ? " title=\"#{title}\"" : ''
- end
-
- def setup options
- super
-
- if options[:wrap] || options[:line_numbers]
- @real_out = @out
- @out = ''
- end
-
- @HTML_ESCAPE = HTML_ESCAPE.dup
- @HTML_ESCAPE["\t"] = ' ' * options[:tab_width]
-
- @opened = []
- @last_opened = nil
- @css = CSS.new options[:style]
-
- hint = options[:hint]
- if hint && ![:debug, :info, :info_long].include?(hint)
- raise ArgumentError, "Unknown value %p for :hint; \
- expected :info, :info_long, :debug, false, or nil." % hint
- end
-
- css_classes = TokenKinds
- case options[:css]
- when :class
- @span_for_kind = Hash.new do |h, k|
- if k.is_a? ::Symbol
- kind = k_dup = k
- else
- kind = k.first
- k_dup = k.dup
- end
- if kind != :space && (hint || css_class = css_classes[kind])
- title = HTML.token_path_to_hint hint, k if hint
- css_class ||= css_classes[kind]
- h[k_dup] = "<span#{title}#{" class=\"#{css_class}\"" if css_class}>"
- else
- h[k_dup] = nil
- end
- end
- when :style
- @span_for_kind = Hash.new do |h, k|
- kind = k.is_a?(Symbol) ? k : k.first
- h[k.is_a?(Symbol) ? k : k.dup] =
- if kind != :space && (hint || css_classes[kind])
- title = HTML.token_path_to_hint hint, k if hint
- style = @css.get_style Array(k).map { |c| css_classes[c] }
- "<span#{title}#{" style=\"#{style}\"" if style}>"
- end
- end
- else
- raise ArgumentError, "Unknown value %p for :css." % options[:css]
- end
-
- @set_last_opened = options[:hint] || options[:css] == :style
- end
-
- def finish options
- unless @opened.empty?
- warn '%d tokens still open: %p' % [@opened.size, @opened] if $CODERAY_DEBUG
- @out << '</span>' while @opened.pop
- @last_opened = nil
- end
-
- @out.extend Output
- @out.css = @css
- if options[:line_numbers]
- Numbering.number! @out, options[:line_numbers], options
- end
- @out.wrap! options[:wrap]
- @out.apply_title! options[:title]
-
- if defined?(@real_out) && @real_out
- @real_out << @out
- @out = @real_out
- end
-
- super
- end
-
- public
-
- def text_token text, kind
- if text =~ /#{HTML_ESCAPE_PATTERN}/o
- text = text.gsub(/#{HTML_ESCAPE_PATTERN}/o) { |m| @HTML_ESCAPE[m] }
- end
- if style = @span_for_kind[@last_opened ? [kind, *@opened] : kind]
- @out << style << text << '</span>'
- else
- @out << text
- end
- end
-
- # token groups, eg. strings
- def begin_group kind
- @out << (@span_for_kind[@last_opened ? [kind, *@opened] : kind] || '<span>')
- @opened << kind
- @last_opened = kind if @set_last_opened
- end
-
- def end_group kind
- if $CODERAY_DEBUG && (@opened.empty? || @opened.last != kind)
- warn 'Malformed token stream: Trying to close a token (%p) ' \
- 'that is not open. Open are: %p.' % [kind, @opened[1..-1]]
- end
- if @opened.pop
- @out << '</span>'
- @last_opened = @opened.last if @last_opened
- end
- end
-
- # whole lines to be highlighted, eg. a deleted line in a diff
- def begin_line kind
- if style = @span_for_kind[@last_opened ? [kind, *@opened] : kind]
- if style['class="']
- @out << style.sub('class="', 'class="line ')
- else
- @out << style.sub('>', ' class="line">')
- end
- else
- @out << '<span class="line">'
- end
- @opened << kind
- @last_opened = kind if @options[:css] == :style
- end
-
- def end_line kind
- if $CODERAY_DEBUG && (@opened.empty? || @opened.last != kind)
- warn 'Malformed token stream: Trying to close a line (%p) ' \
- 'that is not open. Open are: %p.' % [kind, @opened[1..-1]]
- end
- if @opened.pop
- @out << '</span>'
- @last_opened = @opened.last if @last_opened
- end
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/css.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/css.rb
deleted file mode 100644
index 6de4b4639..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/css.rb
+++ /dev/null
@@ -1,65 +0,0 @@
-module CodeRay
-module Encoders
-
- class HTML
- class CSS # :nodoc:
-
- attr :stylesheet
-
- def CSS.load_stylesheet style = nil
- CodeRay::Styles[style]
- end
-
- def initialize style = :default
- @classes = Hash.new
- style = CSS.load_stylesheet style
- @stylesheet = [
- style::CSS_MAIN_STYLES,
- style::TOKEN_COLORS.gsub(/^(?!$)/, '.CodeRay ')
- ].join("\n")
- parse style::TOKEN_COLORS
- end
-
- def get_style styles
- cl = @classes[styles.first]
- return '' unless cl
- style = ''
- 1.upto styles.size do |offset|
- break if style = cl[styles[offset .. -1]]
- end
- # warn 'Style not found: %p' % [styles] if style.empty?
- return style
- end
-
- private
-
- CSS_CLASS_PATTERN = /
- ( # $1 = selectors
- (?:
- (?: \s* \. [-\w]+ )+
- \s* ,?
- )+
- )
- \s* \{ \s*
- ( [^\}]+ )? # $2 = style
- \s* \} \s*
- |
- ( [^\n]+ ) # $3 = error
- /mx
- def parse stylesheet
- stylesheet.scan CSS_CLASS_PATTERN do |selectors, style, error|
- raise "CSS parse error: '#{error.inspect}' not recognized" if error
- for selector in selectors.split(',')
- classes = selector.scan(/[-\w]+/)
- cl = classes.pop
- @classes[cl] ||= Hash.new
- @classes[cl][classes] = style.to_s.strip.delete(' ').chomp(';')
- end
- end
- end
-
- end
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/numbering.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/numbering.rb
deleted file mode 100644
index 15ce11b5f..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/numbering.rb
+++ /dev/null
@@ -1,115 +0,0 @@
-module CodeRay
-module Encoders
-
- class HTML
-
- module Numbering # :nodoc:
-
- def self.number! output, mode = :table, options = {}
- return self unless mode
-
- options = DEFAULT_OPTIONS.merge options
-
- start = options[:line_number_start]
- unless start.is_a? Integer
- raise ArgumentError, "Invalid value %p for :line_number_start; Integer expected." % start
- end
-
- anchor_prefix = options[:line_number_anchors]
- anchor_prefix = 'line' if anchor_prefix == true
- anchor_prefix = anchor_prefix.to_s[/\w+/] if anchor_prefix
- anchoring =
- if anchor_prefix
- proc do |line|
- line = line.to_s
- anchor = anchor_prefix + line
- "<a href=\"##{anchor}\" name=\"#{anchor}\">#{line}</a>"
- end
- else
- proc { |line| line.to_s } # :to_s.to_proc in Ruby 1.8.7+
- end
-
- bold_every = options[:bold_every]
- highlight_lines = options[:highlight_lines]
- bolding =
- if bold_every == false && highlight_lines == nil
- anchoring
- elsif highlight_lines.is_a? Enumerable
- highlight_lines = highlight_lines.to_set
- proc do |line|
- if highlight_lines.include? line
- "<strong class=\"highlighted\">#{anchoring[line]}</strong>" # highlighted line numbers in bold
- else
- anchoring[line]
- end
- end
- elsif bold_every.is_a? Integer
- raise ArgumentError, ":bolding can't be 0." if bold_every == 0
- proc do |line|
- if line % bold_every == 0
- "<strong>#{anchoring[line]}</strong>" # every bold_every-th number in bold
- else
- anchoring[line]
- end
- end
- else
- raise ArgumentError, 'Invalid value %p for :bolding; false or Integer expected.' % bold_every
- end
-
- line_count = output.count("\n")
- position_of_last_newline = output.rindex(RUBY_VERSION >= '1.9' ? /\n/ : ?\n)
- if position_of_last_newline
- after_last_newline = output[position_of_last_newline + 1 .. -1]
- ends_with_newline = after_last_newline[/\A(?:<\/span>)*\z/]
- line_count += 1 if not ends_with_newline
- end
-
- case mode
- when :inline
- max_width = (start + line_count).to_s.size
- line_number = start
- nesting = []
- output.gsub!(/^.*$\n?/) do |line|
- line.chomp!
- open = nesting.join
- line.scan(%r!<(/)?span[^>]*>?!) do |close,|
- if close
- nesting.pop
- else
- nesting << $&
- end
- end
- close = '</span>' * nesting.size
-
- line_number_text = bolding.call line_number
- indent = ' ' * (max_width - line_number.to_s.size) # TODO: Optimize (10^x)
- line_number += 1
- "<span class=\"line-numbers\">#{indent}#{line_number_text}</span>#{open}#{line}#{close}\n"
- end
-
- when :table
- line_numbers = (start ... start + line_count).map(&bolding).join("\n")
- line_numbers << "\n"
- line_numbers_table_template = Output::TABLE.apply('LINE_NUMBERS', line_numbers)
-
- output.gsub!(/<\/div>\n/, '</div>')
- output.wrap_in! line_numbers_table_template
- output.wrapped_in = :div
-
- when :list
- raise NotImplementedError, 'The :list option is no longer available. Use :table.'
-
- else
- raise ArgumentError, 'Unknown value %p for mode: expected one of %p' %
- [mode, [:table, :inline]]
- end
-
- output
- end
-
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/output.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/output.rb
deleted file mode 100644
index 298921ee2..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/html/output.rb
+++ /dev/null
@@ -1,158 +0,0 @@
-module CodeRay
-module Encoders
-
- class HTML
-
- # This module is included in the output String of the HTML Encoder.
- #
- # It provides methods like wrap, div, page etc.
- #
- # Remember to use #clone instead of #dup to keep the modules the object was
- # extended with.
- #
- # TODO: Rewrite this without monkey patching.
- module Output
-
- attr_accessor :css
-
- class << self
-
- # Raises an exception if an object that doesn't respond to to_str is extended by Output,
- # to prevent users from misuse. Use Module#remove_method to disable.
- def extended o # :nodoc:
- warn "The Output module is intended to extend instances of String, not #{o.class}." unless o.respond_to? :to_str
- end
-
- def make_stylesheet css, in_tag = false # :nodoc:
- sheet = css.stylesheet
- sheet = <<-'CSS' if in_tag
-<style type="text/css">
-#{sheet}
-</style>
- CSS
- sheet
- end
-
- def page_template_for_css css # :nodoc:
- sheet = make_stylesheet css
- PAGE.apply 'CSS', sheet
- end
-
- end
-
- def wrapped_in? element
- wrapped_in == element
- end
-
- def wrapped_in
- @wrapped_in ||= nil
- end
- attr_writer :wrapped_in
-
- def wrap_in! template
- Template.wrap! self, template, 'CONTENT'
- self
- end
-
- def apply_title! title
- self.sub!(/(<title>)(<\/title>)/) { $1 + title + $2 }
- self
- end
-
- def wrap! element, *args
- return self if not element or element == wrapped_in
- case element
- when :div
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
- wrap_in! DIV
- when :span
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
- wrap_in! SPAN
- when :page
- wrap! :div if wrapped_in? nil
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? :div
- wrap_in! Output.page_template_for_css(@css)
- if args.first.is_a?(Hash) && title = args.first[:title]
- apply_title! title
- end
- self
- when nil
- return self
- else
- raise "Unknown value %p for :wrap" % element
- end
- @wrapped_in = element
- self
- end
-
- def stylesheet in_tag = false
- Output.make_stylesheet @css, in_tag
- end
-
-#-- don't include the templates in docu
-
- class Template < String # :nodoc:
-
- def self.wrap! str, template, target
- target = Regexp.new(Regexp.escape("<%#{target}%>"))
- if template =~ target
- str[0,0] = $`
- str << $'
- else
- raise "Template target <%%%p%%> not found" % target
- end
- end
-
- def apply target, replacement
- target = Regexp.new(Regexp.escape("<%#{target}%>"))
- if self =~ target
- Template.new($` + replacement + $')
- else
- raise "Template target <%%%p%%> not found" % target
- end
- end
-
- end
-
- SPAN = Template.new '<span class="CodeRay"><%CONTENT%></span>'
-
- DIV = Template.new <<-DIV
-<div class="CodeRay">
- <div class="code"><pre><%CONTENT%></pre></div>
-</div>
- DIV
-
- TABLE = Template.new <<-TABLE
-<table class="CodeRay"><tr>
- <td class="line-numbers" title="double click to toggle" ondblclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre><%LINE_NUMBERS%></pre></td>
- <td class="code"><pre><%CONTENT%></pre></td>
-</tr></table>
- TABLE
-
- PAGE = Template.new <<-PAGE
-<!DOCTYPE html>
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title></title>
- <style type="text/css">
-.CodeRay .line-numbers a {
- text-decoration: inherit;
- color: inherit;
-}
-<%CSS%>
- </style>
-</head>
-<body style="background-color: white;">
-
-<%CONTENT%>
-</body>
-</html>
- PAGE
-
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/json.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/json.rb
deleted file mode 100644
index a9e40dc60..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/json.rb
+++ /dev/null
@@ -1,83 +0,0 @@
-module CodeRay
-module Encoders
-
- # A simple JSON Encoder.
- #
- # Example:
- # CodeRay.scan('puts "Hello world!"', :ruby).json
- # yields
- # [
- # {"type"=>"text", "text"=>"puts", "kind"=>"ident"},
- # {"type"=>"text", "text"=>" ", "kind"=>"space"},
- # {"type"=>"block", "action"=>"open", "kind"=>"string"},
- # {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
- # {"type"=>"text", "text"=>"Hello world!", "kind"=>"content"},
- # {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
- # {"type"=>"block", "action"=>"close", "kind"=>"string"},
- # ]
- class JSON < Encoder
-
- begin
- require 'json'
- rescue LoadError
- begin
- require 'rubygems' unless defined? Gem
- gem 'json'
- require 'json'
- rescue LoadError
- $stderr.puts "The JSON encoder needs the JSON library.\n" \
- "Please gem install json."
- raise
- end
- end
-
- register_for :json
- FILE_EXTENSION = 'json'
-
- protected
- def setup options
- super
-
- @first = true
- @out << '['
- end
-
- def finish options
- @out << ']'
- end
-
- def append data
- if @first
- @first = false
- else
- @out << ','
- end
-
- @out << data.to_json
- end
-
- public
- def text_token text, kind
- append :type => 'text', :text => text, :kind => kind
- end
-
- def begin_group kind
- append :type => 'block', :action => 'open', :kind => kind
- end
-
- def end_group kind
- append :type => 'block', :action => 'close', :kind => kind
- end
-
- def begin_line kind
- append :type => 'block', :action => 'begin_line', :kind => kind
- end
-
- def end_line kind
- append :type => 'block', :action => 'end_line', :kind => kind
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/lines_of_code.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/lines_of_code.rb
deleted file mode 100644
index 5f8422f3d..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/lines_of_code.rb
+++ /dev/null
@@ -1,45 +0,0 @@
-module CodeRay
-module Encoders
-
- # Counts the LoC (Lines of Code). Returns an Integer >= 0.
- #
- # Alias: +loc+
- #
- # Everything that is not comment, markup, doctype/shebang, or an empty line,
- # is considered to be code.
- #
- # For example,
- # * HTML files not containing JavaScript have 0 LoC
- # * in a Java class without comments, LoC is the number of non-empty lines
- #
- # A Scanner class should define the token kinds that are not code in the
- # KINDS_NOT_LOC constant, which defaults to [:comment, :doctype].
- class LinesOfCode < TokenKindFilter
-
- register_for :lines_of_code
-
- NON_EMPTY_LINE = /^\s*\S.*$/
-
- protected
-
- def setup options
- if scanner
- kinds_not_loc = scanner.class::KINDS_NOT_LOC
- else
- warn "Tokens have no associated scanner, counting all nonempty lines." if $VERBOSE
- kinds_not_loc = CodeRay::Scanners::Scanner::KINDS_NOT_LOC
- end
-
- options[:exclude] = kinds_not_loc
-
- super options
- end
-
- def finish options
- output @tokens.text.scan(NON_EMPTY_LINE).size
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/null.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/null.rb
deleted file mode 100644
index 73ba47d35..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/null.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-module CodeRay
-module Encoders
-
- # = Null Encoder
- #
- # Does nothing and returns an empty string.
- class Null < Encoder
-
- register_for :null
-
- def text_token text, kind
- # do nothing
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/page.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/page.rb
deleted file mode 100644
index 800e73f32..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/page.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-module CodeRay
-module Encoders
-
- load :html
-
- # Wraps the output into a HTML page, using CSS classes and
- # line numbers in the table format by default.
- #
- # See Encoders::HTML for available options.
- class Page < HTML
-
- FILE_EXTENSION = 'html'
-
- register_for :page
-
- DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
- :css => :class,
- :wrap => :page,
- :line_numbers => :table
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/span.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/span.rb
deleted file mode 100644
index da705bdc0..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/span.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-module CodeRay
-module Encoders
-
- load :html
-
- # Wraps HTML output into a SPAN element, using inline styles by default.
- #
- # See Encoders::HTML for available options.
- class Span < HTML
-
- FILE_EXTENSION = 'span.html'
-
- register_for :span
-
- DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
- :css => :style,
- :wrap => :span,
- :line_numbers => false
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/statistic.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/statistic.rb
deleted file mode 100644
index 2315d9e0c..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/statistic.rb
+++ /dev/null
@@ -1,96 +0,0 @@
-module CodeRay
-module Encoders
-
- # Makes a statistic for the given tokens.
- #
- # Alias: +stats+
- class Statistic < Encoder
-
- register_for :statistic
-
- attr_reader :type_stats, :real_token_count # :nodoc:
-
- TypeStats = Struct.new :count, :size # :nodoc:
-
- protected
-
- def setup options
- super
-
- @type_stats = Hash.new { |h, k| h[k] = TypeStats.new 0, 0 }
- @real_token_count = 0
- end
-
- STATS = <<-STATS # :nodoc:
-
-Code Statistics
-
-Tokens %8d
- Non-Whitespace %8d
-Bytes Total %8d
-
-Token Types (%d):
- type count ratio size (average)
--------------------------------------------------------------
-%s
- STATS
-
- TOKEN_TYPES_ROW = <<-TKR # :nodoc:
- %-20s %8d %6.2f %% %5.1f
- TKR
-
- def finish options
- all = @type_stats['TOTAL']
- all_count, all_size = all.count, all.size
- @type_stats.each do |type, stat|
- stat.size /= stat.count.to_f
- end
- types_stats = @type_stats.sort_by { |k, v| [-v.count, k.to_s] }.map do |k, v|
- TOKEN_TYPES_ROW % [k, v.count, 100.0 * v.count / all_count, v.size]
- end.join
- @out << STATS % [
- all_count, @real_token_count, all_size,
- @type_stats.delete_if { |k, v| k.is_a? String }.size,
- types_stats
- ]
-
- super
- end
-
- public
-
- def text_token text, kind
- @real_token_count += 1 unless kind == :space
- @type_stats[kind].count += 1
- @type_stats[kind].size += text.size
- @type_stats['TOTAL'].size += text.size
- @type_stats['TOTAL'].count += 1
- end
-
- # TODO Hierarchy handling
- def begin_group kind
- block_token ':begin_group', kind
- end
-
- def end_group kind
- block_token ':end_group', kind
- end
-
- def begin_line kind
- block_token ':begin_line', kind
- end
-
- def end_line kind
- block_token ':end_line', kind
- end
-
- def block_token action, kind
- @type_stats['TOTAL'].count += 1
- @type_stats[action].count += 1
- @type_stats[kind].count += 1
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/terminal.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/terminal.rb
deleted file mode 100644
index 15c8a5214..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/terminal.rb
+++ /dev/null
@@ -1,179 +0,0 @@
-module CodeRay
- module Encoders
-
- # Outputs code highlighted for a color terminal.
- #
- # Note: This encoder is in beta. It currently doesn't use the Styles.
- #
- # Alias: +term+
- #
- # == Authors & License
- #
- # By Rob Aldred (http://robaldred.co.uk)
- #
- # Based on idea by Nathan Weizenbaum (http://nex-3.com)
- #
- # MIT License (http://www.opensource.org/licenses/mit-license.php)
- class Terminal < Encoder
-
- register_for :terminal
-
- TOKEN_COLORS = {
- :annotation => '35',
- :attribute_name => '33',
- :attribute_value => '31',
- :binary => '1;35',
- :char => {
- :self => '36', :delimiter => '34'
- },
- :class => '1;35',
- :class_variable => '36',
- :color => '32',
- :comment => '37',
- :complex => '34',
- :constant => ['34', '4'],
- :decoration => '35',
- :definition => '1;32',
- :directive => ['32', '4'],
- :doc => '46',
- :doctype => '1;30',
- :doc_string => ['31', '4'],
- :entity => '33',
- :error => ['1;33', '41'],
- :exception => '1;31',
- :float => '1;35',
- :function => '1;34',
- :global_variable => '42',
- :hex => '1;36',
- :include => '33',
- :integer => '1;34',
- :key => '35',
- :label => '1;15',
- :local_variable => '33',
- :octal => '1;35',
- :operator_name => '1;29',
- :predefined_constant => '1;36',
- :predefined_type => '1;30',
- :predefined => ['4', '1;34'],
- :preprocessor => '36',
- :pseudo_class => '34',
- :regexp => {
- :self => '31',
- :content => '31',
- :delimiter => '1;29',
- :modifier => '35',
- :function => '1;29'
- },
- :reserved => '1;31',
- :shell => {
- :self => '42',
- :content => '1;29',
- :delimiter => '37',
- },
- :string => {
- :self => '32',
- :modifier => '1;32',
- :escape => '1;36',
- :delimiter => '1;32',
- },
- :symbol => '1;32',
- :tag => '34',
- :type => '1;34',
- :value => '36',
- :variable => '34',
-
- :insert => '42',
- :delete => '41',
- :change => '44',
- :head => '45'
- }
- TOKEN_COLORS[:keyword] = TOKEN_COLORS[:reserved]
- TOKEN_COLORS[:method] = TOKEN_COLORS[:function]
- TOKEN_COLORS[:imaginary] = TOKEN_COLORS[:complex]
- TOKEN_COLORS[:begin_group] = TOKEN_COLORS[:end_group] =
- TOKEN_COLORS[:escape] = TOKEN_COLORS[:delimiter]
-
- protected
-
- def setup(options)
- super
- @opened = []
- @subcolors = nil
- end
-
- public
-
- def text_token text, kind
- if color = (@subcolors || TOKEN_COLORS)[kind]
- if Hash === color
- if color[:self]
- color = color[:self]
- else
- @out << text
- return
- end
- end
-
- @out << ansi_colorize(color)
- @out << text.gsub("\n", ansi_clear + "\n" + ansi_colorize(color))
- @out << ansi_clear
- @out << ansi_colorize(@subcolors[:self]) if @subcolors && @subcolors[:self]
- else
- @out << text
- end
- end
-
- def begin_group kind
- @opened << kind
- @out << open_token(kind)
- end
- alias begin_line begin_group
-
- def end_group kind
- if @opened.empty?
- # nothing to close
- else
- @opened.pop
- @out << ansi_clear
- @out << open_token(@opened.last)
- end
- end
-
- def end_line kind
- if @opened.empty?
- # nothing to close
- else
- @opened.pop
- # whole lines to be highlighted,
- # eg. added/modified/deleted lines in a diff
- @out << "\t" * 100 + ansi_clear
- @out << open_token(@opened.last)
- end
- end
-
- private
-
- def open_token kind
- if color = TOKEN_COLORS[kind]
- if Hash === color
- @subcolors = color
- ansi_colorize(color[:self]) if color[:self]
- else
- @subcolors = {}
- ansi_colorize(color)
- end
- else
- @subcolors = nil
- ''
- end
- end
-
- def ansi_colorize(color)
- Array(color).map { |c| "\e[#{c}m" }.join
- end
- def ansi_clear
- ansi_colorize(0)
- end
- end
- end
-end \ No newline at end of file
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/text.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/text.rb
deleted file mode 100644
index 15c66f9c7..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/text.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-module CodeRay
-module Encoders
-
- # Concats the tokens into a single string, resulting in the original
- # code string if no tokens were removed.
- #
- # Alias: +plain+, +plaintext+
- #
- # == Options
- #
- # === :separator
- # A separator string to join the tokens.
- #
- # Default: empty String
- class Text < Encoder
-
- register_for :text
-
- FILE_EXTENSION = 'txt'
-
- DEFAULT_OPTIONS = {
- :separator => nil
- }
-
- def text_token text, kind
- super
-
- if @first
- @first = false
- else
- @out << @sep
- end if @sep
- end
-
- protected
- def setup options
- super
-
- @first = true
- @sep = options[:separator]
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/token_kind_filter.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/token_kind_filter.rb
deleted file mode 100644
index 4773ea34e..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/token_kind_filter.rb
+++ /dev/null
@@ -1,111 +0,0 @@
-module CodeRay
-module Encoders
-
- load :filter
-
- # A Filter that selects tokens based on their token kind.
- #
- # == Options
- #
- # === :exclude
- #
- # One or many symbols (in an Array) which shall be excluded.
- #
- # Default: []
- #
- # === :include
- #
- # One or many symbols (in an array) which shall be included.
- #
- # Default: :all, which means all tokens are included.
- #
- # Exclusion wins over inclusion.
- #
- # See also: CommentFilter
- class TokenKindFilter < Filter
-
- register_for :token_kind_filter
-
- DEFAULT_OPTIONS = {
- :exclude => [],
- :include => :all
- }
-
- protected
- def setup options
- super
-
- @group_excluded = false
- @exclude = options[:exclude]
- @exclude = Array(@exclude) unless @exclude == :all
- @include = options[:include]
- @include = Array(@include) unless @include == :all
- end
-
- def include_text_token? text, kind
- include_group? kind
- end
-
- def include_group? kind
- (@include == :all || @include.include?(kind)) &&
- !(@exclude == :all || @exclude.include?(kind))
- end
-
- public
-
- # Add the token to the output stream if +kind+ matches the conditions.
- def text_token text, kind
- super if !@group_excluded && include_text_token?(text, kind)
- end
-
- # Add the token group to the output stream if +kind+ matches the
- # conditions.
- #
- # If it does not, all tokens inside the group are excluded from the
- # stream, even if their kinds match.
- def begin_group kind
- if @group_excluded
- @group_excluded += 1
- elsif include_group? kind
- super
- else
- @group_excluded = 1
- end
- end
-
- # See +begin_group+.
- def begin_line kind
- if @group_excluded
- @group_excluded += 1
- elsif include_group? kind
- super
- else
- @group_excluded = 1
- end
- end
-
- # Take care of re-enabling the delegation of tokens to the output stream
- # if an exluded group has ended.
- def end_group kind
- if @group_excluded
- @group_excluded -= 1
- @group_excluded = false if @group_excluded.zero?
- else
- super
- end
- end
-
- # See +end_group+.
- def end_line kind
- if @group_excluded
- @group_excluded -= 1
- @group_excluded = false if @group_excluded.zero?
- else
- super
- end
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/xml.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/xml.rb
deleted file mode 100644
index 3d306a608..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/xml.rb
+++ /dev/null
@@ -1,72 +0,0 @@
-module CodeRay
-module Encoders
-
- # = XML Encoder
- #
- # Uses REXML. Very slow.
- class XML < Encoder
-
- register_for :xml
-
- FILE_EXTENSION = 'xml'
-
- autoload :REXML, 'rexml/document'
-
- DEFAULT_OPTIONS = {
- :tab_width => 8,
- :pretty => -1,
- :transitive => false,
- }
-
- protected
- def setup options
- super
-
- @doc = REXML::Document.new
- @doc << REXML::XMLDecl.new
- @tab_width = options[:tab_width]
- @root = @node = @doc.add_element('coderay-tokens')
- end
-
- def finish options
- @doc.write @out, options[:pretty], options[:transitive], true
-
- super
- end
-
- public
- def text_token text, kind
- if kind == :space
- token = @node
- else
- token = @node.add_element kind.to_s
- end
- text.scan(/(\x20+)|(\t+)|(\n)|[^\x20\t\n]+/) do |space, tab, nl|
- case
- when space
- token << REXML::Text.new(space, true)
- when tab
- token << REXML::Text.new(tab, true)
- when nl
- token << REXML::Text.new(nl, true)
- else
- token << REXML::Text.new($&)
- end
- end
- end
-
- def begin_group kind
- @node = @node.add_element kind.to_s
- end
-
- def end_group kind
- if @node == @root
- raise 'no token to close!'
- end
- @node = @node.parent
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/yaml.rb b/vendor/gems/coderay-1.0.0/lib/coderay/encoders/yaml.rb
deleted file mode 100644
index ba6e71555..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/encoders/yaml.rb
+++ /dev/null
@@ -1,50 +0,0 @@
-autoload :YAML, 'yaml'
-
-module CodeRay
-module Encoders
-
- # = YAML Encoder
- #
- # Slow.
- class YAML < Encoder
-
- register_for :yaml
-
- FILE_EXTENSION = 'yaml'
-
- protected
- def setup options
- super
-
- @data = []
- end
-
- def finish options
- output ::YAML.dump(@data)
- end
-
- public
- def text_token text, kind
- @data << [text, kind]
- end
-
- def begin_group kind
- @data << [:begin_group, kind]
- end
-
- def end_group kind
- @data << [:end_group, kind]
- end
-
- def begin_line kind
- @data << [:begin_line, kind]
- end
-
- def end_line kind
- @data << [:end_line, kind]
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/for_redcloth.rb b/vendor/gems/coderay-1.0.0/lib/coderay/for_redcloth.rb
deleted file mode 100644
index f9df32be6..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/for_redcloth.rb
+++ /dev/null
@@ -1,95 +0,0 @@
-module CodeRay
-
- # A little hack to enable CodeRay highlighting in RedCloth.
- #
- # Usage:
- # require 'coderay'
- # require 'coderay/for_redcloth'
- # RedCloth.new('@[ruby]puts "Hello, World!"@').to_html
- #
- # Make sure you have RedCloth 4.0.3 activated, for example by calling
- # require 'rubygems'
- # before RedCloth is loaded and before calling CodeRay.for_redcloth.
- module ForRedCloth
-
- def self.install
- gem 'RedCloth', '>= 4.0.3' if defined? gem
- require 'redcloth'
- unless RedCloth::VERSION.to_s >= '4.0.3'
- if defined? gem
- raise 'CodeRay.for_redcloth needs RedCloth version 4.0.3 or later. ' +
- "You have #{RedCloth::VERSION}. Please gem install RedCloth."
- else
- $".delete 'redcloth.rb' # sorry, but it works
- require 'rubygems'
- return install # retry
- end
- end
- unless RedCloth::VERSION.to_s >= '4.2.2'
- warn 'CodeRay.for_redcloth works best with RedCloth version 4.2.2 or later.'
- end
- RedCloth::TextileDoc.send :include, ForRedCloth::TextileDoc
- RedCloth::Formatters::HTML.module_eval do
- def unescape(html) # :nodoc:
- replacements = {
- '&amp;' => '&',
- '&quot;' => '"',
- '&gt;' => '>',
- '&lt;' => '<',
- }
- html.gsub(/&(?:amp|quot|[gl]t);/) { |entity| replacements[entity] }
- end
- undef code, bc_open, bc_close, escape_pre
- def code(opts) # :nodoc:
- opts[:block] = true
- if !opts[:lang] && RedCloth::VERSION.to_s >= '4.2.0'
- # simulating pre-4.2 behavior
- if opts[:text].sub!(/\A\[(\w+)\]/, '')
- if CodeRay::Scanners[$1].lang == :text
- opts[:text] = $& + opts[:text]
- else
- opts[:lang] = $1
- end
- end
- end
- if opts[:lang] && !filter_coderay
- require 'coderay'
- @in_bc ||= nil
- format = @in_bc ? :div : :span
- opts[:text] = unescape(opts[:text]) unless @in_bc
- highlighted_code = CodeRay.encode opts[:text], opts[:lang], format
- highlighted_code.sub!(/\A<(span|div)/) { |m| m + pba(@in_bc || opts) }
- highlighted_code
- else
- "<code#{pba(opts)}>#{opts[:text]}</code>"
- end
- end
- def bc_open(opts) # :nodoc:
- opts[:block] = true
- @in_bc = opts
- opts[:lang] ? '' : "<pre#{pba(opts)}>"
- end
- def bc_close(opts) # :nodoc:
- opts = @in_bc
- @in_bc = nil
- opts[:lang] ? '' : "</pre>\n"
- end
- def escape_pre(text) # :nodoc:
- if @in_bc ||= nil
- text
- else
- html_esc(text, :html_escape_preformatted)
- end
- end
- end
- end
-
- module TextileDoc # :nodoc:
- attr_accessor :filter_coderay
- end
-
- end
-
-end
-
-CodeRay::ForRedCloth.install \ No newline at end of file
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/helpers/file_type.rb b/vendor/gems/coderay-1.0.0/lib/coderay/helpers/file_type.rb
deleted file mode 100644
index 7b9939cef..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/helpers/file_type.rb
+++ /dev/null
@@ -1,141 +0,0 @@
-module CodeRay
-
- # = FileType
- #
- # A simple filetype recognizer.
- #
- # == Usage
- #
- # # determine the type of the given
- # lang = FileType[file_name]
- #
- # # return :text if the file type is unknown
- # lang = FileType.fetch file_name, :text
- #
- # # try the shebang line, too
- # lang = FileType.fetch file_name, :text, true
- module FileType
-
- UnknownFileType = Class.new Exception
-
- class << self
-
- # Try to determine the file type of the file.
- #
- # +filename+ is a relative or absolute path to a file.
- #
- # The file itself is only accessed when +read_shebang+ is set to true.
- # That means you can get filetypes from files that don't exist.
- def [] filename, read_shebang = false
- name = File.basename filename
- ext = File.extname(name).sub(/^\./, '') # from last dot, delete the leading dot
- ext2 = filename.to_s[/\.(.*)/, 1] # from first dot
-
- type =
- TypeFromExt[ext] ||
- TypeFromExt[ext.downcase] ||
- (TypeFromExt[ext2] if ext2) ||
- (TypeFromExt[ext2.downcase] if ext2) ||
- TypeFromName[name] ||
- TypeFromName[name.downcase]
- type ||= shebang(filename) if read_shebang
-
- type
- end
-
- # This works like Hash#fetch.
- #
- # If the filetype cannot be found, the +default+ value
- # is returned.
- def fetch filename, default = nil, read_shebang = false
- if default && block_given?
- warn 'Block supersedes default value argument; use either.'
- end
-
- if type = self[filename, read_shebang]
- type
- else
- return yield if block_given?
- return default if default
- raise UnknownFileType, 'Could not determine type of %p.' % filename
- end
- end
-
- protected
-
- def shebang filename
- return unless File.exist? filename
- File.open filename, 'r' do |f|
- if first_line = f.gets
- if type = first_line[TypeFromShebang]
- type.to_sym
- end
- end
- end
- end
-
- end
-
- TypeFromExt = {
- 'c' => :c,
- 'cfc' => :xml,
- 'cfm' => :xml,
- 'clj' => :clojure,
- 'css' => :css,
- 'diff' => :diff,
- 'dpr' => :delphi,
- 'gemspec' => :ruby,
- 'groovy' => :groovy,
- 'gvy' => :groovy,
- 'h' => :c,
- 'haml' => :haml,
- 'htm' => :page,
- 'html' => :page,
- 'html.erb' => :erb,
- 'java' => :java,
- 'js' => :java_script,
- 'json' => :json,
- 'mab' => :ruby,
- 'pas' => :delphi,
- 'patch' => :diff,
- 'php' => :php,
- 'php3' => :php,
- 'php4' => :php,
- 'php5' => :php,
- 'prawn' => :ruby,
- 'py' => :python,
- 'py3' => :python,
- 'pyw' => :python,
- 'rake' => :ruby,
- 'raydebug' => :raydebug,
- 'rb' => :ruby,
- 'rbw' => :ruby,
- 'rhtml' => :erb,
- 'rjs' => :ruby,
- 'rpdf' => :ruby,
- 'ru' => :ruby,
- 'rxml' => :ruby,
- # 'sch' => :scheme,
- 'sql' => :sql,
- # 'ss' => :scheme,
- 'xhtml' => :page,
- 'xml' => :xml,
- 'yaml' => :yaml,
- 'yml' => :yaml,
- }
- for cpp_alias in %w[cc cpp cp cxx c++ C hh hpp h++ cu]
- TypeFromExt[cpp_alias] = :cpp
- end
-
- TypeFromShebang = /\b(?:ruby|perl|python|sh)\b/
-
- TypeFromName = {
- 'Capfile' => :ruby,
- 'Rakefile' => :ruby,
- 'Rantfile' => :ruby,
- 'Gemfile' => :ruby,
- }
-
- end
-
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/helpers/gzip.rb b/vendor/gems/coderay-1.0.0/lib/coderay/helpers/gzip.rb
deleted file mode 100644
index 245014a58..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/helpers/gzip.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-module CodeRay
-
- # A simplified interface to the gzip library +zlib+ (from the Ruby Standard Library.)
- module GZip
-
- require 'zlib'
-
- # The default zipping level. 7 zips good and fast.
- DEFAULT_GZIP_LEVEL = 7
-
- # Unzips the given string +s+.
- #
- # Example:
- # require 'gzip_simple'
- # print GZip.gunzip(File.read('adresses.gz'))
- def GZip.gunzip s
- Zlib::Inflate.inflate s
- end
-
- # Zips the given string +s+.
- #
- # Example:
- # require 'gzip_simple'
- # File.open('adresses.gz', 'w') do |file
- # file.write GZip.gzip('Mum: 0123 456 789', 9)
- # end
- #
- # If you provide a +level+, you can control how strong
- # the string is compressed:
- # - 0: no compression, only convert to gzip format
- # - 1: compress fast
- # - 7: compress more, but still fast (default)
- # - 8: compress more, slower
- # - 9: compress best, very slow
- def GZip.gzip s, level = DEFAULT_GZIP_LEVEL
- Zlib::Deflate.new(level).deflate s, Zlib::FINISH
- end
-
- end
-
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/helpers/plugin.rb b/vendor/gems/coderay-1.0.0/lib/coderay/helpers/plugin.rb
deleted file mode 100644
index 06c12336a..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/helpers/plugin.rb
+++ /dev/null
@@ -1,284 +0,0 @@
-module CodeRay
-
- # = PluginHost
- #
- # A simple subclass/subfolder plugin system.
- #
- # Example:
- # class Generators
- # extend PluginHost
- # plugin_path 'app/generators'
- # end
- #
- # class Generator
- # extend Plugin
- # PLUGIN_HOST = Generators
- # end
- #
- # class FancyGenerator < Generator
- # register_for :fancy
- # end
- #
- # Generators[:fancy] #-> FancyGenerator
- # # or
- # CodeRay.require_plugin 'Generators/fancy'
- # # or
- # Generators::Fancy
- module PluginHost
-
- # Raised if Encoders::[] fails because:
- # * a file could not be found
- # * the requested Plugin is not registered
- PluginNotFound = Class.new LoadError
- HostNotFound = Class.new LoadError
-
- PLUGIN_HOSTS = []
- PLUGIN_HOSTS_BY_ID = {} # dummy hash
-
- # Loads all plugins using list and load.
- def load_all
- for plugin in list
- load plugin
- end
- end
-
- # Returns the Plugin for +id+.
- #
- # Example:
- # yaml_plugin = MyPluginHost[:yaml]
- def [] id, *args, &blk
- plugin = validate_id(id)
- begin
- plugin = plugin_hash.[] plugin, *args, &blk
- end while plugin.is_a? Symbol
- plugin
- end
-
- alias load []
-
- # Tries to +load+ the missing plugin by translating +const+ to the
- # underscore form (eg. LinesOfCode becomes lines_of_code).
- def const_missing const
- id = const.to_s.
- gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
- gsub(/([a-z\d])([A-Z])/,'\1_\2').
- downcase
- load id
- end
-
- class << self
-
- # Adds the module/class to the PLUGIN_HOSTS list.
- def extended mod
- PLUGIN_HOSTS << mod
- end
-
- end
-
- # The path where the plugins can be found.
- def plugin_path *args
- unless args.empty?
- @plugin_path = File.expand_path File.join(*args)
- end
- @plugin_path ||= ''
- end
-
- # Map a plugin_id to another.
- #
- # Usage: Put this in a file plugin_path/_map.rb.
- #
- # class MyColorHost < PluginHost
- # map :navy => :dark_blue,
- # :maroon => :brown,
- # :luna => :moon
- # end
- def map hash
- for from, to in hash
- from = validate_id from
- to = validate_id to
- plugin_hash[from] = to unless plugin_hash.has_key? from
- end
- end
-
- # Define the default plugin to use when no plugin is found
- # for a given id, or return the default plugin.
- #
- # See also map.
- #
- # class MyColorHost < PluginHost
- # map :navy => :dark_blue
- # default :gray
- # end
- #
- # MyColorHost.default # loads and returns the Gray plugin
- def default id = nil
- if id
- id = validate_id id
- raise "The default plugin can't be named \"default\"." if id == :default
- plugin_hash[:default] = id
- else
- load :default
- end
- end
-
- # Every plugin must register itself for +id+ by calling register_for,
- # which calls this method.
- #
- # See Plugin#register_for.
- def register plugin, id
- plugin_hash[validate_id(id)] = plugin
- end
-
- # A Hash of plugion_id => Plugin pairs.
- def plugin_hash
- @plugin_hash ||= make_plugin_hash
- end
-
- # Returns an array of all .rb files in the plugin path.
- #
- # The extension .rb is not included.
- def list
- Dir[path_to('*')].select do |file|
- File.basename(file)[/^(?!_)\w+\.rb$/]
- end.map do |file|
- File.basename(file, '.rb').to_sym
- end
- end
-
- # Returns an array of all Plugins.
- #
- # Note: This loads all plugins using load_all.
- def all_plugins
- load_all
- plugin_hash.values.grep(Class)
- end
-
- # Loads the map file (see map).
- #
- # This is done automatically when plugin_path is called.
- def load_plugin_map
- mapfile = path_to '_map'
- @plugin_map_loaded = true
- if File.exist? mapfile
- require mapfile
- true
- else
- false
- end
- end
-
- protected
-
- # Return a plugin hash that automatically loads plugins.
- def make_plugin_hash
- @plugin_map_loaded ||= false
- Hash.new do |h, plugin_id|
- id = validate_id(plugin_id)
- path = path_to id
- begin
- raise LoadError, "#{path} not found" unless File.exist? path
- require path
- rescue LoadError => boom
- if @plugin_map_loaded
- if h.has_key?(:default)
- warn '%p could not load plugin %p; falling back to %p' % [self, id, h[:default]]
- h[:default]
- else
- raise PluginNotFound, '%p could not load plugin %p: %s' % [self, id, boom]
- end
- else
- load_plugin_map
- h[plugin_id]
- end
- else
- # Plugin should have registered by now
- if h.has_key? id
- h[id]
- else
- raise PluginNotFound, "No #{self.name} plugin for #{id.inspect} found in #{path}."
- end
- end
- end
- end
-
- # Returns the expected path to the plugin file for the given id.
- def path_to plugin_id
- File.join plugin_path, "#{plugin_id}.rb"
- end
-
- # Converts +id+ to a Symbol if it is a String,
- # or returns +id+ if it already is a Symbol.
- #
- # Raises +ArgumentError+ for all other objects, or if the
- # given String includes non-alphanumeric characters (\W).
- def validate_id id
- if id.is_a? Symbol or id.nil?
- id
- elsif id.is_a? String
- if id[/\w+/] == id
- id.downcase.to_sym
- else
- raise ArgumentError, "Invalid id given: #{id}"
- end
- else
- raise ArgumentError, "String or Symbol expected, but #{id.class} given."
- end
- end
-
- end
-
-
- # = Plugin
- #
- # Plugins have to include this module.
- #
- # IMPORTANT: Use extend for this module.
- #
- # See CodeRay::PluginHost for examples.
- module Plugin
-
- attr_reader :plugin_id
-
- # Register this class for the given +id+.
- #
- # Example:
- # class MyPlugin < PluginHost::BaseClass
- # register_for :my_id
- # ...
- # end
- #
- # See PluginHost.register.
- def register_for id
- @plugin_id = id
- plugin_host.register self, id
- end
-
- # Returns the title of the plugin, or sets it to the
- # optional argument +title+.
- def title title = nil
- if title
- @title = title.to_s
- else
- @title ||= name[/([^:]+)$/, 1]
- end
- end
-
- # The PluginHost for this Plugin class.
- def plugin_host host = nil
- if host.is_a? PluginHost
- const_set :PLUGIN_HOST, host
- end
- self::PLUGIN_HOST
- end
-
- def aliases
- plugin_host.load_plugin_map
- plugin_host.plugin_hash.inject [] do |aliases, (key, _)|
- aliases << key if plugin_host[key] == self
- aliases
- end
- end
-
- end
-
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/helpers/word_list.rb b/vendor/gems/coderay-1.0.0/lib/coderay/helpers/word_list.rb
deleted file mode 100644
index ea969c3ee..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/helpers/word_list.rb
+++ /dev/null
@@ -1,77 +0,0 @@
-module CodeRay
-
- # = WordList
- #
- # <b>A Hash subclass designed for mapping word lists to token types.</b>
- #
- # Copyright (c) 2006-2011 by murphy (Kornelius Kalnbach) <murphy rubychan de>
- #
- # License:: LGPL / ask the author
- # Version:: 2.0 (2011-05-08)
- #
- # A WordList is a Hash with some additional features.
- # It is intended to be used for keyword recognition.
- #
- # WordList is optimized to be used in Scanners,
- # typically to decide whether a given ident is a special token.
- #
- # For case insensitive words use WordList::CaseIgnoring.
- #
- # Example:
- #
- # # define word arrays
- # RESERVED_WORDS = %w[
- # asm break case continue default do else
- # ]
- #
- # PREDEFINED_TYPES = %w[
- # int long short char void
- # ]
- #
- # # make a WordList
- # IDENT_KIND = WordList.new(:ident).
- # add(RESERVED_WORDS, :reserved).
- # add(PREDEFINED_TYPES, :predefined_type)
- #
- # ...
- #
- # def scan_tokens tokens, options
- # ...
- #
- # elsif scan(/[A-Za-z_][A-Za-z_0-9]*/)
- # # use it
- # kind = IDENT_KIND[match]
- # ...
- class WordList < Hash
-
- # Create a new WordList with +default+ as default value.
- def initialize default = false
- super default
- end
-
- # Add words to the list and associate them with +value+.
- #
- # Returns +self+, so you can concat add calls.
- def add words, value = true
- words.each { |word| self[word] = value }
- self
- end
-
- end
-
-
- # A CaseIgnoring WordList is like a WordList, only that
- # keys are compared case-insensitively (normalizing keys using +downcase+).
- class WordList::CaseIgnoring < WordList
-
- def [] key
- super key.downcase
- end
-
- def []= key, value
- super key.downcase, value
- end
-
- end
-
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanner.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanner.rb
deleted file mode 100644
index 7ecbe4f0a..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanner.rb
+++ /dev/null
@@ -1,323 +0,0 @@
-# encoding: utf-8
-require 'strscan'
-
-module CodeRay
-
- autoload :WordList, 'coderay/helpers/word_list'
-
- # = Scanners
- #
- # This module holds the Scanner class and its subclasses.
- # For example, the Ruby scanner is named CodeRay::Scanners::Ruby
- # can be found in coderay/scanners/ruby.
- #
- # Scanner also provides methods and constants for the register
- # mechanism and the [] method that returns the Scanner class
- # belonging to the given lang.
- #
- # See PluginHost.
- module Scanners
- extend PluginHost
- plugin_path File.dirname(__FILE__), 'scanners'
-
-
- # = Scanner
- #
- # The base class for all Scanners.
- #
- # It is a subclass of Ruby's great +StringScanner+, which
- # makes it easy to access the scanning methods inside.
- #
- # It is also +Enumerable+, so you can use it like an Array of
- # Tokens:
- #
- # require 'coderay'
- #
- # c_scanner = CodeRay::Scanners[:c].new "if (*p == '{') nest++;"
- #
- # for text, kind in c_scanner
- # puts text if kind == :operator
- # end
- #
- # # prints: (*==)++;
- #
- # OK, this is a very simple example :)
- # You can also use +map+, +any?+, +find+ and even +sort_by+,
- # if you want.
- class Scanner < StringScanner
-
- extend Plugin
- plugin_host Scanners
-
- # Raised if a Scanner fails while scanning
- ScanError = Class.new StandardError
-
- # The default options for all scanner classes.
- #
- # Define @default_options for subclasses.
- DEFAULT_OPTIONS = { }
-
- KINDS_NOT_LOC = [:comment, :doctype, :docstring]
-
- attr_accessor :state
-
- class << self
-
- # Normalizes the given code into a string with UNIX newlines, in the
- # scanner's internal encoding, with invalid and undefined charachters
- # replaced by placeholders. Always returns a new object.
- def normalize code
- # original = code
- code = code.to_s unless code.is_a? ::String
- return code if code.empty?
-
- if code.respond_to? :encoding
- code = encode_with_encoding code, self.encoding
- else
- code = to_unix code
- end
- # code = code.dup if code.eql? original
- code
- end
-
- # The typical filename suffix for this scanner's language.
- def file_extension extension = lang
- @file_extension ||= extension.to_s
- end
-
- # The encoding used internally by this scanner.
- def encoding name = 'UTF-8'
- @encoding ||= defined?(Encoding.find) && Encoding.find(name)
- end
-
- # The lang of this Scanner class, which is equal to its Plugin ID.
- def lang
- @plugin_id
- end
-
- protected
-
- def encode_with_encoding code, target_encoding
- if code.encoding == target_encoding
- if code.valid_encoding?
- return to_unix(code)
- else
- source_encoding = guess_encoding code
- end
- else
- source_encoding = code.encoding
- end
- # print "encode_with_encoding from #{source_encoding} to #{target_encoding}"
- code.encode target_encoding, source_encoding, :universal_newline => true, :undef => :replace, :invalid => :replace
- end
-
- def to_unix code
- code.index(?\r) ? code.gsub(/\r\n?/, "\n") : code
- end
-
- def guess_encoding s
- #:nocov:
- IO.popen("file -b --mime -", "w+") do |file|
- file.write s[0, 1024]
- file.close_write
- begin
- Encoding.find file.gets[/charset=([-\w]+)/, 1]
- rescue ArgumentError
- Encoding::BINARY
- end
- end
- #:nocov:
- end
-
- end
-
- # Create a new Scanner.
- #
- # * +code+ is the input String and is handled by the superclass
- # StringScanner.
- # * +options+ is a Hash with Symbols as keys.
- # It is merged with the default options of the class (you can
- # overwrite default options here.)
- #
- # Else, a Tokens object is used.
- def initialize code = '', options = {}
- if self.class == Scanner
- raise NotImplementedError, "I am only the basic Scanner class. I can't scan anything. :( Use my subclasses."
- end
-
- @options = self.class::DEFAULT_OPTIONS.merge options
-
- super self.class.normalize(code)
-
- @tokens = options[:tokens] || Tokens.new
- @tokens.scanner = self if @tokens.respond_to? :scanner=
-
- setup
- end
-
- # Sets back the scanner. Subclasses should redefine the reset_instance
- # method instead of this one.
- def reset
- super
- reset_instance
- end
-
- # Set a new string to be scanned.
- def string= code
- code = self.class.normalize(code)
- super code
- reset_instance
- end
-
- # the Plugin ID for this scanner
- def lang
- self.class.lang
- end
-
- # the default file extension for this scanner
- def file_extension
- self.class.file_extension
- end
-
- # Scan the code and returns all tokens in a Tokens object.
- def tokenize source = nil, options = {}
- options = @options.merge(options)
- @tokens = options[:tokens] || @tokens || Tokens.new
- @tokens.scanner = self if @tokens.respond_to? :scanner=
- case source
- when Array
- self.string = self.class.normalize(source.join)
- when nil
- reset
- else
- self.string = self.class.normalize(source)
- end
-
- begin
- scan_tokens @tokens, options
- rescue => e
- message = "Error in %s#scan_tokens, initial state was: %p" % [self.class, defined?(state) && state]
- raise_inspect e.message, @tokens, message, 30, e.backtrace
- end
-
- @cached_tokens = @tokens
- if source.is_a? Array
- @tokens.split_into_parts(*source.map { |part| part.size })
- else
- @tokens
- end
- end
-
- # Cache the result of tokenize.
- def tokens
- @cached_tokens ||= tokenize
- end
-
- # Traverse the tokens.
- def each &block
- tokens.each(&block)
- end
- include Enumerable
-
- # The current line position of the scanner, starting with 1.
- # See also: #column.
- #
- # Beware, this is implemented inefficiently. It should be used
- # for debugging only.
- def line pos = self.pos
- return 1 if pos <= 0
- binary_string[0...pos].count("\n") + 1
- end
-
- # The current column position of the scanner, starting with 1.
- # See also: #line.
- def column pos = self.pos
- return 1 if pos <= 0
- pos - (binary_string.rindex(?\n, pos - 1) || -1)
- end
-
- # The string in binary encoding.
- #
- # To be used with #pos, which is the index of the byte the scanner
- # will scan next.
- def binary_string
- @binary_string ||=
- if string.respond_to?(:bytesize) && string.bytesize != string.size
- #:nocov:
- string.dup.force_encoding('binary')
- #:nocov:
- else
- string
- end
- end
-
- protected
-
- # Can be implemented by subclasses to do some initialization
- # that has to be done once per instance.
- #
- # Use reset for initialization that has to be done once per
- # scan.
- def setup # :doc:
- end
-
- # This is the central method, and commonly the only one a
- # subclass implements.
- #
- # Subclasses must implement this method; it must return +tokens+
- # and must only use Tokens#<< for storing scanned tokens!
- def scan_tokens tokens, options # :doc:
- raise NotImplementedError, "#{self.class}#scan_tokens not implemented."
- end
-
- # Resets the scanner.
- def reset_instance
- @tokens.clear if @tokens.respond_to?(:clear) && !@options[:keep_tokens]
- @cached_tokens = nil
- @binary_string = nil if defined? @binary_string
- end
-
- # Scanner error with additional status information
- def raise_inspect msg, tokens, state = self.state || 'No state given!', ambit = 30, backtrace = caller
- raise ScanError, <<-EOE % [
-
-
-***ERROR in %s: %s (after %d tokens)
-
-tokens:
-%s
-
-current line: %d column: %d pos: %d
-matched: %p state: %p
-bol? = %p, eos? = %p
-
-surrounding code:
-%p ~~ %p
-
-
-***ERROR***
-
- EOE
- File.basename(caller[0]),
- msg,
- tokens.respond_to?(:size) ? tokens.size : 0,
- tokens.respond_to?(:last) ? tokens.last(10).map { |t| t.inspect }.join("\n") : '',
- line, column, pos,
- matched, state, bol?, eos?,
- binary_string[pos - ambit, ambit],
- binary_string[pos, ambit],
- ], backtrace
- end
-
- # Shorthand for scan_until(/\z/).
- # This method also avoids a JRuby 1.9 mode bug.
- def scan_rest
- rest = self.rest
- terminate
- rest
- end
-
- end
-
- end
-end \ No newline at end of file
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/_map.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/_map.rb
deleted file mode 100644
index a240298d1..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/_map.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-module CodeRay
-module Scanners
-
- map \
- :'c++' => :cpp,
- :cplusplus => :cpp,
- :ecmascript => :java_script,
- :ecma_script => :java_script,
- :rhtml => :erb,
- :eruby => :erb,
- :irb => :ruby,
- :javascript => :java_script,
- :js => :java_script,
- :pascal => :delphi,
- :patch => :diff,
- :plain => :text,
- :plaintext => :text,
- :xhtml => :html,
- :yml => :yaml
-
- default :text
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/c.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/c.rb
deleted file mode 100644
index 8d24b99df..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/c.rb
+++ /dev/null
@@ -1,189 +0,0 @@
-module CodeRay
-module Scanners
-
- # Scanner for C.
- class C < Scanner
-
- register_for :c
- file_extension 'c'
-
- KEYWORDS = [
- 'asm', 'break', 'case', 'continue', 'default', 'do',
- 'else', 'enum', 'for', 'goto', 'if', 'return',
- 'sizeof', 'struct', 'switch', 'typedef', 'union', 'while',
- 'restrict', # added in C99
- ] # :nodoc:
-
- PREDEFINED_TYPES = [
- 'int', 'long', 'short', 'char',
- 'signed', 'unsigned', 'float', 'double',
- 'bool', 'complex', # added in C99
- ] # :nodoc:
-
- PREDEFINED_CONSTANTS = [
- 'EOF', 'NULL',
- 'true', 'false', # added in C99
- ] # :nodoc:
- DIRECTIVES = [
- 'auto', 'extern', 'register', 'static', 'void',
- 'const', 'volatile', # added in C89
- 'inline', # added in C99
- ] # :nodoc:
-
- IDENT_KIND = WordList.new(:ident).
- add(KEYWORDS, :keyword).
- add(PREDEFINED_TYPES, :predefined_type).
- add(DIRECTIVES, :directive).
- add(PREDEFINED_CONSTANTS, :predefined_constant) # :nodoc:
-
- ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc:
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x # :nodoc:
-
- protected
-
- def scan_tokens encoder, options
-
- state = :initial
- label_expected = true
- case_expected = false
- label_expected_before_preproc_line = nil
- in_preproc_line = false
-
- until eos?
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- if in_preproc_line && match != "\\\n" && match.index(?\n)
- in_preproc_line = false
- label_expected = label_expected_before_preproc_line
- end
- encoder.text_token match, :space
-
- elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- encoder.text_token match, :comment
-
- elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x)
- label_expected = match =~ /[;\{\}]/
- if case_expected
- label_expected = true if match == ':'
- case_expected = false
- end
- encoder.text_token match, :operator
-
- elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- kind = IDENT_KIND[match]
- if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/)
- kind = :label
- match << matched
- else
- label_expected = false
- if kind == :keyword
- case match
- when 'case', 'default'
- case_expected = true
- end
- end
- end
- encoder.text_token match, kind
-
- elsif match = scan(/L?"/)
- encoder.begin_group :string
- if match[0] == ?L
- encoder.text_token 'L', :modifier
- match = '"'
- end
- encoder.text_token match, :delimiter
- state = :string
-
- elsif match = scan(/ \# \s* if \s* 0 /x)
- match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos?
- encoder.text_token match, :comment
-
- elsif match = scan(/#[ \t]*(\w*)/)
- encoder.text_token match, :preprocessor
- in_preproc_line = true
- label_expected_before_preproc_line = label_expected
- state = :include_expected if self[1] == 'include'
-
- elsif match = scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
- label_expected = false
- encoder.text_token match, :char
-
- elsif match = scan(/\$/)
- encoder.text_token match, :ident
-
- elsif match = scan(/0[xX][0-9A-Fa-f]+/)
- label_expected = false
- encoder.text_token match, :hex
-
- elsif match = scan(/(?:0[0-7]+)(?![89.eEfF])/)
- label_expected = false
- encoder.text_token match, :octal
-
- elsif match = scan(/(?:\d+)(?![.eEfF])L?L?/)
- label_expected = false
- encoder.text_token match, :integer
-
- elsif match = scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
- label_expected = false
- encoder.text_token match, :float
-
- else
- encoder.text_token getch, :error
-
- end
-
- when :string
- if match = scan(/[^\\\n"]+/)
- encoder.text_token match, :content
- elsif match = scan(/"/)
- encoder.text_token match, :delimiter
- encoder.end_group :string
- state = :initial
- label_expected = false
- elsif match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- encoder.text_token match, :char
- elsif match = scan(/ \\ | $ /x)
- encoder.end_group :string
- encoder.text_token match, :error
- state = :initial
- label_expected = false
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), encoder
- end
-
- when :include_expected
- if match = scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/)
- encoder.text_token match, :include
- state = :initial
-
- elsif match = scan(/\s+/)
- encoder.text_token match, :space
- state = :initial if match.index ?\n
-
- else
- state = :initial
-
- end
-
- else
- raise_inspect 'Unknown state', encoder
-
- end
-
- end
-
- if state == :string
- encoder.end_group :string
- end
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/clojure.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/clojure.rb
deleted file mode 100644
index f8fbf6506..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/clojure.rb
+++ /dev/null
@@ -1,217 +0,0 @@
-# encoding: utf-8
-module CodeRay
- module Scanners
-
- # Clojure scanner by Licenser.
- class Clojure < Scanner
-
- register_for :clojure
- file_extension 'clj'
-
- SPECIAL_FORMS = %w[
- def if do let quote var fn loop recur throw try catch monitor-enter monitor-exit .
- new
- ] # :nodoc:
-
- CORE_FORMS = %w[
- + - -> ->> .. / * <= < = == >= > accessor aclone add-classpath add-watch
- agent agent-error agent-errors aget alength alias all-ns alter alter-meta!
- alter-var-root amap ancestors and apply areduce array-map aset aset-boolean
- aset-byte aset-char aset-double aset-float aset-int aset-long aset-short
- assert assoc assoc! assoc-in associative? atom await await-for bases bean
- bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or
- bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array
- booleans bound-fn bound-fn* bound? butlast byte byte-array bytes case cast char
- char-array char-escape-string char-name-string char? chars class class?
- clear-agent-errors clojure-version coll? comment commute comp comparator
- compare compare-and-set! compile complement concat cond condp conj conj!
- cons constantly construct-proxy contains? count counted? create-ns
- create-struct cycle dec decimal? declare definline defmacro defmethod defmulti
- defn defn- defonce defprotocol defrecord defstruct deftype delay delay?
- deliver denominator deref derive descendants disj disj! dissoc dissoc!
- distinct distinct? doall doc dorun doseq dosync dotimes doto double
- double-array doubles drop drop-last drop-while empty empty? ensure
- enumeration-seq error-handler error-mode eval even? every? extend
- extend-protocol extend-type extenders extends? false? ffirst file-seq
- filter find find-doc find-ns find-var first float float-array float?
- floats flush fn fn? fnext for force format future future-call future-cancel
- future-cancelled? future-done? future? gen-class gen-interface gensym get
- get-in get-method get-proxy-class get-thread-bindings get-validator hash
- hash-map hash-set identical? identity if-let if-not ifn? import in-ns
- inc init-proxy instance? int int-array integer? interleave intern
- interpose into into-array ints io! isa? iterate iterator-seq juxt key
- keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list*
- list? load load-file load-reader load-string loaded-libs locking long
- long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy
- map map? mapcat max max-key memfn memoize merge merge-with meta methods
- min min-key mod name namespace neg? newline next nfirst nil? nnext not
- not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns
- ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth
- nthnext num number? numerator object-array odd? or parents partial
- partition pcalls peek persistent! pmap pop pop! pop-thread-bindings
- pos? pr pr-str prefer-method prefers print print-namespace-doc
- print-str printf println println-str prn prn-str promise proxy
- proxy-mappings proxy-super push-thread-bindings pvalues quot rand
- rand-int range ratio? rationalize re-find re-groups re-matcher
- re-matches re-pattern re-seq read read-line read-string reduce ref
- ref-history-count ref-max-history ref-min-history ref-set refer
- refer-clojure reify release-pending-sends rem remove remove-all-methods
- remove-method remove-ns remove-watch repeat repeatedly replace replicate
- require reset! reset-meta! resolve rest restart-agent resultset-seq
- reverse reversible? rseq rsubseq satisfies? second select-keys send
- send-off seq seq? seque sequence sequential? set set-error-handler!
- set-error-mode! set-validator! set? short short-array shorts
- shutdown-agents slurp some sort sort-by sorted-map sorted-map-by
- sorted-set sorted-set-by sorted? special-form-anchor special-symbol?
- split-at split-with str string? struct struct-map subs subseq subvec
- supers swap! symbol symbol? sync syntax-symbol-anchor take take-last
- take-nth take-while test the-ns thread-bound? time to-array to-array-2d
- trampoline transient tree-seq true? type unchecked-add unchecked-dec
- unchecked-divide unchecked-inc unchecked-multiply unchecked-negate
- unchecked-remainder unchecked-subtract underive update-in update-proxy
- use val vals var-get var-set var? vary-meta vec vector vector-of vector?
- when when-first when-let when-not while with-bindings with-bindings*
- with-in-str with-local-vars with-meta with-open with-out-str
- with-precision xml-seq zero? zipmap
- ] # :nodoc:
-
- PREDEFINED_CONSTANTS = %w[
- true false nil *1 *2 *3 *agent* *clojure-version* *command-line-args*
- *compile-files* *compile-path* *e *err* *file* *flush-on-newline*
- *in* *ns* *out* *print-dup* *print-length* *print-level* *print-meta*
- *print-readably* *read-eval* *warn-on-reflection*
- ] # :nodoc:
-
- IDENT_KIND = WordList.new(:ident).
- add(SPECIAL_FORMS, :keyword).
- add(CORE_FORMS, :keyword).
- add(PREDEFINED_CONSTANTS, :predefined_constant)
-
- KEYWORD_NEXT_TOKEN_KIND = WordList.new(nil).
- add(%w[ def defn defn- definline defmacro defmulti defmethod defstruct defonce declare ], :function).
- add(%w[ ns ], :namespace).
- add(%w[ defprotocol defrecord ], :class)
-
- BASIC_IDENTIFIER = /[a-zA-Z$%*\/_+!?&<>\-=]=?[a-zA-Z0-9$&*+!\/_?<>\-\#]*/
- IDENTIFIER = /(?!-\d)(?:(?:#{BASIC_IDENTIFIER}\.)*#{BASIC_IDENTIFIER}(?:\/#{BASIC_IDENTIFIER})?\.?)|\.\.?/
- SYMBOL = /::?#{IDENTIFIER}/o
- DIGIT = /\d/
- DIGIT10 = DIGIT
- DIGIT16 = /[0-9a-f]/i
- DIGIT8 = /[0-7]/
- DIGIT2 = /[01]/
- RADIX16 = /\#x/i
- RADIX8 = /\#o/i
- RADIX2 = /\#b/i
- RADIX10 = /\#d/i
- EXACTNESS = /#i|#e/i
- SIGN = /[\+-]?/
- EXP_MARK = /[esfdl]/i
- EXP = /#{EXP_MARK}#{SIGN}#{DIGIT}+/
- SUFFIX = /#{EXP}?/
- PREFIX10 = /#{RADIX10}?#{EXACTNESS}?|#{EXACTNESS}?#{RADIX10}?/
- PREFIX16 = /#{RADIX16}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX16}/
- PREFIX8 = /#{RADIX8}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX8}/
- PREFIX2 = /#{RADIX2}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX2}/
- UINT10 = /#{DIGIT10}+#*/
- UINT16 = /#{DIGIT16}+#*/
- UINT8 = /#{DIGIT8}+#*/
- UINT2 = /#{DIGIT2}+#*/
- DECIMAL = /#{DIGIT10}+#+\.#*#{SUFFIX}|#{DIGIT10}+\.#{DIGIT10}*#*#{SUFFIX}|\.#{DIGIT10}+#*#{SUFFIX}|#{UINT10}#{EXP}/
- UREAL10 = /#{UINT10}\/#{UINT10}|#{DECIMAL}|#{UINT10}/
- UREAL16 = /#{UINT16}\/#{UINT16}|#{UINT16}/
- UREAL8 = /#{UINT8}\/#{UINT8}|#{UINT8}/
- UREAL2 = /#{UINT2}\/#{UINT2}|#{UINT2}/
- REAL10 = /#{SIGN}#{UREAL10}/
- REAL16 = /#{SIGN}#{UREAL16}/
- REAL8 = /#{SIGN}#{UREAL8}/
- REAL2 = /#{SIGN}#{UREAL2}/
- IMAG10 = /i|#{UREAL10}i/
- IMAG16 = /i|#{UREAL16}i/
- IMAG8 = /i|#{UREAL8}i/
- IMAG2 = /i|#{UREAL2}i/
- COMPLEX10 = /#{REAL10}@#{REAL10}|#{REAL10}\+#{IMAG10}|#{REAL10}-#{IMAG10}|\+#{IMAG10}|-#{IMAG10}|#{REAL10}/
- COMPLEX16 = /#{REAL16}@#{REAL16}|#{REAL16}\+#{IMAG16}|#{REAL16}-#{IMAG16}|\+#{IMAG16}|-#{IMAG16}|#{REAL16}/
- COMPLEX8 = /#{REAL8}@#{REAL8}|#{REAL8}\+#{IMAG8}|#{REAL8}-#{IMAG8}|\+#{IMAG8}|-#{IMAG8}|#{REAL8}/
- COMPLEX2 = /#{REAL2}@#{REAL2}|#{REAL2}\+#{IMAG2}|#{REAL2}-#{IMAG2}|\+#{IMAG2}|-#{IMAG2}|#{REAL2}/
- NUM10 = /#{PREFIX10}?#{COMPLEX10}/
- NUM16 = /#{PREFIX16}#{COMPLEX16}/
- NUM8 = /#{PREFIX8}#{COMPLEX8}/
- NUM2 = /#{PREFIX2}#{COMPLEX2}/
- NUM = /#{NUM10}|#{NUM16}|#{NUM8}|#{NUM2}/
-
- protected
-
- def scan_tokens encoder, options
-
- state = :initial
- kind = nil
-
- until eos?
-
- case state
- when :initial
- if match = scan(/ \s+ | \\\n | , /x)
- encoder.text_token match, :space
- elsif match = scan(/['`\(\[\)\]\{\}]|\#[({]|~@?|[@\^]/)
- encoder.text_token match, :operator
- elsif match = scan(/;.*/)
- encoder.text_token match, :comment # TODO: recognize (comment ...) too
- elsif match = scan(/\#?\\(?:newline|space|.?)/)
- encoder.text_token match, :char
- elsif match = scan(/\#[ft]/)
- encoder.text_token match, :predefined_constant
- elsif match = scan(/#{IDENTIFIER}/o)
- kind = IDENT_KIND[match]
- encoder.text_token match, kind
- if rest? && kind == :keyword
- if kind = KEYWORD_NEXT_TOKEN_KIND[match]
- encoder.text_token match, :space if match = scan(/\s+/o)
- encoder.text_token match, kind if match = scan(/#{IDENTIFIER}/o)
- end
- end
- elsif match = scan(/#{SYMBOL}/o)
- encoder.text_token match, :symbol
- elsif match = scan(/\./)
- encoder.text_token match, :operator
- elsif match = scan(/ \# \^ #{IDENTIFIER} /ox)
- encoder.text_token match, :type
- elsif match = scan(/ (\#)? " /x)
- state = self[1] ? :regexp : :string
- encoder.begin_group state
- encoder.text_token match, :delimiter
- elsif match = scan(/#{NUM}/o) and not matched.empty?
- encoder.text_token match, match[/[.e\/]/i] ? :float : :integer
- else
- encoder.text_token getch, :error
- end
-
- when :string, :regexp
- if match = scan(/[^"\\]+|\\.?/)
- encoder.text_token match, :content
- elsif match = scan(/"/)
- encoder.text_token match, :delimiter
- encoder.end_group state
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1),
- encoder, state
- end
-
- else
- raise 'else case reached'
-
- end
-
- end
-
- if [:string, :regexp].include? state
- encoder.end_group state
- end
-
- encoder
-
- end
- end
- end
-end \ No newline at end of file
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/cpp.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/cpp.rb
deleted file mode 100644
index 9da62f4c1..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/cpp.rb
+++ /dev/null
@@ -1,215 +0,0 @@
-module CodeRay
-module Scanners
-
- # Scanner for C++.
- #
- # Aliases: +cplusplus+, c++
- class CPlusPlus < Scanner
-
- register_for :cpp
- file_extension 'cpp'
- title 'C++'
-
- #-- http://www.cppreference.com/wiki/keywords/start
- KEYWORDS = [
- 'and', 'and_eq', 'asm', 'bitand', 'bitor', 'break',
- 'case', 'catch', 'class', 'compl', 'const_cast',
- 'continue', 'default', 'delete', 'do', 'dynamic_cast', 'else',
- 'enum', 'export', 'for', 'goto', 'if', 'namespace', 'new',
- 'not', 'not_eq', 'or', 'or_eq', 'reinterpret_cast', 'return',
- 'sizeof', 'static_cast', 'struct', 'switch', 'template',
- 'throw', 'try', 'typedef', 'typeid', 'typename', 'union',
- 'while', 'xor', 'xor_eq',
- ] # :nodoc:
-
- PREDEFINED_TYPES = [
- 'bool', 'char', 'double', 'float', 'int', 'long',
- 'short', 'signed', 'unsigned', 'wchar_t', 'string',
- ] # :nodoc:
- PREDEFINED_CONSTANTS = [
- 'false', 'true',
- 'EOF', 'NULL',
- ] # :nodoc:
- PREDEFINED_VARIABLES = [
- 'this',
- ] # :nodoc:
- DIRECTIVES = [
- 'auto', 'const', 'explicit', 'extern', 'friend', 'inline', 'mutable', 'operator',
- 'private', 'protected', 'public', 'register', 'static', 'using', 'virtual', 'void',
- 'volatile',
- ] # :nodoc:
-
- IDENT_KIND = WordList.new(:ident).
- add(KEYWORDS, :keyword).
- add(PREDEFINED_TYPES, :predefined_type).
- add(PREDEFINED_VARIABLES, :local_variable).
- add(DIRECTIVES, :directive).
- add(PREDEFINED_CONSTANTS, :predefined_constant) # :nodoc:
-
- ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc:
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x # :nodoc:
-
- protected
-
- def scan_tokens encoder, options
-
- state = :initial
- label_expected = true
- case_expected = false
- label_expected_before_preproc_line = nil
- in_preproc_line = false
-
- until eos?
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- if in_preproc_line && match != "\\\n" && match.index(?\n)
- in_preproc_line = false
- label_expected = label_expected_before_preproc_line
- end
- encoder.text_token match, :space
-
- elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- encoder.text_token match, :comment
-
- elsif match = scan(/ \# \s* if \s* 0 /x)
- match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos?
- encoder.text_token match, :comment
-
- elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x)
- label_expected = match =~ /[;\{\}]/
- if case_expected
- label_expected = true if match == ':'
- case_expected = false
- end
- encoder.text_token match, :operator
-
- elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- kind = IDENT_KIND[match]
- if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/)
- kind = :label
- match << matched
- else
- label_expected = false
- if kind == :keyword
- case match
- when 'class'
- state = :class_name_expected
- when 'case', 'default'
- case_expected = true
- end
- end
- end
- encoder.text_token match, kind
-
- elsif match = scan(/\$/)
- encoder.text_token match, :ident
-
- elsif match = scan(/L?"/)
- encoder.begin_group :string
- if match[0] == ?L
- encoder.text_token match, 'L', :modifier
- match = '"'
- end
- state = :string
- encoder.text_token match, :delimiter
-
- elsif match = scan(/#[ \t]*(\w*)/)
- encoder.text_token match, :preprocessor
- in_preproc_line = true
- label_expected_before_preproc_line = label_expected
- state = :include_expected if self[1] == 'include'
-
- elsif match = scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
- label_expected = false
- encoder.text_token match, :char
-
- elsif match = scan(/0[xX][0-9A-Fa-f]+/)
- label_expected = false
- encoder.text_token match, :hex
-
- elsif match = scan(/(?:0[0-7]+)(?![89.eEfF])/)
- label_expected = false
- encoder.text_token match, :octal
-
- elsif match = scan(/(?:\d+)(?![.eEfF])L?L?/)
- label_expected = false
- encoder.text_token match, :integer
-
- elsif match = scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
- label_expected = false
- encoder.text_token match, :float
-
- else
- encoder.text_token getch, :error
-
- end
-
- when :string
- if match = scan(/[^\\"]+/)
- encoder.text_token match, :content
- elsif match = scan(/"/)
- encoder.text_token match, :delimiter
- encoder.end_group :string
- state = :initial
- label_expected = false
- elsif match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- encoder.text_token match, :char
- elsif match = scan(/ \\ | $ /x)
- encoder.end_group :string
- encoder.text_token match, :error
- state = :initial
- label_expected = false
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), encoder
- end
-
- when :include_expected
- if match = scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/)
- encoder.text_token match, :include
- state = :initial
-
- elsif match = scan(/\s+/)
- encoder.text_token match, :space
- state = :initial if match.index ?\n
-
- else
- state = :initial
-
- end
-
- when :class_name_expected
- if match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- encoder.text_token match, :class
- state = :initial
-
- elsif match = scan(/\s+/)
- encoder.text_token match, :space
-
- else
- encoder.text_token getch, :error
- state = :initial
-
- end
-
- else
- raise_inspect 'Unknown state', encoder
-
- end
-
- end
-
- if state == :string
- encoder.end_group :string
- end
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/css.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/css.rb
deleted file mode 100644
index e5f03f5b2..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/css.rb
+++ /dev/null
@@ -1,192 +0,0 @@
-module CodeRay
-module Scanners
-
- class CSS < Scanner
-
- register_for :css
-
- KINDS_NOT_LOC = [
- :comment,
- :class, :pseudo_class, :type,
- :constant, :directive,
- :key, :value, :operator, :color, :float, :string,
- :error, :important,
- ] # :nodoc:
-
- module RE # :nodoc:
- Hex = /[0-9a-fA-F]/
- Unicode = /\\#{Hex}{1,6}(?:\r\n|\s)?/ # differs from standard because it allows uppercase hex too
- Escape = /#{Unicode}|\\[^\r\n\f0-9a-fA-F]/
- NMChar = /[-_a-zA-Z0-9]|#{Escape}/
- NMStart = /[_a-zA-Z]|#{Escape}/
- NL = /\r\n|\r|\n|\f/
- String1 = /"(?:[^\n\r\f\\"]|\\#{NL}|#{Escape})*"?/ # TODO: buggy regexp
- String2 = /'(?:[^\n\r\f\\']|\\#{NL}|#{Escape})*'?/ # TODO: buggy regexp
- String = /#{String1}|#{String2}/
-
- HexColor = /#(?:#{Hex}{6}|#{Hex}{3})/
- Color = /#{HexColor}/
-
- Num = /-?(?:[0-9]+|[0-9]*\.[0-9]+)/
- Name = /#{NMChar}+/
- Ident = /-?#{NMStart}#{NMChar}*/
- AtKeyword = /@#{Ident}/
- Percentage = /#{Num}%/
-
- reldimensions = %w[em ex px]
- absdimensions = %w[in cm mm pt pc]
- Unit = Regexp.union(*(reldimensions + absdimensions))
-
- Dimension = /#{Num}#{Unit}/
-
- Comment = %r! /\* (?: .*? \*/ | .* ) !mx
- Function = /(?:url|alpha|attr|counters?)\((?:[^)\n\r\f]|\\\))*\)?/
-
- Id = /##{Name}/
- Class = /\.#{Name}/
- PseudoClass = /:#{Name}/
- AttributeSelector = /\[[^\]]*\]?/
- end
-
- protected
-
- def scan_tokens encoder, options
-
- value_expected = nil
- states = [:initial]
-
- until eos?
-
- if match = scan(/\s+/)
- encoder.text_token match, :space
-
- elsif case states.last
- when :initial, :media
- if match = scan(/(?>#{RE::Ident})(?!\()|\*/ox)
- encoder.text_token match, :type
- next
- elsif match = scan(RE::Class)
- encoder.text_token match, :class
- next
- elsif match = scan(RE::Id)
- encoder.text_token match, :constant
- next
- elsif match = scan(RE::PseudoClass)
- encoder.text_token match, :pseudo_class
- next
- elsif match = scan(RE::AttributeSelector)
- # TODO: Improve highlighting inside of attribute selectors.
- encoder.text_token match[0,1], :operator
- encoder.text_token match[1..-2], :attribute_name if match.size > 2
- encoder.text_token match[-1,1], :operator if match[-1] == ?]
- next
- elsif match = scan(/@media/)
- encoder.text_token match, :directive
- states.push :media_before_name
- next
- end
-
- when :block
- if match = scan(/(?>#{RE::Ident})(?!\()/ox)
- if value_expected
- encoder.text_token match, :value
- else
- encoder.text_token match, :key
- end
- next
- end
-
- when :media_before_name
- if match = scan(RE::Ident)
- encoder.text_token match, :type
- states[-1] = :media_after_name
- next
- end
-
- when :media_after_name
- if match = scan(/\{/)
- encoder.text_token match, :operator
- states[-1] = :media
- next
- end
-
- else
- #:nocov:
- raise_inspect 'Unknown state', encoder
- #:nocov:
-
- end
-
- elsif match = scan(/\/\*(?:.*?\*\/|\z)/m)
- encoder.text_token match, :comment
-
- elsif match = scan(/\{/)
- value_expected = false
- encoder.text_token match, :operator
- states.push :block
-
- elsif match = scan(/\}/)
- value_expected = false
- if states.last == :block || states.last == :media
- encoder.text_token match, :operator
- states.pop
- else
- encoder.text_token match, :error
- end
-
- elsif match = scan(/#{RE::String}/o)
- encoder.begin_group :string
- encoder.text_token match[0, 1], :delimiter
- encoder.text_token match[1..-2], :content if match.size > 2
- encoder.text_token match[-1, 1], :delimiter if match.size >= 2
- encoder.end_group :string
-
- elsif match = scan(/#{RE::Function}/o)
- encoder.begin_group :string
- start = match[/^\w+\(/]
- encoder.text_token start, :delimiter
- if match[-1] == ?)
- encoder.text_token match[start.size..-2], :content
- encoder.text_token ')', :delimiter
- else
- encoder.text_token match[start.size..-1], :content
- end
- encoder.end_group :string
-
- elsif match = scan(/(?: #{RE::Dimension} | #{RE::Percentage} | #{RE::Num} )/ox)
- encoder.text_token match, :float
-
- elsif match = scan(/#{RE::Color}/o)
- encoder.text_token match, :color
-
- elsif match = scan(/! *important/)
- encoder.text_token match, :important
-
- elsif match = scan(/(?:rgb|hsl)a?\([^()\n]*\)?/)
- encoder.text_token match, :color
-
- elsif match = scan(RE::AtKeyword)
- encoder.text_token match, :directive
-
- elsif match = scan(/ [+>:;,.=()\/] /x)
- if match == ':'
- value_expected = true
- elsif match == ';'
- value_expected = false
- end
- encoder.text_token match, :operator
-
- else
- encoder.text_token getch, :error
-
- end
-
- end
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/debug.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/debug.rb
deleted file mode 100644
index 566bfa778..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/debug.rb
+++ /dev/null
@@ -1,65 +0,0 @@
-module CodeRay
-module Scanners
-
- # = Debug Scanner
- #
- # Interprets the output of the Encoders::Debug encoder.
- class Debug < Scanner
-
- register_for :debug
- title 'CodeRay Token Dump Import'
-
- protected
-
- def scan_tokens encoder, options
-
- opened_tokens = []
-
- until eos?
-
- if match = scan(/\s+/)
- encoder.text_token match, :space
-
- elsif match = scan(/ (\w+) \( ( [^\)\\]* ( \\. [^\)\\]* )* ) \)? /x)
- kind = self[1].to_sym
- match = self[2].gsub(/\\(.)/m, '\1')
- unless TokenKinds.has_key? kind
- kind = :error
- match = matched
- end
- encoder.text_token match, kind
-
- elsif match = scan(/ (\w+) ([<\[]) /x)
- kind = self[1].to_sym
- opened_tokens << kind
- case self[2]
- when '<'
- encoder.begin_group kind
- when '['
- encoder.begin_line kind
- else
- raise 'CodeRay bug: This case should not be reached.'
- end
-
- elsif !opened_tokens.empty? && match = scan(/ > /x)
- encoder.end_group opened_tokens.pop
-
- elsif !opened_tokens.empty? && match = scan(/ \] /x)
- encoder.end_line opened_tokens.pop
-
- else
- encoder.text_token getch, :space
-
- end
-
- end
-
- encoder.end_group opened_tokens.pop until opened_tokens.empty?
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/delphi.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/delphi.rb
deleted file mode 100644
index b328155ab..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/delphi.rb
+++ /dev/null
@@ -1,144 +0,0 @@
-module CodeRay
-module Scanners
-
- # Scanner for the Delphi language (Object Pascal).
- #
- # Alias: +pascal+
- class Delphi < Scanner
-
- register_for :delphi
- file_extension 'pas'
-
- KEYWORDS = [
- 'and', 'array', 'as', 'at', 'asm', 'at', 'begin', 'case', 'class',
- 'const', 'constructor', 'destructor', 'dispinterface', 'div', 'do',
- 'downto', 'else', 'end', 'except', 'exports', 'file', 'finalization',
- 'finally', 'for', 'function', 'goto', 'if', 'implementation', 'in',
- 'inherited', 'initialization', 'inline', 'interface', 'is', 'label',
- 'library', 'mod', 'nil', 'not', 'object', 'of', 'or', 'out', 'packed',
- 'procedure', 'program', 'property', 'raise', 'record', 'repeat',
- 'resourcestring', 'set', 'shl', 'shr', 'string', 'then', 'threadvar',
- 'to', 'try', 'type', 'unit', 'until', 'uses', 'var', 'while', 'with',
- 'xor', 'on',
- ] # :nodoc:
-
- DIRECTIVES = [
- 'absolute', 'abstract', 'assembler', 'at', 'automated', 'cdecl',
- 'contains', 'deprecated', 'dispid', 'dynamic', 'export',
- 'external', 'far', 'forward', 'implements', 'local',
- 'near', 'nodefault', 'on', 'overload', 'override',
- 'package', 'pascal', 'platform', 'private', 'protected', 'public',
- 'published', 'read', 'readonly', 'register', 'reintroduce',
- 'requires', 'resident', 'safecall', 'stdcall', 'stored', 'varargs',
- 'virtual', 'write', 'writeonly',
- ] # :nodoc:
-
- IDENT_KIND = WordList::CaseIgnoring.new(:ident).
- add(KEYWORDS, :keyword).
- add(DIRECTIVES, :directive) # :nodoc:
-
- NAME_FOLLOWS = WordList::CaseIgnoring.new(false).
- add(%w(procedure function .)) # :nodoc:
-
- protected
-
- def scan_tokens encoder, options
-
- state = :initial
- last_token = ''
-
- until eos?
-
- if state == :initial
-
- if match = scan(/ \s+ /x)
- encoder.text_token match, :space
- next
-
- elsif match = scan(%r! \{ \$ [^}]* \}? | \(\* \$ (?: .*? \*\) | .* ) !mx)
- encoder.text_token match, :preprocessor
- next
-
- elsif match = scan(%r! // [^\n]* | \{ [^}]* \}? | \(\* (?: .*? \*\) | .* ) !mx)
- encoder.text_token match, :comment
- next
-
- elsif match = scan(/ <[>=]? | >=? | :=? | [-+=*\/;,@\^|\(\)\[\]] | \.\. /x)
- encoder.text_token match, :operator
-
- elsif match = scan(/\./)
- encoder.text_token match, :operator
- next if last_token == 'end'
-
- elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- encoder.text_token match, NAME_FOLLOWS[last_token] ? :ident : IDENT_KIND[match]
-
- elsif match = skip(/ ' ( [^\n']|'' ) (?:'|$) /x)
- encoder.begin_group :char
- encoder.text_token "'", :delimiter
- encoder.text_token self[1], :content
- encoder.text_token "'", :delimiter
- encoder.end_group :char
- next
-
- elsif match = scan(/ ' /x)
- encoder.begin_group :string
- encoder.text_token match, :delimiter
- state = :string
-
- elsif match = scan(/ \# (?: \d+ | \$[0-9A-Fa-f]+ ) /x)
- encoder.text_token match, :char
-
- elsif match = scan(/ \$ [0-9A-Fa-f]+ /x)
- encoder.text_token match, :hex
-
- elsif match = scan(/ (?: \d+ ) (?![eE]|\.[^.]) /x)
- encoder.text_token match, :integer
-
- elsif match = scan(/ \d+ (?: \.\d+ (?: [eE][+-]? \d+ )? | [eE][+-]? \d+ ) /x)
- encoder.text_token match, :float
-
- else
- encoder.text_token getch, :error
- next
-
- end
-
- elsif state == :string
- if match = scan(/[^\n']+/)
- encoder.text_token match, :content
- elsif match = scan(/''/)
- encoder.text_token match, :char
- elsif match = scan(/'/)
- encoder.text_token match, :delimiter
- encoder.end_group :string
- state = :initial
- next
- elsif match = scan(/\n/)
- encoder.end_group :string
- encoder.text_token match, :space
- state = :initial
- else
- raise "else case \' reached; %p not handled." % peek(1), encoder
- end
-
- else
- raise 'else-case reached', encoder
-
- end
-
- last_token = match
-
- end
-
- if state == :string
- encoder.end_group state
- end
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/diff.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/diff.rb
deleted file mode 100644
index fd70016d8..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/diff.rb
+++ /dev/null
@@ -1,201 +0,0 @@
-module CodeRay
-module Scanners
-
- # Scanner for output of the diff command.
- #
- # Alias: +patch+
- class Diff < Scanner
-
- register_for :diff
- title 'diff output'
-
- DEFAULT_OPTIONS = {
- :highlight_code => true,
- :inline_diff => true,
- }
-
- protected
-
- require 'coderay/helpers/file_type'
-
- def scan_tokens encoder, options
-
- line_kind = nil
- state = :initial
- deleted_lines = 0
- scanners = Hash.new do |h, lang|
- h[lang] = Scanners[lang].new '', :keep_tokens => true, :keep_state => true
- end
- content_scanner = scanners[:plain]
- content_scanner_entry_state = nil
-
- until eos?
-
- if match = scan(/\n/)
- deleted_lines = 0 unless line_kind == :delete
- if line_kind
- encoder.end_line line_kind
- line_kind = nil
- end
- encoder.text_token match, :space
- next
- end
-
- case state
-
- when :initial
- if match = scan(/--- |\+\+\+ |=+|_+/)
- encoder.begin_line line_kind = :head
- encoder.text_token match, :head
- if match = scan(/.*?(?=$|[\t\n\x00]| \(revision)/)
- encoder.text_token match, :filename
- if options[:highlight_code]
- file_type = FileType.fetch(match, :text)
- file_type = :text if file_type == :diff
- content_scanner = scanners[file_type]
- content_scanner_entry_state = nil
- end
- end
- next unless match = scan(/.+/)
- encoder.text_token match, :plain
- elsif match = scan(/Index: |Property changes on: /)
- encoder.begin_line line_kind = :head
- encoder.text_token match, :head
- next unless match = scan(/.+/)
- encoder.text_token match, :plain
- elsif match = scan(/Added: /)
- encoder.begin_line line_kind = :head
- encoder.text_token match, :head
- next unless match = scan(/.+/)
- encoder.text_token match, :plain
- state = :added
- elsif match = scan(/\\ .*/)
- encoder.text_token match, :comment
- elsif match = scan(/@@(?>[^@\n]*)@@/)
- content_scanner.state = :initial unless match?(/\n\+/)
- content_scanner_entry_state = nil
- if check(/\n|$/)
- encoder.begin_line line_kind = :change
- else
- encoder.begin_group :change
- end
- encoder.text_token match[0,2], :change
- encoder.text_token match[2...-2], :plain
- encoder.text_token match[-2,2], :change
- encoder.end_group :change unless line_kind
- next unless match = scan(/.+/)
- if options[:highlight_code]
- content_scanner.tokenize match, :tokens => encoder
- else
- encoder.text_token match, :plain
- end
- next
- elsif match = scan(/\+/)
- encoder.begin_line line_kind = :insert
- encoder.text_token match, :insert
- next unless match = scan(/.+/)
- if options[:highlight_code]
- content_scanner.tokenize match, :tokens => encoder
- else
- encoder.text_token match, :plain
- end
- next
- elsif match = scan(/-/)
- deleted_lines += 1
- encoder.begin_line line_kind = :delete
- encoder.text_token match, :delete
- if options[:inline_diff] && deleted_lines == 1 && check(/(?>.*)\n\+(?>.*)$(?!\n\+)/)
- content_scanner_entry_state = content_scanner.state
- skip(/(.*)\n\+(.*)$/)
- head, deletion, insertion, tail = diff self[1], self[2]
- pre, deleted, post = content_scanner.tokenize [head, deletion, tail], :tokens => Tokens.new
- encoder.tokens pre
- unless deleted.empty?
- encoder.begin_group :eyecatcher
- encoder.tokens deleted
- encoder.end_group :eyecatcher
- end
- encoder.tokens post
- encoder.end_line line_kind
- encoder.text_token "\n", :space
- encoder.begin_line line_kind = :insert
- encoder.text_token '+', :insert
- content_scanner.state = content_scanner_entry_state || :initial
- pre, inserted, post = content_scanner.tokenize [head, insertion, tail], :tokens => Tokens.new
- encoder.tokens pre
- unless inserted.empty?
- encoder.begin_group :eyecatcher
- encoder.tokens inserted
- encoder.end_group :eyecatcher
- end
- encoder.tokens post
- elsif match = scan(/.*/)
- if options[:highlight_code]
- if deleted_lines == 1
- content_scanner_entry_state = content_scanner.state
- end
- content_scanner.tokenize match, :tokens => encoder unless match.empty?
- if !match?(/\n-/)
- if match?(/\n\+/)
- content_scanner.state = content_scanner_entry_state || :initial
- end
- content_scanner_entry_state = nil
- end
- else
- encoder.text_token match, :plain
- end
- end
- next
- elsif match = scan(/ .*/)
- if options[:highlight_code]
- content_scanner.tokenize match, :tokens => encoder
- else
- encoder.text_token match, :plain
- end
- next
- elsif match = scan(/.+/)
- encoder.begin_line line_kind = :comment
- encoder.text_token match, :plain
- else
- raise_inspect 'else case rached'
- end
-
- when :added
- if match = scan(/ \+/)
- encoder.begin_line line_kind = :insert
- encoder.text_token match, :insert
- next unless match = scan(/.+/)
- encoder.text_token match, :plain
- else
- state = :initial
- next
- end
- end
-
- end
-
- encoder.end_line line_kind if line_kind
-
- encoder
- end
-
- private
-
- def diff a, b
- # i will be the index of the leftmost difference from the left.
- i_max = [a.size, b.size].min
- i = 0
- i += 1 while i < i_max && a[i] == b[i]
- # j_min will be the index of the leftmost difference from the right.
- j_min = i - i_max
- # j will be the index of the rightmost difference from the right which
- # does not precede the leftmost one from the left.
- j = -1
- j -= 1 while j >= j_min && a[j] == b[j]
- return a[0...i], a[i..j], b[i..j], (j < -1) ? a[j+1..-1] : ''
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/erb.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/erb.rb
deleted file mode 100644
index 727a993bf..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/erb.rb
+++ /dev/null
@@ -1,81 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
- load :ruby
-
- # Scanner for HTML ERB templates.
- class ERB < Scanner
-
- register_for :erb
- title 'HTML ERB Template'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- ERB_RUBY_BLOCK = /
- (<%(?!%)[-=\#]?)
- ((?>
- [^\-%]* # normal*
- (?> # special
- (?: %(?!>) | -(?!%>) )
- [^\-%]* # normal*
- )*
- ))
- ((?: -?%> )?)
- /x # :nodoc:
-
- START_OF_ERB = /
- <%(?!%)
- /x # :nodoc:
-
- protected
-
- def setup
- @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- def reset_instance
- super
- @html_scanner.reset
- end
-
- def scan_tokens encoder, options
-
- until eos?
-
- if (match = scan_until(/(?=#{START_OF_ERB})/o) || scan_rest) and not match.empty?
- @html_scanner.tokenize match, :tokens => encoder
-
- elsif match = scan(/#{ERB_RUBY_BLOCK}/o)
- start_tag = self[1]
- code = self[2]
- end_tag = self[3]
-
- encoder.begin_group :inline
- encoder.text_token start_tag, :inline_delimiter
-
- if start_tag == '<%#'
- encoder.text_token code, :comment
- else
- @ruby_scanner.tokenize code, :tokens => encoder
- end unless code.empty?
-
- encoder.text_token end_tag, :inline_delimiter unless end_tag.empty?
- encoder.end_group :inline
-
- else
- raise_inspect 'else-case reached!', encoder
-
- end
-
- end
-
- encoder
-
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/groovy.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/groovy.rb
deleted file mode 100644
index cf55daf22..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/groovy.rb
+++ /dev/null
@@ -1,255 +0,0 @@
-module CodeRay
-module Scanners
-
- load :java
-
- # Scanner for Groovy.
- class Groovy < Java
-
- register_for :groovy
-
- # TODO: check list of keywords
- GROOVY_KEYWORDS = %w[
- as assert def in
- ] # :nodoc:
- KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
- case instanceof new return throw typeof while as assert in
- ] # :nodoc:
- GROOVY_MAGIC_VARIABLES = %w[ it ] # :nodoc:
-
- IDENT_KIND = Java::IDENT_KIND.dup.
- add(GROOVY_KEYWORDS, :keyword).
- add(GROOVY_MAGIC_VARIABLES, :local_variable) # :nodoc:
-
- ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc:
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # :nodoc: no 4-byte unicode chars? U[a-fA-F0-9]{8}
- REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x # :nodoc:
-
- # TODO: interpretation inside ', ", /
- STRING_CONTENT_PATTERN = {
- "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/,
- '"' => /[^\\$"\n]+/,
- "'''" => /(?>[^\\']+|'(?!''))+/,
- '"""' => /(?>[^\\$"]+|"(?!""))+/,
- '/' => /[^\\$\/\n]+/,
- } # :nodoc:
-
- protected
-
- def scan_tokens encoder, options
-
- state = :initial
- inline_block_stack = []
- inline_block_paren_depth = nil
- string_delimiter = nil
- import_clause = class_name_follows = last_token = after_def = false
- value_expected = true
-
- until eos?
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- encoder.text_token match, :space
- if match.index ?\n
- import_clause = after_def = false
- value_expected = true unless value_expected
- end
- next
-
- elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- value_expected = true
- after_def = false
- encoder.text_token match, :comment
-
- elsif bol? && match = scan(/ \#!.* /x)
- encoder.text_token match, :doctype
-
- elsif import_clause && match = scan(/ (?!as) #{IDENT} (?: \. #{IDENT} )* (?: \.\* )? /ox)
- after_def = value_expected = false
- encoder.text_token match, :include
-
- elsif match = scan(/ #{IDENT} | \[\] /ox)
- kind = IDENT_KIND[match]
- value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
- if last_token == '.'
- kind = :ident
- elsif class_name_follows
- kind = :class
- class_name_follows = false
- elsif after_def && check(/\s*[({]/)
- kind = :method
- after_def = false
- elsif kind == :ident && last_token != '?' && check(/:/)
- kind = :key
- else
- class_name_follows = true if match == 'class' || (import_clause && match == 'as')
- import_clause = match == 'import'
- after_def = true if match == 'def'
- end
- encoder.text_token match, kind
-
- elsif match = scan(/;/)
- import_clause = after_def = false
- value_expected = true
- encoder.text_token match, :operator
-
- elsif match = scan(/\{/)
- class_name_follows = after_def = false
- value_expected = true
- encoder.text_token match, :operator
- if !inline_block_stack.empty?
- inline_block_paren_depth += 1
- end
-
- # TODO: ~'...', ~"..." and ~/.../ style regexps
- elsif match = scan(/ \.\.<? | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ |
- && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<<?=? | >>>?=? /x)
- value_expected = true
- value_expected = :regexp if match == '~'
- after_def = false
- encoder.text_token match, :operator
-
- elsif match = scan(/ [)\]}] /x)
- value_expected = after_def = false
- if !inline_block_stack.empty? && match == '}'
- inline_block_paren_depth -= 1
- if inline_block_paren_depth == 0 # closing brace of inline block reached
- encoder.text_token match, :inline_delimiter
- encoder.end_group :inline
- state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop
- next
- end
- end
- encoder.text_token match, :operator
-
- elsif check(/[\d.]/)
- after_def = value_expected = false
- if match = scan(/0[xX][0-9A-Fa-f]+/)
- encoder.text_token match, :hex
- elsif match = scan(/(?>0[0-7]+)(?![89.eEfF])/)
- encoder.text_token match, :octal
- elsif match = scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
- encoder.text_token match, :float
- elsif match = scan(/\d+[lLgG]?/)
- encoder.text_token match, :integer
- end
-
- elsif match = scan(/'''|"""/)
- after_def = value_expected = false
- state = :multiline_string
- encoder.begin_group :string
- string_delimiter = match
- encoder.text_token match, :delimiter
-
- # TODO: record.'name' syntax
- elsif match = scan(/["']/)
- after_def = value_expected = false
- state = match == '/' ? :regexp : :string
- encoder.begin_group state
- string_delimiter = match
- encoder.text_token match, :delimiter
-
- elsif value_expected && match = scan(/\//)
- after_def = value_expected = false
- encoder.begin_group :regexp
- state = :regexp
- string_delimiter = '/'
- encoder.text_token match, :delimiter
-
- elsif match = scan(/ @ #{IDENT} /ox)
- after_def = value_expected = false
- encoder.text_token match, :annotation
-
- elsif match = scan(/\//)
- after_def = false
- value_expected = true
- encoder.text_token match, :operator
-
- else
- encoder.text_token getch, :error
-
- end
-
- when :string, :regexp, :multiline_string
- if match = scan(STRING_CONTENT_PATTERN[string_delimiter])
- encoder.text_token match, :content
-
- elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/)
- encoder.text_token match, :delimiter
- if state == :regexp
- # TODO: regexp modifiers? s, m, x, i?
- modifiers = scan(/[ix]+/)
- encoder.text_token modifiers, :modifier if modifiers && !modifiers.empty?
- end
- state = :string if state == :multiline_string
- encoder.end_group state
- string_delimiter = nil
- after_def = value_expected = false
- state = :initial
- next
-
- elsif (state == :string || state == :multiline_string) &&
- (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter[0] == ?' && !(match == "\\\\" || match == "\\'")
- encoder.text_token match, :content
- else
- encoder.text_token match, :char
- end
- elsif state == :regexp && match = scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- encoder.text_token match, :char
-
- elsif match = scan(/ \$ #{IDENT} /mox)
- encoder.begin_group :inline
- encoder.text_token '$', :inline_delimiter
- match = match[1..-1]
- encoder.text_token match, IDENT_KIND[match]
- encoder.end_group :inline
- next
- elsif match = scan(/ \$ \{ /x)
- encoder.begin_group :inline
- encoder.text_token match, :inline_delimiter
- inline_block_stack << [state, string_delimiter, inline_block_paren_depth]
- inline_block_paren_depth = 1
- state = :initial
- next
-
- elsif match = scan(/ \$ /mx)
- encoder.text_token match, :content
-
- elsif match = scan(/ \\. /mx)
- encoder.text_token match, :content # TODO: Shouldn't this be :error?
-
- elsif match = scan(/ \\ | \n /x)
- encoder.end_group state
- encoder.text_token match, :error
- after_def = value_expected = false
- state = :initial
-
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), encoder
-
- end
-
- else
- raise_inspect 'Unknown state', encoder
-
- end
-
- last_token = match unless [:space, :comment, :doctype].include? kind
-
- end
-
- if [:multiline_string, :string, :regexp].include? state
- encoder.end_group state
- end
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/haml.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/haml.rb
deleted file mode 100644
index 5433790a9..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/haml.rb
+++ /dev/null
@@ -1,168 +0,0 @@
-module CodeRay
-module Scanners
-
- load :ruby
- load :html
- load :java_script
-
- class HAML < Scanner
-
- register_for :haml
- title 'HAML Template'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- protected
-
- def setup
- super
- @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
- @embedded_ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true, :state => @ruby_scanner.interpreted_string_state
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true
- end
-
- def scan_tokens encoder, options
-
- match = nil
- code = ''
-
- until eos?
-
- if bol?
- if match = scan(/!!!.*/)
- encoder.text_token match, :doctype
- next
- end
-
- if match = scan(/(?>( *)(\/(?!\[if)|-\#|:javascript|:ruby|:\w+) *)(?=\n)/)
- encoder.text_token match, :comment
-
- code = self[2]
- if match = scan(/(?:\n+#{self[1]} .*)+/)
- case code
- when '/', '-#'
- encoder.text_token match, :comment
- when ':javascript'
- # TODO: recognize #{...} snippets inside JavaScript
- @java_script_scanner ||= CodeRay.scanner :java_script, :tokens => @tokens, :keep_tokens => true
- @java_script_scanner.tokenize match, :tokens => encoder
- when ':ruby'
- @ruby_scanner.tokenize match, :tokens => encoder
- when /:\w+/
- encoder.text_token match, :comment
- else
- raise 'else-case reached: %p' % [code]
- end
- end
- end
-
- if match = scan(/ +/)
- encoder.text_token match, :space
- end
-
- if match = scan(/\/.*/)
- encoder.text_token match, :comment
- next
- end
-
- if match = scan(/\\/)
- encoder.text_token match, :plain
- if match = scan(/.+/)
- @html_scanner.tokenize match, :tokens => encoder
- end
- next
- end
-
- tag = false
-
- if match = scan(/%[\w:]+\/?/)
- encoder.text_token match, :tag
- # if match = scan(/( +)(.+)/)
- # encoder.text_token self[1], :space
- # @embedded_ruby_scanner.tokenize self[2], :tokens => encoder
- # end
- tag = true
- end
-
- while match = scan(/([.#])[-\w]*\w/)
- encoder.text_token match, self[1] == '#' ? :constant : :class
- tag = true
- end
-
- if tag && match = scan(/(\()([^)]+)?(\))?/)
- # TODO: recognize title=@title, class="widget_#{@widget.number}"
- encoder.text_token self[1], :plain
- @html_scanner.tokenize self[2], :tokens => encoder, :state => :attribute if self[2]
- encoder.text_token self[3], :plain if self[3]
- end
-
- if tag && match = scan(/\{/)
- encoder.text_token match, :plain
-
- code = ''
- level = 1
- while true
- code << scan(/([^\{\},\n]|, *\n?)*/)
- case match = getch
- when '{'
- level += 1
- code << match
- when '}'
- level -= 1
- if level > 0
- code << match
- else
- break
- end
- when "\n", ",", nil
- break
- end
- end
- @ruby_scanner.tokenize code, :tokens => encoder unless code.empty?
-
- encoder.text_token match, :plain if match
- end
-
- if tag && match = scan(/(\[)([^\]\n]+)?(\])?/)
- encoder.text_token self[1], :plain
- @ruby_scanner.tokenize self[2], :tokens => encoder if self[2]
- encoder.text_token self[3], :plain if self[3]
- end
-
- if tag && match = scan(/\//)
- encoder.text_token match, :tag
- end
-
- if scan(/(>?<?[-=]|[&!]=|(& |!)|~)( *)([^,\n\|]+(?:(, *|\|(?=.|\n.*\|$))\n?[^,\n\|]*)*)?/)
- encoder.text_token self[1] + self[3], :plain
- if self[4]
- if self[2]
- @embedded_ruby_scanner.tokenize self[4], :tokens => encoder
- else
- @ruby_scanner.tokenize self[4], :tokens => encoder
- end
- end
- elsif match = scan(/((?:<|><?)(?![!?\/\w]))?(.+)?/)
- encoder.text_token self[1], :plain if self[1]
- # TODO: recognize #{...} snippets
- @html_scanner.tokenize self[2], :tokens => encoder if self[2]
- end
-
- elsif match = scan(/.+/)
- @html_scanner.tokenize match, :tokens => encoder
-
- end
-
- if match = scan(/\n/)
- encoder.text_token match, :space
- end
- end
-
- encoder
-
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/html.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/html.rb
deleted file mode 100644
index 98d06fc95..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/html.rb
+++ /dev/null
@@ -1,253 +0,0 @@
-module CodeRay
-module Scanners
-
- # HTML Scanner
- #
- # Alias: +xhtml+
- #
- # See also: Scanners::XML
- class HTML < Scanner
-
- register_for :html
-
- KINDS_NOT_LOC = [
- :comment, :doctype, :preprocessor,
- :tag, :attribute_name, :operator,
- :attribute_value, :string,
- :plain, :entity, :error,
- ] # :nodoc:
-
- EVENT_ATTRIBUTES = %w(
- onabort onafterprint onbeforeprint onbeforeunload onblur oncanplay
- oncanplaythrough onchange onclick oncontextmenu oncuechange ondblclick
- ondrag ondragdrop ondragend ondragenter ondragleave ondragover
- ondragstart ondrop ondurationchange onemptied onended onerror onfocus
- onformchange onforminput onhashchange oninput oninvalid onkeydown
- onkeypress onkeyup onload onloadeddata onloadedmetadata onloadstart
- onmessage onmousedown onmousemove onmouseout onmouseover onmouseup
- onmousewheel onmove onoffline ononline onpagehide onpageshow onpause
- onplay onplaying onpopstate onprogress onratechange onreadystatechange
- onredo onreset onresize onscroll onseeked onseeking onselect onshow
- onstalled onstorage onsubmit onsuspend ontimeupdate onundo onunload
- onvolumechange onwaiting
- )
-
- IN_ATTRIBUTE = WordList::CaseIgnoring.new(nil).
- add(EVENT_ATTRIBUTES, :script)
-
- ATTR_NAME = /[\w.:-]+/ # :nodoc:
- TAG_END = /\/?>/ # :nodoc:
- HEX = /[0-9a-fA-F]/ # :nodoc:
- ENTITY = /
- &
- (?:
- \w+
- |
- \#
- (?:
- \d+
- |
- x#{HEX}+
- )
- )
- ;
- /ox # :nodoc:
-
- PLAIN_STRING_CONTENT = {
- "'" => /[^&'>\n]+/,
- '"' => /[^&">\n]+/,
- } # :nodoc:
-
- def reset
- super
- @state = :initial
- @plain_string_content = nil
- end
-
- protected
-
- def setup
- @state = :initial
- @plain_string_content = nil
- end
-
- def scan_java_script encoder, code
- if code && !code.empty?
- @java_script_scanner ||= Scanners::JavaScript.new '', :keep_tokens => true
- # encoder.begin_group :inline
- @java_script_scanner.tokenize code, :tokens => encoder
- # encoder.end_group :inline
- end
- end
-
- def scan_tokens encoder, options
- state = options[:state] || @state
- plain_string_content = @plain_string_content
- in_tag = in_attribute = nil
-
- encoder.begin_group :string if state == :attribute_value_string
-
- until eos?
-
- if state != :in_special_tag && match = scan(/\s+/m)
- encoder.text_token match, :space
-
- else
-
- case state
-
- when :initial
- if match = scan(/<!--(?:.*?-->|.*)/m)
- encoder.text_token match, :comment
- elsif match = scan(/<!DOCTYPE(?:.*?>|.*)/m)
- encoder.text_token match, :doctype
- elsif match = scan(/<\?xml(?:.*?\?>|.*)/m)
- encoder.text_token match, :preprocessor
- elsif match = scan(/<\?(?:.*?\?>|.*)/m)
- encoder.text_token match, :comment
- elsif match = scan(/<\/[-\w.:]*>?/m)
- in_tag = nil
- encoder.text_token match, :tag
- elsif match = scan(/<(?:(script)|[-\w.:]+)(>)?/m)
- encoder.text_token match, :tag
- in_tag = self[1]
- if self[2]
- state = :in_special_tag if in_tag
- else
- state = :attribute
- end
- elsif match = scan(/[^<>&]+/)
- encoder.text_token match, :plain
- elsif match = scan(/#{ENTITY}/ox)
- encoder.text_token match, :entity
- elsif match = scan(/[<>&]/)
- in_tag = nil
- encoder.text_token match, :error
- else
- raise_inspect '[BUG] else-case reached with state %p' % [state], encoder
- end
-
- when :attribute
- if match = scan(/#{TAG_END}/o)
- encoder.text_token match, :tag
- in_attribute = nil
- if in_tag
- state = :in_special_tag
- else
- state = :initial
- end
- elsif match = scan(/#{ATTR_NAME}/o)
- in_attribute = IN_ATTRIBUTE[match]
- encoder.text_token match, :attribute_name
- state = :attribute_equal
- else
- in_tag = nil
- encoder.text_token getch, :error
- end
-
- when :attribute_equal
- if match = scan(/=/) #/
- encoder.text_token match, :operator
- state = :attribute_value
- elsif scan(/#{ATTR_NAME}/o) || scan(/#{TAG_END}/o)
- state = :attribute
- next
- else
- encoder.text_token getch, :error
- state = :attribute
- end
-
- when :attribute_value
- if match = scan(/#{ATTR_NAME}/o)
- encoder.text_token match, :attribute_value
- state = :attribute
- elsif match = scan(/["']/)
- if in_attribute == :script
- encoder.begin_group :inline
- encoder.text_token match, :inline_delimiter
- if scan(/javascript:[ \t]*/)
- encoder.text_token matched, :comment
- end
- code = scan_until(match == '"' ? /(?="|\z)/ : /(?='|\z)/)
- scan_java_script encoder, code
- match = scan(/["']/)
- encoder.text_token match, :inline_delimiter if match
- encoder.end_group :inline
- state = :attribute
- in_attribute = nil
- else
- encoder.begin_group :string
- state = :attribute_value_string
- plain_string_content = PLAIN_STRING_CONTENT[match]
- encoder.text_token match, :delimiter
- end
- elsif match = scan(/#{TAG_END}/o)
- encoder.text_token match, :tag
- state = :initial
- else
- encoder.text_token getch, :error
- end
-
- when :attribute_value_string
- if match = scan(plain_string_content)
- encoder.text_token match, :content
- elsif match = scan(/['"]/)
- encoder.text_token match, :delimiter
- encoder.end_group :string
- state = :attribute
- elsif match = scan(/#{ENTITY}/ox)
- encoder.text_token match, :entity
- elsif match = scan(/&/)
- encoder.text_token match, :content
- elsif match = scan(/[\n>]/)
- encoder.end_group :string
- state = :initial
- encoder.text_token match, :error
- end
-
- when :in_special_tag
- case in_tag
- when 'script'
- encoder.text_token match, :space if match = scan(/[ \t]*\n/)
- if scan(/(\s*<!--)(?:(.*?)(-->)|(.*))/m)
- code = self[2] || self[4]
- closing = self[3]
- encoder.text_token self[1], :comment
- else
- code = scan_until(/(?=(?:\n\s*)?<\/script>)|\z/)
- closing = false
- end
- unless code.empty?
- encoder.begin_group :inline
- scan_java_script encoder, code
- encoder.end_group :inline
- end
- encoder.text_token closing, :comment if closing
- state = :initial
- else
- raise 'unknown special tag: %p' % [in_tag]
- end
-
- else
- raise_inspect 'Unknown state: %p' % [state], encoder
-
- end
-
- end
-
- end
-
- if options[:keep_state]
- @state = state
- @plain_string_content = plain_string_content
- end
-
- encoder.end_group :string if state == :attribute_value_string
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java.rb
deleted file mode 100644
index d3502e3a8..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java.rb
+++ /dev/null
@@ -1,174 +0,0 @@
-module CodeRay
-module Scanners
-
- # Scanner for Java.
- class Java < Scanner
-
- register_for :java
-
- autoload :BuiltinTypes, 'coderay/scanners/java/builtin_types'
-
- # http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
- KEYWORDS = %w[
- assert break case catch continue default do else
- finally for if instanceof import new package
- return switch throw try typeof while
- debugger export
- ] # :nodoc:
- RESERVED = %w[ const goto ] # :nodoc:
- CONSTANTS = %w[ false null true ] # :nodoc:
- MAGIC_VARIABLES = %w[ this super ] # :nodoc:
- TYPES = %w[
- boolean byte char class double enum float int interface long
- short void
- ] << '[]' # :nodoc: because int[] should be highlighted as a type
- DIRECTIVES = %w[
- abstract extends final implements native private protected public
- static strictfp synchronized throws transient volatile
- ] # :nodoc:
-
- IDENT_KIND = WordList.new(:ident).
- add(KEYWORDS, :keyword).
- add(RESERVED, :reserved).
- add(CONSTANTS, :predefined_constant).
- add(MAGIC_VARIABLES, :local_variable).
- add(TYPES, :type).
- add(BuiltinTypes::List, :predefined_type).
- add(BuiltinTypes::List.select { |builtin| builtin[/(Error|Exception)$/] }, :exception).
- add(DIRECTIVES, :directive) # :nodoc:
-
- ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc:
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x # :nodoc:
- STRING_CONTENT_PATTERN = {
- "'" => /[^\\']+/,
- '"' => /[^\\"]+/,
- '/' => /[^\\\/]+/,
- } # :nodoc:
- IDENT = /[a-zA-Z_][A-Za-z_0-9]*/ # :nodoc:
-
- protected
-
- def scan_tokens encoder, options
-
- state = :initial
- string_delimiter = nil
- package_name_expected = false
- class_name_follows = false
- last_token_dot = false
-
- until eos?
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- encoder.text_token match, :space
- next
-
- elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- encoder.text_token match, :comment
- next
-
- elsif package_name_expected && match = scan(/ #{IDENT} (?: \. #{IDENT} )* /ox)
- encoder.text_token match, package_name_expected
-
- elsif match = scan(/ #{IDENT} | \[\] /ox)
- kind = IDENT_KIND[match]
- if last_token_dot
- kind = :ident
- elsif class_name_follows
- kind = :class
- class_name_follows = false
- else
- case match
- when 'import'
- package_name_expected = :include
- when 'package'
- package_name_expected = :namespace
- when 'class', 'interface'
- class_name_follows = true
- end
- end
- encoder.text_token match, kind
-
- elsif match = scan(/ \.(?!\d) | [,?:()\[\]}] | -- | \+\+ | && | \|\| | \*\*=? | [-+*\/%^~&|<>=!]=? | <<<?=? | >>>?=? /x)
- encoder.text_token match, :operator
-
- elsif match = scan(/;/)
- package_name_expected = false
- encoder.text_token match, :operator
-
- elsif match = scan(/\{/)
- class_name_follows = false
- encoder.text_token match, :operator
-
- elsif check(/[\d.]/)
- if match = scan(/0[xX][0-9A-Fa-f]+/)
- encoder.text_token match, :hex
- elsif match = scan(/(?>0[0-7]+)(?![89.eEfF])/)
- encoder.text_token match, :octal
- elsif match = scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
- encoder.text_token match, :float
- elsif match = scan(/\d+[lL]?/)
- encoder.text_token match, :integer
- end
-
- elsif match = scan(/["']/)
- state = :string
- encoder.begin_group state
- string_delimiter = match
- encoder.text_token match, :delimiter
-
- elsif match = scan(/ @ #{IDENT} /ox)
- encoder.text_token match, :annotation
-
- else
- encoder.text_token getch, :error
-
- end
-
- when :string
- if match = scan(STRING_CONTENT_PATTERN[string_delimiter])
- encoder.text_token match, :content
- elsif match = scan(/["'\/]/)
- encoder.text_token match, :delimiter
- encoder.end_group state
- state = :initial
- string_delimiter = nil
- elsif state == :string && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
- encoder.text_token match, :content
- else
- encoder.text_token match, :char
- end
- elsif match = scan(/\\./m)
- encoder.text_token match, :content
- elsif match = scan(/ \\ | $ /x)
- encoder.end_group state
- state = :initial
- encoder.text_token match, :error
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), encoder
- end
-
- else
- raise_inspect 'Unknown state', encoder
-
- end
-
- last_token_dot = match == '.'
-
- end
-
- if state == :string
- encoder.end_group state
- end
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java/builtin_types.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java/builtin_types.rb
deleted file mode 100644
index d1b8b73be..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java/builtin_types.rb
+++ /dev/null
@@ -1,421 +0,0 @@
-module CodeRay
-module Scanners
-
- module Java::BuiltinTypes # :nodoc:
-
- #:nocov:
- List = %w[
- AbstractAction AbstractBorder AbstractButton AbstractCellEditor AbstractCollection
- AbstractColorChooserPanel AbstractDocument AbstractExecutorService AbstractInterruptibleChannel
- AbstractLayoutCache AbstractList AbstractListModel AbstractMap AbstractMethodError AbstractPreferences
- AbstractQueue AbstractQueuedSynchronizer AbstractSelectableChannel AbstractSelectionKey AbstractSelector
- AbstractSequentialList AbstractSet AbstractSpinnerModel AbstractTableModel AbstractUndoableEdit
- AbstractWriter AccessControlContext AccessControlException AccessController AccessException Accessible
- AccessibleAction AccessibleAttributeSequence AccessibleBundle AccessibleComponent AccessibleContext
- AccessibleEditableText AccessibleExtendedComponent AccessibleExtendedTable AccessibleExtendedText
- AccessibleHyperlink AccessibleHypertext AccessibleIcon AccessibleKeyBinding AccessibleObject
- AccessibleRelation AccessibleRelationSet AccessibleResourceBundle AccessibleRole AccessibleSelection
- AccessibleState AccessibleStateSet AccessibleStreamable AccessibleTable AccessibleTableModelChange
- AccessibleText AccessibleTextSequence AccessibleValue AccountException AccountExpiredException
- AccountLockedException AccountNotFoundException Acl AclEntry AclNotFoundException Action ActionEvent
- ActionListener ActionMap ActionMapUIResource Activatable ActivateFailedException ActivationDesc
- ActivationException ActivationGroup ActivationGroupDesc ActivationGroupID ActivationGroup_Stub
- ActivationID ActivationInstantiator ActivationMonitor ActivationSystem Activator ActiveEvent
- ActivityCompletedException ActivityRequiredException Adjustable AdjustmentEvent AdjustmentListener
- Adler32 AffineTransform AffineTransformOp AlgorithmParameterGenerator AlgorithmParameterGeneratorSpi
- AlgorithmParameters AlgorithmParameterSpec AlgorithmParametersSpi AllPermission AlphaComposite
- AlreadyBoundException AlreadyConnectedException AncestorEvent AncestorListener AnnotatedElement
- Annotation AnnotationFormatError AnnotationTypeMismatchException AppConfigurationEntry Appendable Applet
- AppletContext AppletInitializer AppletStub Arc2D Area AreaAveragingScaleFilter ArithmeticException Array
- ArrayBlockingQueue ArrayIndexOutOfBoundsException ArrayList Arrays ArrayStoreException ArrayType
- AssertionError AsyncBoxView AsynchronousCloseException AtomicBoolean AtomicInteger AtomicIntegerArray
- AtomicIntegerFieldUpdater AtomicLong AtomicLongArray AtomicLongFieldUpdater AtomicMarkableReference
- AtomicReference AtomicReferenceArray AtomicReferenceFieldUpdater AtomicStampedReference Attribute
- AttributeChangeNotification AttributeChangeNotificationFilter AttributedCharacterIterator
- AttributedString AttributeException AttributeInUseException AttributeList AttributeModificationException
- AttributeNotFoundException Attributes AttributeSet AttributeSetUtilities AttributeValueExp AudioClip
- AudioFileFormat AudioFileReader AudioFileWriter AudioFormat AudioInputStream AudioPermission AudioSystem
- AuthenticationException AuthenticationNotSupportedException Authenticator AuthorizeCallback
- AuthPermission AuthProvider Autoscroll AWTError AWTEvent AWTEventListener AWTEventListenerProxy
- AWTEventMulticaster AWTException AWTKeyStroke AWTPermission BackingStoreException
- BadAttributeValueExpException BadBinaryOpValueExpException BadLocationException BadPaddingException
- BadStringOperationException BandCombineOp BandedSampleModel BaseRowSet BasicArrowButton BasicAttribute
- BasicAttributes BasicBorders BasicButtonListener BasicButtonUI BasicCheckBoxMenuItemUI BasicCheckBoxUI
- BasicColorChooserUI BasicComboBoxEditor BasicComboBoxRenderer BasicComboBoxUI BasicComboPopup
- BasicControl BasicDesktopIconUI BasicDesktopPaneUI BasicDirectoryModel BasicEditorPaneUI
- BasicFileChooserUI BasicFormattedTextFieldUI BasicGraphicsUtils BasicHTML BasicIconFactory
- BasicInternalFrameTitlePane BasicInternalFrameUI BasicLabelUI BasicListUI BasicLookAndFeel
- BasicMenuBarUI BasicMenuItemUI BasicMenuUI BasicOptionPaneUI BasicPanelUI BasicPasswordFieldUI
- BasicPermission BasicPopupMenuSeparatorUI BasicPopupMenuUI BasicProgressBarUI BasicRadioButtonMenuItemUI
- BasicRadioButtonUI BasicRootPaneUI BasicScrollBarUI BasicScrollPaneUI BasicSeparatorUI BasicSliderUI
- BasicSpinnerUI BasicSplitPaneDivider BasicSplitPaneUI BasicStroke BasicTabbedPaneUI BasicTableHeaderUI
- BasicTableUI BasicTextAreaUI BasicTextFieldUI BasicTextPaneUI BasicTextUI BasicToggleButtonUI
- BasicToolBarSeparatorUI BasicToolBarUI BasicToolTipUI BasicTreeUI BasicViewportUI BatchUpdateException
- BeanContext BeanContextChild BeanContextChildComponentProxy BeanContextChildSupport
- BeanContextContainerProxy BeanContextEvent BeanContextMembershipEvent BeanContextMembershipListener
- BeanContextProxy BeanContextServiceAvailableEvent BeanContextServiceProvider
- BeanContextServiceProviderBeanInfo BeanContextServiceRevokedEvent BeanContextServiceRevokedListener
- BeanContextServices BeanContextServicesListener BeanContextServicesSupport BeanContextSupport
- BeanDescriptor BeanInfo Beans BevelBorder Bidi BigDecimal BigInteger BinaryRefAddr BindException Binding
- BitSet Blob BlockingQueue BlockView BMPImageWriteParam Book Boolean BooleanControl Border BorderFactory
- BorderLayout BorderUIResource BoundedRangeModel Box BoxLayout BoxView BreakIterator
- BrokenBarrierException Buffer BufferCapabilities BufferedImage BufferedImageFilter BufferedImageOp
- BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter BufferOverflowException
- BufferStrategy BufferUnderflowException Button ButtonGroup ButtonModel ButtonUI Byte
- ByteArrayInputStream ByteArrayOutputStream ByteBuffer ByteChannel ByteLookupTable ByteOrder CachedRowSet
- CacheRequest CacheResponse Calendar Callable CallableStatement Callback CallbackHandler
- CancelablePrintJob CancellationException CancelledKeyException CannotProceedException
- CannotRedoException CannotUndoException Canvas CardLayout Caret CaretEvent CaretListener CellEditor
- CellEditorListener CellRendererPane Certificate CertificateEncodingException CertificateException
- CertificateExpiredException CertificateFactory CertificateFactorySpi CertificateNotYetValidException
- CertificateParsingException CertPath CertPathBuilder CertPathBuilderException CertPathBuilderResult
- CertPathBuilderSpi CertPathParameters CertPathTrustManagerParameters CertPathValidator
- CertPathValidatorException CertPathValidatorResult CertPathValidatorSpi CertSelector CertStore
- CertStoreException CertStoreParameters CertStoreSpi ChangedCharSetException ChangeEvent ChangeListener
- Channel Channels Character CharacterCodingException CharacterIterator CharArrayReader CharArrayWriter
- CharBuffer CharConversionException CharSequence Charset CharsetDecoder CharsetEncoder CharsetProvider
- Checkbox CheckboxGroup CheckboxMenuItem CheckedInputStream CheckedOutputStream Checksum Choice
- ChoiceCallback ChoiceFormat Chromaticity Cipher CipherInputStream CipherOutputStream CipherSpi Class
- ClassCastException ClassCircularityError ClassDefinition ClassDesc ClassFileTransformer ClassFormatError
- ClassLoader ClassLoaderRepository ClassLoadingMXBean ClassNotFoundException Clip Clipboard
- ClipboardOwner Clob Cloneable CloneNotSupportedException Closeable ClosedByInterruptException
- ClosedChannelException ClosedSelectorException CMMException CoderMalfunctionError CoderResult CodeSigner
- CodeSource CodingErrorAction CollationElementIterator CollationKey Collator Collection
- CollectionCertStoreParameters Collections Color ColorChooserComponentFactory ColorChooserUI
- ColorConvertOp ColorModel ColorSelectionModel ColorSpace ColorSupported ColorType ColorUIResource
- ComboBoxEditor ComboBoxModel ComboBoxUI ComboPopup CommunicationException Comparable Comparator
- CompilationMXBean Compiler CompletionService Component ComponentAdapter ComponentColorModel
- ComponentEvent ComponentInputMap ComponentInputMapUIResource ComponentListener ComponentOrientation
- ComponentSampleModel ComponentUI ComponentView Composite CompositeContext CompositeData
- CompositeDataSupport CompositeName CompositeType CompositeView CompoundBorder CompoundControl
- CompoundEdit CompoundName Compression ConcurrentHashMap ConcurrentLinkedQueue ConcurrentMap
- ConcurrentModificationException Condition Configuration ConfigurationException ConfirmationCallback
- ConnectException ConnectIOException Connection ConnectionEvent ConnectionEventListener
- ConnectionPendingException ConnectionPoolDataSource ConsoleHandler Constructor Container
- ContainerAdapter ContainerEvent ContainerListener ContainerOrderFocusTraversalPolicy ContentHandler
- ContentHandlerFactory ContentModel Context ContextNotEmptyException ContextualRenderedImageFactory
- Control ControlFactory ControllerEventListener ConvolveOp CookieHandler Copies CopiesSupported
- CopyOnWriteArrayList CopyOnWriteArraySet CountDownLatch CounterMonitor CounterMonitorMBean CRC32
- CredentialException CredentialExpiredException CredentialNotFoundException CRL CRLException CRLSelector
- CropImageFilter CSS CubicCurve2D Currency Cursor Customizer CyclicBarrier DatabaseMetaData DataBuffer
- DataBufferByte DataBufferDouble DataBufferFloat DataBufferInt DataBufferShort DataBufferUShort
- DataFlavor DataFormatException DatagramChannel DatagramPacket DatagramSocket DatagramSocketImpl
- DatagramSocketImplFactory DataInput DataInputStream DataLine DataOutput DataOutputStream DataSource
- DataTruncation DatatypeConfigurationException DatatypeConstants DatatypeFactory Date DateFormat
- DateFormatSymbols DateFormatter DateTimeAtCompleted DateTimeAtCreation DateTimeAtProcessing
- DateTimeSyntax DebugGraphics DecimalFormat DecimalFormatSymbols DefaultBoundedRangeModel
- DefaultButtonModel DefaultCaret DefaultCellEditor DefaultColorSelectionModel DefaultComboBoxModel
- DefaultDesktopManager DefaultEditorKit DefaultFocusManager DefaultFocusTraversalPolicy DefaultFormatter
- DefaultFormatterFactory DefaultHighlighter DefaultKeyboardFocusManager DefaultListCellRenderer
- DefaultListModel DefaultListSelectionModel DefaultLoaderRepository DefaultMenuLayout DefaultMetalTheme
- DefaultMutableTreeNode DefaultPersistenceDelegate DefaultSingleSelectionModel DefaultStyledDocument
- DefaultTableCellRenderer DefaultTableColumnModel DefaultTableModel DefaultTextUI DefaultTreeCellEditor
- DefaultTreeCellRenderer DefaultTreeModel DefaultTreeSelectionModel Deflater DeflaterOutputStream Delayed
- DelayQueue DelegationPermission Deprecated Descriptor DescriptorAccess DescriptorSupport DESedeKeySpec
- DesignMode DESKeySpec DesktopIconUI DesktopManager DesktopPaneUI Destination Destroyable
- DestroyFailedException DGC DHGenParameterSpec DHKey DHParameterSpec DHPrivateKey DHPrivateKeySpec
- DHPublicKey DHPublicKeySpec Dialog Dictionary DigestException DigestInputStream DigestOutputStream
- Dimension Dimension2D DimensionUIResource DirContext DirectColorModel DirectoryManager DirObjectFactory
- DirStateFactory DisplayMode DnDConstants Doc DocAttribute DocAttributeSet DocFlavor DocPrintJob Document
- DocumentBuilder DocumentBuilderFactory Documented DocumentEvent DocumentFilter DocumentListener
- DocumentName DocumentParser DomainCombiner DOMLocator DOMResult DOMSource Double DoubleBuffer
- DragGestureEvent DragGestureListener DragGestureRecognizer DragSource DragSourceAdapter
- DragSourceContext DragSourceDragEvent DragSourceDropEvent DragSourceEvent DragSourceListener
- DragSourceMotionListener Driver DriverManager DriverPropertyInfo DropTarget DropTargetAdapter
- DropTargetContext DropTargetDragEvent DropTargetDropEvent DropTargetEvent DropTargetListener DSAKey
- DSAKeyPairGenerator DSAParameterSpec DSAParams DSAPrivateKey DSAPrivateKeySpec DSAPublicKey
- DSAPublicKeySpec DTD DTDConstants DuplicateFormatFlagsException Duration DynamicMBean ECField ECFieldF2m
- ECFieldFp ECGenParameterSpec ECKey ECParameterSpec ECPoint ECPrivateKey ECPrivateKeySpec ECPublicKey
- ECPublicKeySpec EditorKit Element ElementIterator ElementType Ellipse2D EllipticCurve EmptyBorder
- EmptyStackException EncodedKeySpec Encoder EncryptedPrivateKeyInfo Entity Enum
- EnumConstantNotPresentException EnumControl Enumeration EnumMap EnumSet EnumSyntax EOFException Error
- ErrorListener ErrorManager EtchedBorder Event EventContext EventDirContext EventHandler EventListener
- EventListenerList EventListenerProxy EventObject EventQueue EventSetDescriptor Exception
- ExceptionInInitializerError ExceptionListener Exchanger ExecutionException Executor
- ExecutorCompletionService Executors ExecutorService ExemptionMechanism ExemptionMechanismException
- ExemptionMechanismSpi ExpandVetoException ExportException Expression ExtendedRequest ExtendedResponse
- Externalizable FactoryConfigurationError FailedLoginException FeatureDescriptor Fidelity Field
- FieldPosition FieldView File FileCacheImageInputStream FileCacheImageOutputStream FileChannel
- FileChooserUI FileDescriptor FileDialog FileFilter FileHandler FileImageInputStream
- FileImageOutputStream FileInputStream FileLock FileLockInterruptionException FilenameFilter FileNameMap
- FileNotFoundException FileOutputStream FilePermission FileReader FileSystemView FileView FileWriter
- Filter FilteredImageSource FilteredRowSet FilterInputStream FilterOutputStream FilterReader FilterWriter
- Finishings FixedHeightLayoutCache FlatteningPathIterator FlavorEvent FlavorException FlavorListener
- FlavorMap FlavorTable Float FloatBuffer FloatControl FlowLayout FlowView Flushable FocusAdapter
- FocusEvent FocusListener FocusManager FocusTraversalPolicy Font FontFormatException FontMetrics
- FontRenderContext FontUIResource Format FormatConversionProvider FormatFlagsConversionMismatchException
- Formattable FormattableFlags Formatter FormatterClosedException FormSubmitEvent FormView Frame Future
- FutureTask GapContent GarbageCollectorMXBean GatheringByteChannel GaugeMonitor GaugeMonitorMBean
- GeneralPath GeneralSecurityException GenericArrayType GenericDeclaration GenericSignatureFormatError
- GlyphJustificationInfo GlyphMetrics GlyphVector GlyphView GradientPaint GraphicAttribute Graphics
- Graphics2D GraphicsConfigTemplate GraphicsConfiguration GraphicsDevice GraphicsEnvironment GrayFilter
- GregorianCalendar GridBagConstraints GridBagLayout GridLayout Group Guard GuardedObject GZIPInputStream
- GZIPOutputStream Handler HandshakeCompletedEvent HandshakeCompletedListener HasControls HashAttributeSet
- HashDocAttributeSet HashMap HashPrintJobAttributeSet HashPrintRequestAttributeSet
- HashPrintServiceAttributeSet HashSet Hashtable HeadlessException HierarchyBoundsAdapter
- HierarchyBoundsListener HierarchyEvent HierarchyListener Highlighter HostnameVerifier HTML HTMLDocument
- HTMLEditorKit HTMLFrameHyperlinkEvent HTMLWriter HttpRetryException HttpsURLConnection HttpURLConnection
- HyperlinkEvent HyperlinkListener ICC_ColorSpace ICC_Profile ICC_ProfileGray ICC_ProfileRGB Icon
- IconUIResource IconView Identity IdentityHashMap IdentityScope IIOByteBuffer IIOException IIOImage
- IIOInvalidTreeException IIOMetadata IIOMetadataController IIOMetadataFormat IIOMetadataFormatImpl
- IIOMetadataNode IIOParam IIOParamController IIOReadProgressListener IIOReadUpdateListener
- IIOReadWarningListener IIORegistry IIOServiceProvider IIOWriteProgressListener IIOWriteWarningListener
- IllegalAccessError IllegalAccessException IllegalArgumentException IllegalBlockingModeException
- IllegalBlockSizeException IllegalCharsetNameException IllegalClassFormatException
- IllegalComponentStateException IllegalFormatCodePointException IllegalFormatConversionException
- IllegalFormatException IllegalFormatFlagsException IllegalFormatPrecisionException
- IllegalFormatWidthException IllegalMonitorStateException IllegalPathStateException
- IllegalSelectorException IllegalStateException IllegalThreadStateException Image ImageCapabilities
- ImageConsumer ImageFilter ImageGraphicAttribute ImageIcon ImageInputStream ImageInputStreamImpl
- ImageInputStreamSpi ImageIO ImageObserver ImageOutputStream ImageOutputStreamImpl ImageOutputStreamSpi
- ImageProducer ImageReader ImageReaderSpi ImageReaderWriterSpi ImageReadParam ImageTranscoder
- ImageTranscoderSpi ImageTypeSpecifier ImageView ImageWriteParam ImageWriter ImageWriterSpi
- ImagingOpException IncompatibleClassChangeError IncompleteAnnotationException IndexColorModel
- IndexedPropertyChangeEvent IndexedPropertyDescriptor IndexOutOfBoundsException Inet4Address Inet6Address
- InetAddress InetSocketAddress Inflater InflaterInputStream InheritableThreadLocal Inherited
- InitialContext InitialContextFactory InitialContextFactoryBuilder InitialDirContext InitialLdapContext
- InlineView InputContext InputEvent InputMap InputMapUIResource InputMethod InputMethodContext
- InputMethodDescriptor InputMethodEvent InputMethodHighlight InputMethodListener InputMethodRequests
- InputMismatchException InputStream InputStreamReader InputSubset InputVerifier Insets InsetsUIResource
- InstanceAlreadyExistsException InstanceNotFoundException InstantiationError InstantiationException
- Instrument Instrumentation InsufficientResourcesException IntBuffer Integer IntegerSyntax InternalError
- InternalFrameAdapter InternalFrameEvent InternalFrameFocusTraversalPolicy InternalFrameListener
- InternalFrameUI InternationalFormatter InterruptedException InterruptedIOException
- InterruptedNamingException InterruptibleChannel IntrospectionException Introspector
- InvalidActivityException InvalidAlgorithmParameterException InvalidApplicationException
- InvalidAttributeIdentifierException InvalidAttributesException InvalidAttributeValueException
- InvalidClassException InvalidDnDOperationException InvalidKeyException InvalidKeySpecException
- InvalidMarkException InvalidMidiDataException InvalidNameException InvalidObjectException
- InvalidOpenTypeException InvalidParameterException InvalidParameterSpecException
- InvalidPreferencesFormatException InvalidPropertiesFormatException InvalidRelationIdException
- InvalidRelationServiceException InvalidRelationTypeException InvalidRoleInfoException
- InvalidRoleValueException InvalidSearchControlsException InvalidSearchFilterException
- InvalidTargetObjectTypeException InvalidTransactionException InvocationEvent InvocationHandler
- InvocationTargetException IOException ItemEvent ItemListener ItemSelectable Iterable Iterator
- IvParameterSpec JApplet JarEntry JarException JarFile JarInputStream JarOutputStream JarURLConnection
- JButton JCheckBox JCheckBoxMenuItem JColorChooser JComboBox JComponent JdbcRowSet JDesktopPane JDialog
- JEditorPane JFileChooser JFormattedTextField JFrame JInternalFrame JLabel JLayeredPane JList JMenu
- JMenuBar JMenuItem JMException JMRuntimeException JMXAuthenticator JMXConnectionNotification
- JMXConnector JMXConnectorFactory JMXConnectorProvider JMXConnectorServer JMXConnectorServerFactory
- JMXConnectorServerMBean JMXConnectorServerProvider JMXPrincipal JMXProviderException
- JMXServerErrorException JMXServiceURL JobAttributes JobHoldUntil JobImpressions JobImpressionsCompleted
- JobImpressionsSupported JobKOctets JobKOctetsProcessed JobKOctetsSupported JobMediaSheets
- JobMediaSheetsCompleted JobMediaSheetsSupported JobMessageFromOperator JobName JobOriginatingUserName
- JobPriority JobPrioritySupported JobSheets JobState JobStateReason JobStateReasons Joinable JoinRowSet
- JOptionPane JPanel JPasswordField JPEGHuffmanTable JPEGImageReadParam JPEGImageWriteParam JPEGQTable
- JPopupMenu JProgressBar JRadioButton JRadioButtonMenuItem JRootPane JScrollBar JScrollPane JSeparator
- JSlider JSpinner JSplitPane JTabbedPane JTable JTableHeader JTextArea JTextComponent JTextField
- JTextPane JToggleButton JToolBar JToolTip JTree JViewport JWindow KerberosKey KerberosPrincipal
- KerberosTicket Kernel Key KeyAdapter KeyAgreement KeyAgreementSpi KeyAlreadyExistsException
- KeyboardFocusManager KeyEvent KeyEventDispatcher KeyEventPostProcessor KeyException KeyFactory
- KeyFactorySpi KeyGenerator KeyGeneratorSpi KeyListener KeyManagementException KeyManager
- KeyManagerFactory KeyManagerFactorySpi Keymap KeyPair KeyPairGenerator KeyPairGeneratorSpi KeyRep
- KeySpec KeyStore KeyStoreBuilderParameters KeyStoreException KeyStoreSpi KeyStroke Label LabelUI
- LabelView LanguageCallback LastOwnerException LayeredHighlighter LayoutFocusTraversalPolicy
- LayoutManager LayoutManager2 LayoutQueue LDAPCertStoreParameters LdapContext LdapName
- LdapReferralException Lease Level LimitExceededException Line Line2D LineBorder LineBreakMeasurer
- LineEvent LineListener LineMetrics LineNumberInputStream LineNumberReader LineUnavailableException
- LinkageError LinkedBlockingQueue LinkedHashMap LinkedHashSet LinkedList LinkException LinkLoopException
- LinkRef List ListCellRenderer ListDataEvent ListDataListener ListenerNotFoundException ListIterator
- ListModel ListResourceBundle ListSelectionEvent ListSelectionListener ListSelectionModel ListUI ListView
- LoaderHandler Locale LocateRegistry Lock LockSupport Logger LoggingMXBean LoggingPermission LoginContext
- LoginException LoginModule LogManager LogRecord LogStream Long LongBuffer LookAndFeel LookupOp
- LookupTable Mac MacSpi MalformedInputException MalformedLinkException MalformedObjectNameException
- MalformedParameterizedTypeException MalformedURLException ManagementFactory ManagementPermission
- ManageReferralControl ManagerFactoryParameters Manifest Map MappedByteBuffer MarshalException
- MarshalledObject MaskFormatter Matcher MatchResult Math MathContext MatteBorder MBeanAttributeInfo
- MBeanConstructorInfo MBeanException MBeanFeatureInfo MBeanInfo MBeanNotificationInfo MBeanOperationInfo
- MBeanParameterInfo MBeanPermission MBeanRegistration MBeanRegistrationException MBeanServer
- MBeanServerBuilder MBeanServerConnection MBeanServerDelegate MBeanServerDelegateMBean MBeanServerFactory
- MBeanServerForwarder MBeanServerInvocationHandler MBeanServerNotification MBeanServerNotificationFilter
- MBeanServerPermission MBeanTrustPermission Media MediaName MediaPrintableArea MediaSize MediaSizeName
- MediaTracker MediaTray Member MemoryCacheImageInputStream MemoryCacheImageOutputStream MemoryHandler
- MemoryImageSource MemoryManagerMXBean MemoryMXBean MemoryNotificationInfo MemoryPoolMXBean MemoryType
- MemoryUsage Menu MenuBar MenuBarUI MenuComponent MenuContainer MenuDragMouseEvent MenuDragMouseListener
- MenuElement MenuEvent MenuItem MenuItemUI MenuKeyEvent MenuKeyListener MenuListener MenuSelectionManager
- MenuShortcut MessageDigest MessageDigestSpi MessageFormat MetaEventListener MetalBorders MetalButtonUI
- MetalCheckBoxIcon MetalCheckBoxUI MetalComboBoxButton MetalComboBoxEditor MetalComboBoxIcon
- MetalComboBoxUI MetalDesktopIconUI MetalFileChooserUI MetalIconFactory MetalInternalFrameTitlePane
- MetalInternalFrameUI MetalLabelUI MetalLookAndFeel MetalMenuBarUI MetalPopupMenuSeparatorUI
- MetalProgressBarUI MetalRadioButtonUI MetalRootPaneUI MetalScrollBarUI MetalScrollButton
- MetalScrollPaneUI MetalSeparatorUI MetalSliderUI MetalSplitPaneUI MetalTabbedPaneUI MetalTextFieldUI
- MetalTheme MetalToggleButtonUI MetalToolBarUI MetalToolTipUI MetalTreeUI MetaMessage Method
- MethodDescriptor MGF1ParameterSpec MidiChannel MidiDevice MidiDeviceProvider MidiEvent MidiFileFormat
- MidiFileReader MidiFileWriter MidiMessage MidiSystem MidiUnavailableException MimeTypeParseException
- MinimalHTMLWriter MissingFormatArgumentException MissingFormatWidthException MissingResourceException
- Mixer MixerProvider MLet MLetMBean ModelMBean ModelMBeanAttributeInfo ModelMBeanConstructorInfo
- ModelMBeanInfo ModelMBeanInfoSupport ModelMBeanNotificationBroadcaster ModelMBeanNotificationInfo
- ModelMBeanOperationInfo ModificationItem Modifier Monitor MonitorMBean MonitorNotification
- MonitorSettingException MouseAdapter MouseDragGestureRecognizer MouseEvent MouseInfo MouseInputAdapter
- MouseInputListener MouseListener MouseMotionAdapter MouseMotionListener MouseWheelEvent
- MouseWheelListener MultiButtonUI MulticastSocket MultiColorChooserUI MultiComboBoxUI MultiDesktopIconUI
- MultiDesktopPaneUI MultiDoc MultiDocPrintJob MultiDocPrintService MultiFileChooserUI
- MultiInternalFrameUI MultiLabelUI MultiListUI MultiLookAndFeel MultiMenuBarUI MultiMenuItemUI
- MultiOptionPaneUI MultiPanelUI MultiPixelPackedSampleModel MultipleDocumentHandling MultipleMaster
- MultiPopupMenuUI MultiProgressBarUI MultiRootPaneUI MultiScrollBarUI MultiScrollPaneUI MultiSeparatorUI
- MultiSliderUI MultiSpinnerUI MultiSplitPaneUI MultiTabbedPaneUI MultiTableHeaderUI MultiTableUI
- MultiTextUI MultiToolBarUI MultiToolTipUI MultiTreeUI MultiViewportUI MutableAttributeSet
- MutableComboBoxModel MutableTreeNode Name NameAlreadyBoundException NameCallback NameClassPair
- NameNotFoundException NameParser NamespaceChangeListener NamespaceContext Naming NamingEnumeration
- NamingEvent NamingException NamingExceptionEvent NamingListener NamingManager NamingSecurityException
- NavigationFilter NegativeArraySizeException NetPermission NetworkInterface NoClassDefFoundError
- NoConnectionPendingException NodeChangeEvent NodeChangeListener NoInitialContextException
- NoninvertibleTransformException NonReadableChannelException NonWritableChannelException
- NoPermissionException NoRouteToHostException NoSuchAlgorithmException NoSuchAttributeException
- NoSuchElementException NoSuchFieldError NoSuchFieldException NoSuchMethodError NoSuchMethodException
- NoSuchObjectException NoSuchPaddingException NoSuchProviderException NotActiveException
- NotBoundException NotCompliantMBeanException NotContextException Notification NotificationBroadcaster
- NotificationBroadcasterSupport NotificationEmitter NotificationFilter NotificationFilterSupport
- NotificationListener NotificationResult NotOwnerException NotSerializableException NotYetBoundException
- NotYetConnectedException NullCipher NullPointerException Number NumberFormat NumberFormatException
- NumberFormatter NumberOfDocuments NumberOfInterveningJobs NumberUp NumberUpSupported NumericShaper
- OAEPParameterSpec Object ObjectChangeListener ObjectFactory ObjectFactoryBuilder ObjectInput
- ObjectInputStream ObjectInputValidation ObjectInstance ObjectName ObjectOutput ObjectOutputStream
- ObjectStreamClass ObjectStreamConstants ObjectStreamException ObjectStreamField ObjectView ObjID
- Observable Observer OceanTheme OpenDataException OpenMBeanAttributeInfo OpenMBeanAttributeInfoSupport
- OpenMBeanConstructorInfo OpenMBeanConstructorInfoSupport OpenMBeanInfo OpenMBeanInfoSupport
- OpenMBeanOperationInfo OpenMBeanOperationInfoSupport OpenMBeanParameterInfo
- OpenMBeanParameterInfoSupport OpenType OperatingSystemMXBean Operation OperationNotSupportedException
- OperationsException Option OptionalDataException OptionPaneUI OrientationRequested OutOfMemoryError
- OutputDeviceAssigned OutputKeys OutputStream OutputStreamWriter OverlappingFileLockException
- OverlayLayout Override Owner Pack200 Package PackedColorModel Pageable PageAttributes
- PagedResultsControl PagedResultsResponseControl PageFormat PageRanges PagesPerMinute PagesPerMinuteColor
- Paint PaintContext PaintEvent Panel PanelUI Paper ParagraphView ParameterBlock ParameterDescriptor
- ParameterizedType ParameterMetaData ParseException ParsePosition Parser ParserConfigurationException
- ParserDelegator PartialResultException PasswordAuthentication PasswordCallback PasswordView Patch
- PathIterator Pattern PatternSyntaxException PBEKey PBEKeySpec PBEParameterSpec PDLOverrideSupported
- Permission PermissionCollection Permissions PersistenceDelegate PersistentMBean PhantomReference Pipe
- PipedInputStream PipedOutputStream PipedReader PipedWriter PixelGrabber PixelInterleavedSampleModel
- PKCS8EncodedKeySpec PKIXBuilderParameters PKIXCertPathBuilderResult PKIXCertPathChecker
- PKIXCertPathValidatorResult PKIXParameters PlainDocument PlainView Point Point2D PointerInfo Policy
- PolicyNode PolicyQualifierInfo Polygon PooledConnection Popup PopupFactory PopupMenu PopupMenuEvent
- PopupMenuListener PopupMenuUI Port PortableRemoteObject PortableRemoteObjectDelegate
- PortUnreachableException Position Predicate PreferenceChangeEvent PreferenceChangeListener Preferences
- PreferencesFactory PreparedStatement PresentationDirection Principal Printable PrinterAbortException
- PrinterException PrinterGraphics PrinterInfo PrinterIOException PrinterIsAcceptingJobs PrinterJob
- PrinterLocation PrinterMakeAndModel PrinterMessageFromOperator PrinterMoreInfo
- PrinterMoreInfoManufacturer PrinterName PrinterResolution PrinterState PrinterStateReason
- PrinterStateReasons PrinterURI PrintEvent PrintException PrintGraphics PrintJob PrintJobAdapter
- PrintJobAttribute PrintJobAttributeEvent PrintJobAttributeListener PrintJobAttributeSet PrintJobEvent
- PrintJobListener PrintQuality PrintRequestAttribute PrintRequestAttributeSet PrintService
- PrintServiceAttribute PrintServiceAttributeEvent PrintServiceAttributeListener PrintServiceAttributeSet
- PrintServiceLookup PrintStream PrintWriter PriorityBlockingQueue PriorityQueue PrivateClassLoader
- PrivateCredentialPermission PrivateKey PrivateMLet PrivilegedAction PrivilegedActionException
- PrivilegedExceptionAction Process ProcessBuilder ProfileDataException ProgressBarUI ProgressMonitor
- ProgressMonitorInputStream Properties PropertyChangeEvent PropertyChangeListener
- PropertyChangeListenerProxy PropertyChangeSupport PropertyDescriptor PropertyEditor
- PropertyEditorManager PropertyEditorSupport PropertyPermission PropertyResourceBundle
- PropertyVetoException ProtectionDomain ProtocolException Provider ProviderException Proxy ProxySelector
- PSource PSSParameterSpec PublicKey PushbackInputStream PushbackReader QName QuadCurve2D Query QueryEval
- QueryExp Queue QueuedJobCount Random RandomAccess RandomAccessFile Raster RasterFormatException RasterOp
- RC2ParameterSpec RC5ParameterSpec Rdn Readable ReadableByteChannel Reader ReadOnlyBufferException
- ReadWriteLock RealmCallback RealmChoiceCallback Receiver Rectangle Rectangle2D RectangularShape
- ReentrantLock ReentrantReadWriteLock Ref RefAddr Reference Referenceable ReferenceQueue
- ReferenceUriSchemesSupported ReferralException ReflectionException ReflectPermission Refreshable
- RefreshFailedException Region RegisterableService Registry RegistryHandler RejectedExecutionException
- RejectedExecutionHandler Relation RelationException RelationNotFoundException RelationNotification
- RelationService RelationServiceMBean RelationServiceNotRegisteredException RelationSupport
- RelationSupportMBean RelationType RelationTypeNotFoundException RelationTypeSupport Remote RemoteCall
- RemoteException RemoteObject RemoteObjectInvocationHandler RemoteRef RemoteServer RemoteStub
- RenderableImage RenderableImageOp RenderableImageProducer RenderContext RenderedImage
- RenderedImageFactory Renderer RenderingHints RepaintManager ReplicateScaleFilter RequestingUserName
- RequiredModelMBean RescaleOp ResolutionSyntax Resolver ResolveResult ResourceBundle ResponseCache Result
- ResultSet ResultSetMetaData Retention RetentionPolicy ReverbType RGBImageFilter RMIClassLoader
- RMIClassLoaderSpi RMIClientSocketFactory RMIConnection RMIConnectionImpl RMIConnectionImpl_Stub
- RMIConnector RMIConnectorServer RMIFailureHandler RMIIIOPServerImpl RMIJRMPServerImpl
- RMISecurityException RMISecurityManager RMIServer RMIServerImpl RMIServerImpl_Stub
- RMIServerSocketFactory RMISocketFactory Robot Role RoleInfo RoleInfoNotFoundException RoleList
- RoleNotFoundException RoleResult RoleStatus RoleUnresolved RoleUnresolvedList RootPaneContainer
- RootPaneUI RoundingMode RoundRectangle2D RowMapper RowSet RowSetEvent RowSetInternal RowSetListener
- RowSetMetaData RowSetMetaDataImpl RowSetReader RowSetWarning RowSetWriter RSAKey RSAKeyGenParameterSpec
- RSAMultiPrimePrivateCrtKey RSAMultiPrimePrivateCrtKeySpec RSAOtherPrimeInfo RSAPrivateCrtKey
- RSAPrivateCrtKeySpec RSAPrivateKey RSAPrivateKeySpec RSAPublicKey RSAPublicKeySpec RTFEditorKit
- RuleBasedCollator Runnable Runtime RuntimeErrorException RuntimeException RuntimeMBeanException
- RuntimeMXBean RuntimeOperationsException RuntimePermission SampleModel Sasl SaslClient SaslClientFactory
- SaslException SaslServer SaslServerFactory Savepoint SAXParser SAXParserFactory SAXResult SAXSource
- SAXTransformerFactory Scanner ScatteringByteChannel ScheduledExecutorService ScheduledFuture
- ScheduledThreadPoolExecutor Schema SchemaFactory SchemaFactoryLoader SchemaViolationException Scrollable
- Scrollbar ScrollBarUI ScrollPane ScrollPaneAdjustable ScrollPaneConstants ScrollPaneLayout ScrollPaneUI
- SealedObject SearchControls SearchResult SecretKey SecretKeyFactory SecretKeyFactorySpi SecretKeySpec
- SecureCacheResponse SecureClassLoader SecureRandom SecureRandomSpi Security SecurityException
- SecurityManager SecurityPermission Segment SelectableChannel SelectionKey Selector SelectorProvider
- Semaphore SeparatorUI Sequence SequenceInputStream Sequencer SerialArray SerialBlob SerialClob
- SerialDatalink SerialException Serializable SerializablePermission SerialJavaObject SerialRef
- SerialStruct ServerCloneException ServerError ServerException ServerNotActiveException ServerRef
- ServerRuntimeException ServerSocket ServerSocketChannel ServerSocketFactory ServiceNotFoundException
- ServicePermission ServiceRegistry ServiceUI ServiceUIFactory ServiceUnavailableException Set
- SetOfIntegerSyntax Severity Shape ShapeGraphicAttribute SheetCollate Short ShortBuffer
- ShortBufferException ShortLookupTable ShortMessage Sides Signature SignatureException SignatureSpi
- SignedObject Signer SimpleAttributeSet SimpleBeanInfo SimpleDateFormat SimpleDoc SimpleFormatter
- SimpleTimeZone SimpleType SinglePixelPackedSampleModel SingleSelectionModel Size2DSyntax
- SizeLimitExceededException SizeRequirements SizeSequence Skeleton SkeletonMismatchException
- SkeletonNotFoundException SliderUI Socket SocketAddress SocketChannel SocketException SocketFactory
- SocketHandler SocketImpl SocketImplFactory SocketOptions SocketPermission SocketSecurityException
- SocketTimeoutException SoftBevelBorder SoftReference SortControl SortedMap SortedSet
- SortingFocusTraversalPolicy SortKey SortResponseControl Soundbank SoundbankReader SoundbankResource
- Source SourceDataLine SourceLocator SpinnerDateModel SpinnerListModel SpinnerModel SpinnerNumberModel
- SpinnerUI SplitPaneUI Spring SpringLayout SQLData SQLException SQLInput SQLInputImpl SQLOutput
- SQLOutputImpl SQLPermission SQLWarning SSLContext SSLContextSpi SSLEngine SSLEngineResult SSLException
- SSLHandshakeException SSLKeyException SSLPeerUnverifiedException SSLPermission SSLProtocolException
- SslRMIClientSocketFactory SslRMIServerSocketFactory SSLServerSocket SSLServerSocketFactory SSLSession
- SSLSessionBindingEvent SSLSessionBindingListener SSLSessionContext SSLSocket SSLSocketFactory Stack
- StackOverflowError StackTraceElement StandardMBean StartTlsRequest StartTlsResponse StateEdit
- StateEditable StateFactory Statement StreamCorruptedException StreamHandler StreamPrintService
- StreamPrintServiceFactory StreamResult StreamSource StreamTokenizer StrictMath String StringBuffer
- StringBufferInputStream StringBuilder StringCharacterIterator StringContent
- StringIndexOutOfBoundsException StringMonitor StringMonitorMBean StringReader StringRefAddr
- StringSelection StringTokenizer StringValueExp StringWriter Stroke Struct Stub StubDelegate
- StubNotFoundException Style StyleConstants StyleContext StyledDocument StyledEditorKit StyleSheet
- Subject SubjectDelegationPermission SubjectDomainCombiner SupportedValuesAttribute SuppressWarnings
- SwingConstants SwingPropertyChangeSupport SwingUtilities SyncFactory SyncFactoryException
- SyncFailedException SynchronousQueue SyncProvider SyncProviderException SyncResolver SynthConstants
- SynthContext Synthesizer SynthGraphicsUtils SynthLookAndFeel SynthPainter SynthStyle SynthStyleFactory
- SysexMessage System SystemColor SystemFlavorMap TabableView TabbedPaneUI TabExpander TableCellEditor
- TableCellRenderer TableColumn TableColumnModel TableColumnModelEvent TableColumnModelListener
- TableHeaderUI TableModel TableModelEvent TableModelListener TableUI TableView TabSet TabStop TabularData
- TabularDataSupport TabularType TagElement Target TargetDataLine TargetedNotification Templates
- TemplatesHandler TextAction TextArea TextAttribute TextComponent TextEvent TextField TextHitInfo
- TextInputCallback TextLayout TextListener TextMeasurer TextOutputCallback TextSyntax TextUI TexturePaint
- Thread ThreadDeath ThreadFactory ThreadGroup ThreadInfo ThreadLocal ThreadMXBean ThreadPoolExecutor
- Throwable Tie TileObserver Time TimeLimitExceededException TimeoutException Timer
- TimerAlarmClockNotification TimerMBean TimerNotification TimerTask Timestamp TimeUnit TimeZone
- TitledBorder ToolBarUI Toolkit ToolTipManager ToolTipUI TooManyListenersException Track
- TransactionalWriter TransactionRequiredException TransactionRolledbackException Transferable
- TransferHandler TransformAttribute Transformer TransformerConfigurationException TransformerException
- TransformerFactory TransformerFactoryConfigurationError TransformerHandler Transmitter Transparency
- TreeCellEditor TreeCellRenderer TreeExpansionEvent TreeExpansionListener TreeMap TreeModel
- TreeModelEvent TreeModelListener TreeNode TreePath TreeSelectionEvent TreeSelectionListener
- TreeSelectionModel TreeSet TreeUI TreeWillExpandListener TrustAnchor TrustManager TrustManagerFactory
- TrustManagerFactorySpi Type TypeInfoProvider TypeNotPresentException Types TypeVariable UID UIDefaults
- UIManager UIResource UndeclaredThrowableException UndoableEdit UndoableEditEvent UndoableEditListener
- UndoableEditSupport UndoManager UnexpectedException UnicastRemoteObject UnknownError
- UnknownFormatConversionException UnknownFormatFlagsException UnknownGroupException UnknownHostException
- UnknownObjectException UnknownServiceException UnmappableCharacterException UnmarshalException
- UnmodifiableClassException UnmodifiableSetException UnrecoverableEntryException
- UnrecoverableKeyException Unreferenced UnresolvedAddressException UnresolvedPermission
- UnsatisfiedLinkError UnsolicitedNotification UnsolicitedNotificationEvent
- UnsolicitedNotificationListener UnsupportedAddressTypeException UnsupportedAudioFileException
- UnsupportedCallbackException UnsupportedCharsetException UnsupportedClassVersionError
- UnsupportedEncodingException UnsupportedFlavorException UnsupportedLookAndFeelException
- UnsupportedOperationException URI URIException URIResolver URISyntax URISyntaxException URL
- URLClassLoader URLConnection URLDecoder URLEncoder URLStreamHandler URLStreamHandlerFactory
- UTFDataFormatException Util UtilDelegate Utilities UUID Validator ValidatorHandler ValueExp ValueHandler
- ValueHandlerMultiFormat VariableHeightLayoutCache Vector VerifyError VetoableChangeListener
- VetoableChangeListenerProxy VetoableChangeSupport View ViewFactory ViewportLayout ViewportUI
- VirtualMachineError Visibility VMID VoiceStatus Void VolatileImage WeakHashMap WeakReference WebRowSet
- WildcardType Window WindowAdapter WindowConstants WindowEvent WindowFocusListener WindowListener
- WindowStateListener WrappedPlainView WritableByteChannel WritableRaster WritableRenderedImage
- WriteAbortedException Writer X500Principal X500PrivateCredential X509Certificate X509CertSelector
- X509CRL X509CRLEntry X509CRLSelector X509EncodedKeySpec X509ExtendedKeyManager X509Extension
- X509KeyManager X509TrustManager XAConnection XADataSource XAException XAResource Xid XMLConstants
- XMLDecoder XMLEncoder XMLFormatter XMLGregorianCalendar XMLParseException XmlReader XmlWriter XPath
- XPathConstants XPathException XPathExpression XPathExpressionException XPathFactory
- XPathFactoryConfigurationException XPathFunction XPathFunctionException XPathFunctionResolver
- XPathVariableResolver ZipEntry ZipException ZipFile ZipInputStream ZipOutputStream ZoneView
- ]
- #:nocov:
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java_script.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java_script.rb
deleted file mode 100644
index 43ecb187d..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java_script.rb
+++ /dev/null
@@ -1,213 +0,0 @@
-module CodeRay
-module Scanners
-
- # Scanner for JavaScript.
- #
- # Aliases: +ecmascript+, +ecma_script+, +javascript+
- class JavaScript < Scanner
-
- register_for :java_script
- file_extension 'js'
-
- # The actual JavaScript keywords.
- KEYWORDS = %w[
- break case catch continue default delete do else
- finally for function if in instanceof new
- return switch throw try typeof var void while with
- ] # :nodoc:
- PREDEFINED_CONSTANTS = %w[
- false null true undefined NaN Infinity
- ] # :nodoc:
-
- MAGIC_VARIABLES = %w[ this arguments ] # :nodoc: arguments was introduced in JavaScript 1.4
-
- KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
- case delete in instanceof new return throw typeof with
- ] # :nodoc:
-
- # Reserved for future use.
- RESERVED_WORDS = %w[
- abstract boolean byte char class debugger double enum export extends
- final float goto implements import int interface long native package
- private protected public short static super synchronized throws transient
- volatile
- ] # :nodoc:
-
- IDENT_KIND = WordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(PREDEFINED_CONSTANTS, :predefined_constant).
- add(MAGIC_VARIABLES, :local_variable).
- add(KEYWORDS, :keyword) # :nodoc:
-
- ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc:
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x # :nodoc:
- REGEXP_ESCAPE = / [bBdDsSwW] /x # :nodoc:
- STRING_CONTENT_PATTERN = {
- "'" => /[^\\']+/,
- '"' => /[^\\"]+/,
- '/' => /[^\\\/]+/,
- } # :nodoc:
- KEY_CHECK_PATTERN = {
- "'" => / (?> [^\\']* (?: \\. [^\\']* )* ) ' \s* : /mx,
- '"' => / (?> [^\\"]* (?: \\. [^\\"]* )* ) " \s* : /mx,
- } # :nodoc:
-
- protected
-
- def scan_tokens encoder, options
-
- state = :initial
- string_delimiter = nil
- value_expected = true
- key_expected = false
- function_expected = false
-
- until eos?
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- value_expected = true if !value_expected && match.index(?\n)
- encoder.text_token match, :space
-
- elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- value_expected = true
- encoder.text_token match, :comment
-
- elsif check(/\.?\d/)
- key_expected = value_expected = false
- if match = scan(/0[xX][0-9A-Fa-f]+/)
- encoder.text_token match, :hex
- elsif match = scan(/(?>0[0-7]+)(?![89.eEfF])/)
- encoder.text_token match, :octal
- elsif match = scan(/\d+[fF]|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
- encoder.text_token match, :float
- elsif match = scan(/\d+/)
- encoder.text_token match, :integer
- end
-
- elsif value_expected && match = scan(/<([[:alpha:]]\w*) (?: [^\/>]*\/> | .*?<\/\1>)/xim)
- # TODO: scan over nested tags
- xml_scanner.tokenize match, :tokens => encoder
- value_expected = false
- next
-
- elsif match = scan(/ [-+*=<>?:;,!&^|(\[{~%]+ | \.(?!\d) /x)
- value_expected = true
- last_operator = match[-1]
- key_expected = (last_operator == ?{) || (last_operator == ?,)
- function_expected = false
- encoder.text_token match, :operator
-
- elsif match = scan(/ [)\]}]+ /x)
- function_expected = key_expected = value_expected = false
- encoder.text_token match, :operator
-
- elsif match = scan(/ [$a-zA-Z_][A-Za-z_0-9$]* /x)
- kind = IDENT_KIND[match]
- value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
- # TODO: labels
- if kind == :ident
- if match.index(?$) # $ allowed inside an identifier
- kind = :predefined
- elsif function_expected
- kind = :function
- elsif check(/\s*[=:]\s*function\b/)
- kind = :function
- elsif key_expected && check(/\s*:/)
- kind = :key
- end
- end
- function_expected = (kind == :keyword) && (match == 'function')
- key_expected = false
- encoder.text_token match, kind
-
- elsif match = scan(/["']/)
- if key_expected && check(KEY_CHECK_PATTERN[match])
- state = :key
- else
- state = :string
- end
- encoder.begin_group state
- string_delimiter = match
- encoder.text_token match, :delimiter
-
- elsif value_expected && (match = scan(/\//))
- encoder.begin_group :regexp
- state = :regexp
- string_delimiter = '/'
- encoder.text_token match, :delimiter
-
- elsif match = scan(/ \/ /x)
- value_expected = true
- key_expected = false
- encoder.text_token match, :operator
-
- else
- encoder.text_token getch, :error
-
- end
-
- when :string, :regexp, :key
- if match = scan(STRING_CONTENT_PATTERN[string_delimiter])
- encoder.text_token match, :content
- elsif match = scan(/["'\/]/)
- encoder.text_token match, :delimiter
- if state == :regexp
- modifiers = scan(/[gim]+/)
- encoder.text_token modifiers, :modifier if modifiers && !modifiers.empty?
- end
- encoder.end_group state
- string_delimiter = nil
- key_expected = value_expected = false
- state = :initial
- elsif state != :regexp && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
- encoder.text_token match, :content
- else
- encoder.text_token match, :char
- end
- elsif state == :regexp && match = scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- encoder.text_token match, :char
- elsif match = scan(/\\./m)
- encoder.text_token match, :content
- elsif match = scan(/ \\ | $ /x)
- encoder.end_group state
- encoder.text_token match, :error
- key_expected = value_expected = false
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), encoder
- end
-
- else
- raise_inspect 'Unknown state', encoder
-
- end
-
- end
-
- if [:string, :regexp].include? state
- encoder.end_group state
- end
-
- encoder
- end
-
- protected
-
- def reset_instance
- super
- @xml_scanner.reset if defined? @xml_scanner
- end
-
- def xml_scanner
- @xml_scanner ||= CodeRay.scanner :xml, :tokens => @tokens, :keep_tokens => true, :keep_state => false
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/json.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/json.rb
deleted file mode 100644
index 0c90c342d..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/json.rb
+++ /dev/null
@@ -1,95 +0,0 @@
-module CodeRay
-module Scanners
-
- # Scanner for JSON (JavaScript Object Notation).
- class JSON < Scanner
-
- register_for :json
- file_extension 'json'
-
- KINDS_NOT_LOC = [
- :float, :char, :content, :delimiter,
- :error, :integer, :operator, :value,
- ] # :nodoc:
-
- ESCAPE = / [bfnrt\\"\/] /x # :nodoc:
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # :nodoc:
-
- protected
-
- # See http://json.org/ for a definition of the JSON lexic/grammar.
- def scan_tokens encoder, options
-
- state = :initial
- stack = []
- key_expected = false
-
- until eos?
-
- case state
-
- when :initial
- if match = scan(/ \s+ /x)
- encoder.text_token match, :space
- elsif match = scan(/"/)
- state = key_expected ? :key : :string
- encoder.begin_group state
- encoder.text_token match, :delimiter
- elsif match = scan(/ [:,\[{\]}] /x)
- encoder.text_token match, :operator
- case match
- when ':' then key_expected = false
- when ',' then key_expected = true if stack.last == :object
- when '{' then stack << :object; key_expected = true
- when '[' then stack << :array
- when '}', ']' then stack.pop # no error recovery, but works for valid JSON
- end
- elsif match = scan(/ true | false | null /x)
- encoder.text_token match, :value
- elsif match = scan(/ -? (?: 0 | [1-9]\d* ) /x)
- if scan(/ \.\d+ (?:[eE][-+]?\d+)? | [eE][-+]? \d+ /x)
- match << matched
- encoder.text_token match, :float
- else
- encoder.text_token match, :integer
- end
- else
- encoder.text_token getch, :error
- end
-
- when :string, :key
- if match = scan(/[^\\"]+/)
- encoder.text_token match, :content
- elsif match = scan(/"/)
- encoder.text_token match, :delimiter
- encoder.end_group state
- state = :initial
- elsif match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- encoder.text_token match, :char
- elsif match = scan(/\\./m)
- encoder.text_token match, :content
- elsif match = scan(/ \\ | $ /x)
- encoder.end_group state
- encoder.text_token match, :error
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), encoder
- end
-
- else
- raise_inspect 'Unknown state: %p' % [state], encoder
-
- end
- end
-
- if [:string, :key].include? state
- encoder.end_group state
- end
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/php.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/php.rb
deleted file mode 100644
index dadab0096..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/php.rb
+++ /dev/null
@@ -1,509 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
-
- # Scanner for PHP.
- #
- # Original by Stefan Walk.
- class PHP < Scanner
-
- register_for :php
- file_extension 'php'
- encoding 'BINARY'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- protected
-
- def setup
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- def reset_instance
- super
- @html_scanner.reset
- end
-
- module Words # :nodoc:
-
- # according to http://www.php.net/manual/en/reserved.keywords.php
- KEYWORDS = %w[
- abstract and array as break case catch class clone const continue declare default do else elseif
- enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global
- goto if implements interface instanceof namespace new or private protected public static switch
- throw try use var while xor
- cfunction old_function
- ]
-
- TYPES = %w[ int integer float double bool boolean string array object resource ]
-
- LANGUAGE_CONSTRUCTS = %w[
- die echo empty exit eval include include_once isset list
- require require_once return print unset
- ]
-
- CLASSES = %w[ Directory stdClass __PHP_Incomplete_Class exception php_user_filter Closure ]
-
- # according to http://php.net/quickref.php on 2009-04-21;
- # all functions with _ excluded (module functions) and selected additional functions
- BUILTIN_FUNCTIONS = %w[
- abs acos acosh addcslashes addslashes aggregate array arsort ascii2ebcdic asin asinh asort assert atan atan2
- atanh basename bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec
- bindtextdomain bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite
- calculhmac ceil chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot clearstatcache closedir closelog
- compact constant copy cos cosh count crc32 crypt current date dcgettext dcngettext deaggregate decbin dechex
- decoct define defined deg2rad delete dgettext die dirname diskfreespace dl dngettext doubleval each
- ebcdic2ascii echo empty end ereg eregi escapeshellarg escapeshellcmd eval exec exit exp explode expm1 extract
- fclose feof fflush fgetc fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner
- fileperms filepro filesize filetype floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv
- fputs fread frenchtojd fscanf fseek fsockopen fstat ftell ftok ftruncate fwrite getallheaders getcwd getdate
- getenv gethostbyaddr gethostbyname gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid
- getmyuid getopt getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext
- gettimeofday gettype glob gmdate gmmktime gmstrftime gregoriantojd gzclose gzcompress gzdecode gzdeflate
- gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell
- gzuncompress gzwrite hash header hebrev hebrevc hexdec htmlentities htmlspecialchars hypot iconv idate
- implode include intval ip2long iptcembed iptcparse isset
- jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp
- juliantojd key krsort ksort lcfirst lchgrp lchown levenshtein link linkinfo list localeconv localtime log
- log10 log1p long2ip lstat ltrim mail main max md5 metaphone mhash microtime min mkdir mktime msql natcasesort
- natsort next ngettext nl2br nthmac octdec opendir openlog
- ord overload pack passthru pathinfo pclose pfsockopen phpcredits phpinfo phpversion pi png2wbmp popen pos pow
- prev print printf putenv quotemeta rad2deg rand range rawurldecode rawurlencode readdir readfile readgzfile
- readline readlink realpath recode rename require reset rewind rewinddir rmdir round rsort rtrim scandir
- serialize setcookie setlocale setrawcookie settype sha1 shuffle signeurlpaiement sin sinh sizeof sleep snmpget
- snmpgetnext snmprealwalk snmpset snmpwalk snmpwalkoid sort soundex split spliti sprintf sqrt srand sscanf stat
- strcasecmp strchr strcmp strcoll strcspn strftime stripcslashes stripos stripslashes stristr strlen
- strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strptime strrchr strrev strripos strrpos strspn
- strstr strtok strtolower strtotime strtoupper strtr strval substr symlink syslog system tan tanh tempnam
- textdomain time tmpfile touch trim uasort ucfirst ucwords uksort umask uniqid unixtojd unlink unpack
- unserialize unset urldecode urlencode usleep usort vfprintf virtual vprintf vsprintf wordwrap
- array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc
- array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip
- array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey
- array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad
- array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift
- array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect
- array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk
- array_walk_recursive
- assert_options base_convert base64_decode base64_encode
- chunk_split class_exists class_implements class_parents
- count_chars debug_backtrace debug_print_backtrace debug_zval_dump
- error_get_last error_log error_reporting extension_loaded
- file_exists file_get_contents file_put_contents load_file
- func_get_arg func_get_args func_num_args function_exists
- get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars
- get_current_user get_declared_classes get_declared_interfaces get_defined_constants
- get_defined_functions get_defined_vars get_extension_funcs get_headers get_html_translation_table
- get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime
- get_meta_tags get_object_vars get_parent_class get_required_filesget_resource_type
- gc_collect_cycles gc_disable gc_enable gc_enabled
- halt_compiler headers_list headers_sent highlight_file highlight_string
- html_entity_decode htmlspecialchars_decode
- in_array include_once inclued_get_data
- is_a is_array is_binary is_bool is_buffer is_callable is_dir is_double is_executable is_file is_finite
- is_float is_infinite is_int is_integer is_link is_long is_nan is_null is_numeric is_object is_readable
- is_real is_resource is_scalar is_soap_fault is_string is_subclass_of is_unicode is_uploaded_file
- is_writable is_writeable
- locale_get_default locale_set_default
- number_format override_function parse_str parse_url
- php_check_syntax php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name
- php_strip_whitespace php_uname
- preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace
- preg_replace_callback preg_split print_r
- require_once register_shutdown_function register_tick_function
- set_error_handler set_exception_handler set_file_buffer set_include_path
- set_magic_quotes_runtime set_time_limit shell_exec
- str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count
- strip_tags substr_compare substr_count substr_replace
- time_nanosleep time_sleep_until
- token_get_all token_name trigger_error
- unregister_tick_function use_soap_error_handler user_error
- utf8_decode utf8_encode var_dump var_export
- version_compare
- zend_logo_guid zend_thread_id zend_version
- create_function call_user_func_array
- posix_access posix_ctermid posix_get_last_error posix_getcwd posix_getegid
- posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups
- posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid
- posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid
- posix_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod
- posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid
- posix_setuid posix_strerror posix_times posix_ttyname posix_uname
- pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority
- pcntl_signal pcntl_signal_dispatch pcntl_sigprocmask pcntl_sigtimedwait
- pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited
- pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig
- ]
- # TODO: more built-in PHP functions?
-
- EXCEPTIONS = %w[
- E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING
- E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT
- ]
-
- CONSTANTS = %w[
- null true false self parent
- __LINE__ __DIR__ __FILE__ __LINE__
- __CLASS__ __NAMESPACE__ __METHOD__ __FUNCTION__
- PHP_VERSION PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_VERSION_ID PHP_EXTRA_VERSION PHP_ZTS
- PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_SIZE DEFAULT_INCLUDE_PATH
- PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_PREFIX PHP_BINDIR PHP_LIBDIR PHP_DATADIR
- PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_CONFIG_FILE_SCAN_DIR PHP_SHLIB_SUFFIX
- PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END
- __COMPILER_HALT_OFFSET__
- EXTR_OVERWRITE EXTR_SKIP EXTR_PREFIX_SAME EXTR_PREFIX_ALL EXTR_PREFIX_INVALID EXTR_PREFIX_IF_EXISTS
- EXTR_IF_EXISTS SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING CASE_LOWER CASE_UPPER COUNT_NORMAL
- COUNT_RECURSIVE ASSERT_ACTIVE ASSERT_CALLBACK ASSERT_BAIL ASSERT_WARNING ASSERT_QUIET_EVAL CONNECTION_ABORTED
- CONNECTION_NORMAL CONNECTION_TIMEOUT INI_USER INI_PERDIR INI_SYSTEM INI_ALL M_E M_LOG2E M_LOG10E M_LN2 M_LN10
- M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 CRYPT_SALT_LENGTH CRYPT_STD_DES CRYPT_EXT_DES
- CRYPT_MD5 CRYPT_BLOWFISH DIRECTORY_SEPARATOR SEEK_SET SEEK_CUR SEEK_END LOCK_SH LOCK_EX LOCK_UN LOCK_NB
- HTML_SPECIALCHARS HTML_ENTITIES ENT_COMPAT ENT_QUOTES ENT_NOQUOTES INFO_GENERAL INFO_CREDITS
- INFO_CONFIGURATION INFO_MODULES INFO_ENVIRONMENT INFO_VARIABLES INFO_LICENSE INFO_ALL CREDITS_GROUP
- CREDITS_GENERAL CREDITS_SAPI CREDITS_MODULES CREDITS_DOCS CREDITS_FULLPAGE CREDITS_QA CREDITS_ALL STR_PAD_LEFT
- STR_PAD_RIGHT STR_PAD_BOTH PATHINFO_DIRNAME PATHINFO_BASENAME PATHINFO_EXTENSION PATH_SEPARATOR CHAR_MAX
- LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_ALL LC_MESSAGES ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5
- ABDAY_6 ABDAY_7 DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 ABMON_1 ABMON_2 ABMON_3 ABMON_4 ABMON_5 ABMON_6
- ABMON_7 ABMON_8 ABMON_9 ABMON_10 ABMON_11 ABMON_12 MON_1 MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9
- MON_10 MON_11 MON_12 AM_STR PM_STR D_T_FMT D_FMT T_FMT T_FMT_AMPM ERA ERA_YEAR ERA_D_T_FMT ERA_D_FMT ERA_T_FMT
- ALT_DIGITS INT_CURR_SYMBOL CURRENCY_SYMBOL CRNCYSTR MON_DECIMAL_POINT MON_THOUSANDS_SEP MON_GROUPING
- POSITIVE_SIGN NEGATIVE_SIGN INT_FRAC_DIGITS FRAC_DIGITS P_CS_PRECEDES P_SEP_BY_SPACE N_CS_PRECEDES
- N_SEP_BY_SPACE P_SIGN_POSN N_SIGN_POSN DECIMAL_POINT RADIXCHAR THOUSANDS_SEP THOUSEP GROUPING YESEXPR NOEXPR
- YESSTR NOSTR CODESET LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG LOG_KERN
- LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_LOCAL0
- LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_PID LOG_CONS LOG_ODELAY
- LOG_NDELAY LOG_NOWAIT LOG_PERROR
- ]
-
- PREDEFINED = %w[
- $GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV
- $_COOKIE $php_errormsg $HTTP_RAW_POST_DATA $http_response_header
- $argc $argv
- ]
-
- IDENT_KIND = WordList::CaseIgnoring.new(:ident).
- add(KEYWORDS, :keyword).
- add(TYPES, :predefined_type).
- add(LANGUAGE_CONSTRUCTS, :keyword).
- add(BUILTIN_FUNCTIONS, :predefined).
- add(CLASSES, :predefined_constant).
- add(EXCEPTIONS, :exception).
- add(CONSTANTS, :predefined_constant)
-
- VARIABLE_KIND = WordList.new(:local_variable).
- add(PREDEFINED, :predefined)
- end
-
- module RE # :nodoc:
-
- PHP_START = /
- <script\s+[^>]*?language\s*=\s*"php"[^>]*?> |
- <script\s+[^>]*?language\s*=\s*'php'[^>]*?> |
- <\?php\d? |
- <\?(?!xml)
- /xi
-
- PHP_END = %r!
- </script> |
- \?>
- !xi
-
- HTML_INDICATOR = /<!DOCTYPE html|<(?:html|body|div|p)[> ]/i
-
- IDENTIFIER = /[a-z_\x7f-\xFF][a-z0-9_\x7f-\xFF]*/i
- VARIABLE = /\$#{IDENTIFIER}/
-
- OPERATOR = /
- \.(?!\d)=? | # dot that is not decimal point, string concatenation
- && | \|\| | # logic
- :: | -> | => | # scope, member, dictionary
- \\(?!\n) | # namespace
- \+\+ | -- | # increment, decrement
- [,;?:()\[\]{}] | # simple delimiters
- [-+*\/%&|^]=? | # ordinary math, binary logic, assignment shortcuts
- [~$] | # whatever
- =& | # reference assignment
- [=!]=?=? | <> | # comparison and assignment
- <<=? | >>=? | [<>]=? # comparison and shift
- /x
-
- end
-
- protected
-
- def scan_tokens encoder, options
-
- if check(RE::PHP_START) || # starts with <?
- (match?(/\s*<\S/) && check(/.{1,1000}#{RE::PHP_START}/om)) || # starts with tag and contains <?
- check(/.{0,1000}#{RE::HTML_INDICATOR}/om) ||
- check(/.{1,100}#{RE::PHP_START}/om) # PHP start after max 100 chars
- # is HTML with embedded PHP, so start with HTML
- states = [:initial]
- else
- # is just PHP, so start with PHP surrounded by HTML
- states = [:initial, :php]
- end
-
- label_expected = true
- case_expected = false
-
- heredoc_delimiter = nil
- delimiter = nil
- modifier = nil
-
- until eos?
-
- case states.last
-
- when :initial # HTML
- if match = scan(RE::PHP_START)
- encoder.text_token match, :inline_delimiter
- label_expected = true
- states << :php
- else
- match = scan_until(/(?=#{RE::PHP_START})/o) || scan_rest
- @html_scanner.tokenize match unless match.empty?
- end
-
- when :php
- if match = scan(/\s+/)
- encoder.text_token match, :space
-
- elsif match = scan(%r! (?m: \/\* (?: .*? \*\/ | .* ) ) | (?://|\#) .*? (?=#{RE::PHP_END}|$) !xo)
- encoder.text_token match, :comment
-
- elsif match = scan(RE::IDENTIFIER)
- kind = Words::IDENT_KIND[match]
- if kind == :ident && label_expected && check(/:(?!:)/)
- kind = :label
- label_expected = true
- else
- label_expected = false
- if kind == :ident && match =~ /^[A-Z]/
- kind = :constant
- elsif kind == :keyword
- case match
- when 'class'
- states << :class_expected
- when 'function'
- states << :function_expected
- when 'case', 'default'
- case_expected = true
- end
- elsif match == 'b' && check(/['"]/) # binary string literal
- modifier = match
- next
- end
- end
- encoder.text_token match, kind
-
- elsif match = scan(/(?:\d+\.\d*|\d*\.\d+)(?:e[-+]?\d+)?|\d+e[-+]?\d+/i)
- label_expected = false
- encoder.text_token match, :float
-
- elsif match = scan(/0x[0-9a-fA-F]+/)
- label_expected = false
- encoder.text_token match, :hex
-
- elsif match = scan(/\d+/)
- label_expected = false
- encoder.text_token match, :integer
-
- elsif match = scan(/['"`]/)
- encoder.begin_group :string
- if modifier
- encoder.text_token modifier, :modifier
- modifier = nil
- end
- delimiter = match
- encoder.text_token match, :delimiter
- states.push match == "'" ? :sqstring : :dqstring
-
- elsif match = scan(RE::VARIABLE)
- label_expected = false
- encoder.text_token match, Words::VARIABLE_KIND[match]
-
- elsif match = scan(/\{/)
- encoder.text_token match, :operator
- label_expected = true
- states.push :php
-
- elsif match = scan(/\}/)
- if states.size == 1
- encoder.text_token match, :error
- else
- states.pop
- if states.last.is_a?(::Array)
- delimiter = states.last[1]
- states[-1] = states.last[0]
- encoder.text_token match, :delimiter
- encoder.end_group :inline
- else
- encoder.text_token match, :operator
- label_expected = true
- end
- end
-
- elsif match = scan(/@/)
- label_expected = false
- encoder.text_token match, :exception
-
- elsif match = scan(RE::PHP_END)
- encoder.text_token match, :inline_delimiter
- states = [:initial]
-
- elsif match = scan(/<<<(?:(#{RE::IDENTIFIER})|"(#{RE::IDENTIFIER})"|'(#{RE::IDENTIFIER})')/o)
- encoder.begin_group :string
- # warn 'heredoc in heredoc?' if heredoc_delimiter
- heredoc_delimiter = Regexp.escape(self[1] || self[2] || self[3])
- encoder.text_token match, :delimiter
- states.push self[3] ? :sqstring : :dqstring
- heredoc_delimiter = /#{heredoc_delimiter}(?=;?$)/
-
- elsif match = scan(/#{RE::OPERATOR}/o)
- label_expected = match == ';'
- if case_expected
- label_expected = true if match == ':'
- case_expected = false
- end
- encoder.text_token match, :operator
-
- else
- encoder.text_token getch, :error
-
- end
-
- when :sqstring
- if match = scan(heredoc_delimiter ? /[^\\\n]+/ : /[^'\\]+/)
- encoder.text_token match, :content
- elsif !heredoc_delimiter && match = scan(/'/)
- encoder.text_token match, :delimiter
- encoder.end_group :string
- delimiter = nil
- label_expected = false
- states.pop
- elsif heredoc_delimiter && match = scan(/\n/)
- if scan heredoc_delimiter
- encoder.text_token "\n", :content
- encoder.text_token matched, :delimiter
- encoder.end_group :string
- heredoc_delimiter = nil
- label_expected = false
- states.pop
- else
- encoder.text_token match, :content
- end
- elsif match = scan(heredoc_delimiter ? /\\\\/ : /\\[\\'\n]/)
- encoder.text_token match, :char
- elsif match = scan(/\\./m)
- encoder.text_token match, :content
- elsif match = scan(/\\/)
- encoder.text_token match, :error
- else
- states.pop
- end
-
- when :dqstring
- if match = scan(heredoc_delimiter ? /[^${\\\n]+/ : (delimiter == '"' ? /[^"${\\]+/ : /[^`${\\]+/))
- encoder.text_token match, :content
- elsif !heredoc_delimiter && match = scan(delimiter == '"' ? /"/ : /`/)
- encoder.text_token match, :delimiter
- encoder.end_group :string
- delimiter = nil
- label_expected = false
- states.pop
- elsif heredoc_delimiter && match = scan(/\n/)
- if scan heredoc_delimiter
- encoder.text_token "\n", :content
- encoder.text_token matched, :delimiter
- encoder.end_group :string
- heredoc_delimiter = nil
- label_expected = false
- states.pop
- else
- encoder.text_token match, :content
- end
- elsif match = scan(/\\(?:x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/)
- encoder.text_token match, :char
- elsif match = scan(heredoc_delimiter ? /\\[nrtvf\\$]/ : (delimiter == '"' ? /\\[nrtvf\\$"]/ : /\\[nrtvf\\$`]/))
- encoder.text_token match, :char
- elsif match = scan(/\\./m)
- encoder.text_token match, :content
- elsif match = scan(/\\/)
- encoder.text_token match, :error
- elsif match = scan(/#{RE::VARIABLE}/o)
- if check(/\[#{RE::IDENTIFIER}\]/o)
- encoder.begin_group :inline
- encoder.text_token match, :local_variable
- encoder.text_token scan(/\[/), :operator
- encoder.text_token scan(/#{RE::IDENTIFIER}/o), :ident
- encoder.text_token scan(/\]/), :operator
- encoder.end_group :inline
- elsif check(/\[/)
- match << scan(/\[['"]?#{RE::IDENTIFIER}?['"]?\]?/o)
- encoder.text_token match, :error
- elsif check(/->#{RE::IDENTIFIER}/o)
- encoder.begin_group :inline
- encoder.text_token match, :local_variable
- encoder.text_token scan(/->/), :operator
- encoder.text_token scan(/#{RE::IDENTIFIER}/o), :ident
- encoder.end_group :inline
- elsif check(/->/)
- match << scan(/->/)
- encoder.text_token match, :error
- else
- encoder.text_token match, :local_variable
- end
- elsif match = scan(/\{/)
- if check(/\$/)
- encoder.begin_group :inline
- states[-1] = [states.last, delimiter]
- delimiter = nil
- states.push :php
- encoder.text_token match, :delimiter
- else
- encoder.text_token match, :content
- end
- elsif match = scan(/\$\{#{RE::IDENTIFIER}\}/o)
- encoder.text_token match, :local_variable
- elsif match = scan(/\$/)
- encoder.text_token match, :content
- else
- states.pop
- end
-
- when :class_expected
- if match = scan(/\s+/)
- encoder.text_token match, :space
- elsif match = scan(/#{RE::IDENTIFIER}/o)
- encoder.text_token match, :class
- states.pop
- else
- states.pop
- end
-
- when :function_expected
- if match = scan(/\s+/)
- encoder.text_token match, :space
- elsif match = scan(/&/)
- encoder.text_token match, :operator
- elsif match = scan(/#{RE::IDENTIFIER}/o)
- encoder.text_token match, :function
- states.pop
- else
- states.pop
- end
-
- else
- raise_inspect 'Unknown state!', encoder, states
- end
-
- end
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/python.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/python.rb
deleted file mode 100644
index 5e38a2c61..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/python.rb
+++ /dev/null
@@ -1,287 +0,0 @@
-module CodeRay
-module Scanners
-
- # Scanner for Python. Supports Python 3.
- #
- # Based on pygments' PythonLexer, see
- # http://dev.pocoo.org/projects/pygments/browser/pygments/lexers/agile.py.
- class Python < Scanner
-
- register_for :python
- file_extension 'py'
-
- KEYWORDS = [
- 'and', 'as', 'assert', 'break', 'class', 'continue', 'def',
- 'del', 'elif', 'else', 'except', 'finally', 'for',
- 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not',
- 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield',
- 'nonlocal', # new in Python 3
- ] # :nodoc:
-
- OLD_KEYWORDS = [
- 'exec', 'print', # gone in Python 3
- ] # :nodoc:
-
- PREDEFINED_METHODS_AND_TYPES = %w[
- __import__ abs all any apply basestring bin bool buffer
- bytearray bytes callable chr classmethod cmp coerce compile
- complex delattr dict dir divmod enumerate eval execfile exit
- file filter float frozenset getattr globals hasattr hash hex id
- input int intern isinstance issubclass iter len list locals
- long map max min next object oct open ord pow property range
- raw_input reduce reload repr reversed round set setattr slice
- sorted staticmethod str sum super tuple type unichr unicode
- vars xrange zip
- ] # :nodoc:
-
- PREDEFINED_EXCEPTIONS = %w[
- ArithmeticError AssertionError AttributeError
- BaseException DeprecationWarning EOFError EnvironmentError
- Exception FloatingPointError FutureWarning GeneratorExit IOError
- ImportError ImportWarning IndentationError IndexError KeyError
- KeyboardInterrupt LookupError MemoryError NameError
- NotImplemented NotImplementedError OSError OverflowError
- OverflowWarning PendingDeprecationWarning ReferenceError
- RuntimeError RuntimeWarning StandardError StopIteration
- SyntaxError SyntaxWarning SystemError SystemExit TabError
- TypeError UnboundLocalError UnicodeDecodeError
- UnicodeEncodeError UnicodeError UnicodeTranslateError
- UnicodeWarning UserWarning ValueError Warning ZeroDivisionError
- ] # :nodoc:
-
- PREDEFINED_VARIABLES_AND_CONSTANTS = [
- 'False', 'True', 'None', # "keywords" since Python 3
- 'self', 'Ellipsis', 'NotImplemented',
- ] # :nodoc:
-
- IDENT_KIND = WordList.new(:ident).
- add(KEYWORDS, :keyword).
- add(OLD_KEYWORDS, :old_keyword).
- add(PREDEFINED_METHODS_AND_TYPES, :predefined).
- add(PREDEFINED_VARIABLES_AND_CONSTANTS, :predefined_constant).
- add(PREDEFINED_EXCEPTIONS, :exception) # :nodoc:
-
- NAME = / [^\W\d] \w* /x # :nodoc:
- ESCAPE = / [abfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc:
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} | N\{[-\w ]+\} /x # :nodoc:
-
- OPERATOR = /
- \.\.\. | # ellipsis
- \.(?!\d) | # dot but not decimal point
- [,;:()\[\]{}] | # simple delimiters
- \/\/=? | \*\*=? | # special math
- [-+*\/%&|^]=? | # ordinary math and binary logic
- [~`] | # binary complement and inspection
- <<=? | >>=? | [<>=]=? | != # comparison and assignment
- /x # :nodoc:
-
- STRING_DELIMITER_REGEXP = Hash.new { |h, delimiter|
- h[delimiter] = Regexp.union delimiter # :nodoc:
- }
-
- STRING_CONTENT_REGEXP = Hash.new { |h, delimiter|
- h[delimiter] = / [^\\\n]+? (?= \\ | $ | #{Regexp.escape(delimiter)} ) /x # :nodoc:
- }
-
- DEF_NEW_STATE = WordList.new(:initial).
- add(%w(def), :def_expected).
- add(%w(import from), :include_expected).
- add(%w(class), :class_expected) # :nodoc:
-
- DESCRIPTOR = /
- #{NAME}
- (?: \. #{NAME} )*
- | \*
- /x # :nodoc:
-
- DOCSTRING_COMING = /
- [ \t]* u?r? ("""|''')
- /x # :nodoc:
-
- protected
-
- def scan_tokens encoder, options
-
- state = :initial
- string_delimiter = nil
- string_raw = false
- string_type = nil
- docstring_coming = match?(/#{DOCSTRING_COMING}/o)
- last_token_dot = false
- unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8'
- from_import_state = []
-
- until eos?
-
- if state == :string
- if match = scan(STRING_DELIMITER_REGEXP[string_delimiter])
- encoder.text_token match, :delimiter
- encoder.end_group string_type
- string_type = nil
- state = :initial
- next
- elsif string_delimiter.size == 3 && match = scan(/\n/)
- encoder.text_token match, :content
- elsif match = scan(STRING_CONTENT_REGEXP[string_delimiter])
- encoder.text_token match, :content
- elsif !string_raw && match = scan(/ \\ #{ESCAPE} /ox)
- encoder.text_token match, :char
- elsif match = scan(/ \\ #{UNICODE_ESCAPE} /ox)
- encoder.text_token match, :char
- elsif match = scan(/ \\ . /x)
- encoder.text_token match, :content
- elsif match = scan(/ \\ | $ /x)
- encoder.end_group string_type
- string_type = nil
- encoder.text_token match, :error
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), encoder, state
- end
-
- elsif match = scan(/ [ \t]+ | \\?\n /x)
- encoder.text_token match, :space
- if match == "\n"
- state = :initial if state == :include_expected
- docstring_coming = true if match?(/#{DOCSTRING_COMING}/o)
- end
- next
-
- elsif match = scan(/ \# [^\n]* /mx)
- encoder.text_token match, :comment
- next
-
- elsif state == :initial
-
- if match = scan(/#{OPERATOR}/o)
- encoder.text_token match, :operator
-
- elsif match = scan(/(u?r?|b)?("""|"|'''|')/i)
- string_delimiter = self[2]
- string_type = docstring_coming ? :docstring : :string
- docstring_coming = false if docstring_coming
- encoder.begin_group string_type
- string_raw = false
- modifiers = self[1]
- unless modifiers.empty?
- string_raw = !!modifiers.index(?r)
- encoder.text_token modifiers, :modifier
- match = string_delimiter
- end
- state = :string
- encoder.text_token match, :delimiter
-
- # TODO: backticks
-
- elsif match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
- kind = IDENT_KIND[match]
- # TODO: keyword arguments
- kind = :ident if last_token_dot
- if kind == :old_keyword
- kind = check(/\(/) ? :ident : :keyword
- elsif kind == :predefined && check(/ *=/)
- kind = :ident
- elsif kind == :keyword
- state = DEF_NEW_STATE[match]
- from_import_state << match.to_sym if state == :include_expected
- end
- encoder.text_token match, kind
-
- elsif match = scan(/@[a-zA-Z0-9_.]+[lL]?/)
- encoder.text_token match, :decorator
-
- elsif match = scan(/0[xX][0-9A-Fa-f]+[lL]?/)
- encoder.text_token match, :hex
-
- elsif match = scan(/0[bB][01]+[lL]?/)
- encoder.text_token match, :binary
-
- elsif match = scan(/(?:\d*\.\d+|\d+\.\d*)(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+/)
- if scan(/[jJ]/)
- match << matched
- encoder.text_token match, :imaginary
- else
- encoder.text_token match, :float
- end
-
- elsif match = scan(/0[oO][0-7]+|0[0-7]+(?![89.eE])[lL]?/)
- encoder.text_token match, :octal
-
- elsif match = scan(/\d+([lL])?/)
- if self[1] == nil && scan(/[jJ]/)
- match << matched
- encoder.text_token match, :imaginary
- else
- encoder.text_token match, :integer
- end
-
- else
- encoder.text_token getch, :error
-
- end
-
- elsif state == :def_expected
- state = :initial
- if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
- encoder.text_token match, :method
- else
- next
- end
-
- elsif state == :class_expected
- state = :initial
- if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
- encoder.text_token match, :class
- else
- next
- end
-
- elsif state == :include_expected
- if match = scan(unicode ? /#{DESCRIPTOR}/uo : /#{DESCRIPTOR}/o)
- if match == 'as'
- encoder.text_token match, :keyword
- from_import_state << :as
- elsif from_import_state.first == :from && match == 'import'
- encoder.text_token match, :keyword
- from_import_state << :import
- elsif from_import_state.last == :as
- # encoder.text_token match, match[0,1][unicode ? /[[:upper:]]/u : /[[:upper:]]/] ? :class : :method
- encoder.text_token match, :ident
- from_import_state.pop
- elsif IDENT_KIND[match] == :keyword
- unscan
- match = nil
- state = :initial
- next
- else
- encoder.text_token match, :include
- end
- elsif match = scan(/,/)
- from_import_state.pop if from_import_state.last == :as
- encoder.text_token match, :operator
- else
- from_import_state = []
- state = :initial
- next
- end
-
- else
- raise_inspect 'Unknown state', encoder, state
-
- end
-
- last_token_dot = match == '.'
-
- end
-
- if state == :string
- encoder.end_group string_type
- end
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/raydebug.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/raydebug.rb
deleted file mode 100644
index 7a21354cf..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/raydebug.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-module CodeRay
-module Scanners
-
- # = Debug Scanner
- #
- # Parses the output of the Encoders::Debug encoder.
- class Raydebug < Scanner
-
- register_for :raydebug
- file_extension 'raydebug'
- title 'CodeRay Token Dump'
-
- protected
-
- def scan_tokens encoder, options
-
- opened_tokens = []
-
- until eos?
-
- if match = scan(/\s+/)
- encoder.text_token match, :space
-
- elsif match = scan(/ (\w+) \( ( [^\)\\]* ( \\. [^\)\\]* )* ) /x)
- kind = self[1]
- encoder.text_token kind, :class
- encoder.text_token '(', :operator
- match = self[2]
- encoder.text_token match, kind.to_sym
- encoder.text_token match, :operator if match = scan(/\)/)
-
- elsif match = scan(/ (\w+) ([<\[]) /x)
- kind = self[1]
- case self[2]
- when '<'
- encoder.text_token kind, :class
- when '['
- encoder.text_token kind, :class
- else
- raise 'CodeRay bug: This case should not be reached.'
- end
- kind = kind.to_sym
- opened_tokens << kind
- encoder.begin_group kind
- encoder.text_token self[2], :operator
-
- elsif !opened_tokens.empty? && match = scan(/ [>\]] /x)
- encoder.text_token match, :operator
- encoder.end_group opened_tokens.pop
-
- else
- encoder.text_token getch, :space
-
- end
-
- end
-
- encoder.end_group opened_tokens.pop until opened_tokens.empty?
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby.rb
deleted file mode 100644
index 4244ab7ba..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby.rb
+++ /dev/null
@@ -1,461 +0,0 @@
-module CodeRay
-module Scanners
-
- # This scanner is really complex, since Ruby _is_ a complex language!
- #
- # It tries to highlight 100% of all common code,
- # and 90% of strange codes.
- #
- # It is optimized for HTML highlighting, and is not very useful for
- # parsing or pretty printing.
- class Ruby < Scanner
-
- register_for :ruby
- file_extension 'rb'
-
- autoload :Patterns, 'coderay/scanners/ruby/patterns'
- autoload :StringState, 'coderay/scanners/ruby/string_state'
-
- def interpreted_string_state
- StringState.new :string, true, '"'
- end
-
- protected
-
- def setup
- @state = :initial
- end
-
- def scan_tokens encoder, options
- state, heredocs = options[:state] || @state
- heredocs = heredocs.dup if heredocs.is_a?(Array)
-
- if state && state.instance_of?(StringState)
- encoder.begin_group state.type
- end
-
- last_state = nil
-
- method_call_expected = false
- value_expected = true
-
- inline_block_stack = nil
- inline_block_curly_depth = 0
-
- if heredocs
- state = heredocs.shift
- encoder.begin_group state.type
- heredocs = nil if heredocs.empty?
- end
-
- # def_object_stack = nil
- # def_object_paren_depth = 0
-
- patterns = Patterns # avoid constant lookup
-
- unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8'
-
- until eos?
-
- if state.instance_of? ::Symbol
-
- if match = scan(/[ \t\f\v]+/)
- encoder.text_token match, :space
-
- elsif match = scan(/\n/)
- if heredocs
- unscan # heredoc scanning needs \n at start
- state = heredocs.shift
- encoder.begin_group state.type
- heredocs = nil if heredocs.empty?
- else
- state = :initial if state == :undef_comma_expected
- encoder.text_token match, :space
- value_expected = true
- end
-
- elsif match = scan(bol? ? / \#(!)?.* | #{patterns::RUBYDOC_OR_DATA} /ox : /\#.*/)
- encoder.text_token match, self[1] ? :doctype : :comment
-
- elsif match = scan(/\\\n/)
- if heredocs
- unscan # heredoc scanning needs \n at start
- encoder.text_token scan(/\\/), :space
- state = heredocs.shift
- encoder.begin_group state.type
- heredocs = nil if heredocs.empty?
- else
- encoder.text_token match, :space
- end
-
- elsif state == :initial
-
- # IDENTS #
- if !method_call_expected &&
- match = scan(unicode ? /#{patterns::METHOD_NAME}/uo :
- /#{patterns::METHOD_NAME}/o)
- value_expected = false
- kind = patterns::IDENT_KIND[match]
- if kind == :ident
- if match[/\A[A-Z]/] && !(match[/[!?]$/] || match?(/\(/))
- kind = :constant
- end
- elsif kind == :keyword
- state = patterns::KEYWORD_NEW_STATE[match]
- value_expected = true if patterns::KEYWORDS_EXPECTING_VALUE[match]
- end
- value_expected = true if !value_expected && check(/#{patterns::VALUE_FOLLOWS}/o)
- encoder.text_token match, kind
-
- elsif method_call_expected &&
- match = scan(unicode ? /#{patterns::METHOD_AFTER_DOT}/uo :
- /#{patterns::METHOD_AFTER_DOT}/o)
- if method_call_expected == '::' && match[/\A[A-Z]/] && !match?(/\(/)
- encoder.text_token match, :constant
- else
- encoder.text_token match, :ident
- end
- method_call_expected = false
- value_expected = check(/#{patterns::VALUE_FOLLOWS}/o)
-
- # OPERATORS #
- elsif !method_call_expected && match = scan(/ (\.(?!\.)|::) | (?: \.\.\.? | ==?=? | [,\(\[\{] )() | [\)\]\}] /x)
- method_call_expected = self[1]
- value_expected = !method_call_expected && self[2]
- if inline_block_stack
- case match
- when '{'
- inline_block_curly_depth += 1
- when '}'
- inline_block_curly_depth -= 1
- if inline_block_curly_depth == 0 # closing brace of inline block reached
- state, inline_block_curly_depth, heredocs = inline_block_stack.pop
- inline_block_stack = nil if inline_block_stack.empty?
- heredocs = nil if heredocs && heredocs.empty?
- encoder.text_token match, :inline_delimiter
- encoder.end_group :inline
- next
- end
- end
- end
- encoder.text_token match, :operator
-
- elsif match = scan(unicode ? /#{patterns::SYMBOL}/uo :
- /#{patterns::SYMBOL}/o)
- case delim = match[1]
- when ?', ?"
- encoder.begin_group :symbol
- encoder.text_token ':', :symbol
- match = delim.chr
- encoder.text_token match, :delimiter
- state = self.class::StringState.new :symbol, delim == ?", match
- else
- encoder.text_token match, :symbol
- value_expected = false
- end
-
- elsif match = scan(/ ' (?:(?>[^'\\]*) ')? | " (?:(?>[^"\\\#]*) ")? /mx)
- encoder.begin_group :string
- if match.size == 1
- encoder.text_token match, :delimiter
- state = self.class::StringState.new :string, match == '"', match # important for streaming
- else
- encoder.text_token match[0,1], :delimiter
- encoder.text_token match[1..-2], :content if match.size > 2
- encoder.text_token match[-1,1], :delimiter
- encoder.end_group :string
- value_expected = false
- end
-
- elsif match = scan(unicode ? /#{patterns::INSTANCE_VARIABLE}/uo :
- /#{patterns::INSTANCE_VARIABLE}/o)
- value_expected = false
- encoder.text_token match, :instance_variable
-
- elsif value_expected && match = scan(/\//)
- encoder.begin_group :regexp
- encoder.text_token match, :delimiter
- state = self.class::StringState.new :regexp, true, '/'
-
- elsif match = scan(value_expected ? /[-+]?#{patterns::NUMERIC}/o : /#{patterns::NUMERIC}/o)
- if method_call_expected
- encoder.text_token match, :error
- method_call_expected = false
- else
- encoder.text_token match, self[1] ? :float : :integer # TODO: send :hex/:octal/:binary
- end
- value_expected = false
-
- elsif match = scan(/ [-+!~^\/]=? | [:;] | [*|&]{1,2}=? | >>? /x)
- value_expected = true
- encoder.text_token match, :operator
-
- elsif value_expected && match = scan(/#{patterns::HEREDOC_OPEN}/o)
- quote = self[3]
- delim = self[quote ? 4 : 2]
- kind = patterns::QUOTE_TO_TYPE[quote]
- encoder.begin_group kind
- encoder.text_token match, :delimiter
- encoder.end_group kind
- heredocs ||= [] # create heredocs if empty
- heredocs << self.class::StringState.new(kind, quote != "'", delim,
- self[1] == '-' ? :indented : :linestart)
- value_expected = false
-
- elsif value_expected && match = scan(/#{patterns::FANCY_STRING_START}/o)
- kind = patterns::FANCY_STRING_KIND[self[1]]
- encoder.begin_group kind
- state = self.class::StringState.new kind, patterns::FANCY_STRING_INTERPRETED[self[1]], self[2]
- encoder.text_token match, :delimiter
-
- elsif value_expected && match = scan(/#{patterns::CHARACTER}/o)
- value_expected = false
- encoder.text_token match, :integer
-
- elsif match = scan(/ %=? | <(?:<|=>?)? | \? /x)
- value_expected = true
- encoder.text_token match, :operator
-
- elsif match = scan(/`/)
- encoder.begin_group :shell
- encoder.text_token match, :delimiter
- state = self.class::StringState.new :shell, true, match
-
- elsif match = scan(unicode ? /#{patterns::GLOBAL_VARIABLE}/uo :
- /#{patterns::GLOBAL_VARIABLE}/o)
- encoder.text_token match, :global_variable
- value_expected = false
-
- elsif match = scan(unicode ? /#{patterns::CLASS_VARIABLE}/uo :
- /#{patterns::CLASS_VARIABLE}/o)
- encoder.text_token match, :class_variable
- value_expected = false
-
- elsif match = scan(/\\\z/)
- encoder.text_token match, :space
-
- else
- if method_call_expected
- method_call_expected = false
- next
- end
- unless unicode
- # check for unicode
- $DEBUG_BEFORE, $DEBUG = $DEBUG, false
- begin
- if check(/./mu).size > 1
- # seems like we should try again with unicode
- unicode = true
- end
- rescue
- # bad unicode char; use getch
- ensure
- $DEBUG = $DEBUG_BEFORE
- end
- next if unicode
- end
-
- encoder.text_token getch, :error
-
- end
-
- if last_state
- state = last_state
- last_state = nil
- end
-
- elsif state == :def_expected
- if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo :
- /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o)
- encoder.text_token match, :method
- state = :initial
- else
- last_state = :dot_expected
- state = :initial
- end
-
- elsif state == :dot_expected
- if match = scan(/\.|::/)
- # invalid definition
- state = :def_expected
- encoder.text_token match, :operator
- else
- state = :initial
- end
-
- elsif state == :module_expected
- if match = scan(/<</)
- encoder.text_token match, :operator
- else
- state = :initial
- if match = scan(unicode ? / (?:#{patterns::IDENT}::)* #{patterns::IDENT} /oux :
- / (?:#{patterns::IDENT}::)* #{patterns::IDENT} /ox)
- encoder.text_token match, :class
- end
- end
-
- elsif state == :undef_expected
- state = :undef_comma_expected
- if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo :
- /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o)
- encoder.text_token match, :method
- elsif match = scan(/#{patterns::SYMBOL}/o)
- case delim = match[1]
- when ?', ?"
- encoder.begin_group :symbol
- encoder.text_token ':', :symbol
- match = delim.chr
- encoder.text_token match, :delimiter
- state = self.class::StringState.new :symbol, delim == ?", match
- state.next_state = :undef_comma_expected
- else
- encoder.text_token match, :symbol
- end
- else
- state = :initial
- end
-
- elsif state == :undef_comma_expected
- if match = scan(/,/)
- encoder.text_token match, :operator
- state = :undef_expected
- else
- state = :initial
- end
-
- elsif state == :alias_expected
- match = scan(unicode ? /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/uo :
- /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/o)
-
- if match
- encoder.text_token self[1], (self[1][0] == ?: ? :symbol : :method)
- encoder.text_token self[2], :space
- encoder.text_token self[3], (self[3][0] == ?: ? :symbol : :method)
- end
- state = :initial
-
- else
- #:nocov:
- raise_inspect 'Unknown state: %p' % [state], encoder
- #:nocov:
- end
-
- else # StringState
-
- match = scan_until(state.pattern) || scan_rest
- unless match.empty?
- encoder.text_token match, :content
- break if eos?
- end
-
- if state.heredoc && self[1] # end of heredoc
- match = getch
- match << scan_until(/$/) unless eos?
- encoder.text_token match, :delimiter unless match.empty?
- encoder.end_group state.type
- state = state.next_state
- next
- end
-
- case match = getch
-
- when state.delim
- if state.paren_depth
- state.paren_depth -= 1
- if state.paren_depth > 0
- encoder.text_token match, :content
- next
- end
- end
- encoder.text_token match, :delimiter
- if state.type == :regexp && !eos?
- match = scan(/#{patterns::REGEXP_MODIFIERS}/o)
- encoder.text_token match, :modifier unless match.empty?
- end
- encoder.end_group state.type
- value_expected = false
- state = state.next_state
-
- when '\\'
- if state.interpreted
- if esc = scan(/#{patterns::ESCAPE}/o)
- encoder.text_token match + esc, :char
- else
- encoder.text_token match, :error
- end
- else
- case esc = getch
- when nil
- encoder.text_token match, :content
- when state.delim, '\\'
- encoder.text_token match + esc, :char
- else
- encoder.text_token match + esc, :content
- end
- end
-
- when '#'
- case peek(1)
- when '{'
- inline_block_stack ||= []
- inline_block_stack << [state, inline_block_curly_depth, heredocs]
- value_expected = true
- state = :initial
- inline_block_curly_depth = 1
- encoder.begin_group :inline
- encoder.text_token match + getch, :inline_delimiter
- when '$', '@'
- encoder.text_token match, :escape
- last_state = state
- state = :initial
- else
- #:nocov:
- raise_inspect 'else-case # reached; #%p not handled' % [peek(1)], encoder
- #:nocov:
- end
-
- when state.opening_paren
- state.paren_depth += 1
- encoder.text_token match, :content
-
- else
- #:nocov
- raise_inspect 'else-case " reached; %p not handled, state = %p' % [match, state], encoder
- #:nocov:
-
- end
-
- end
-
- end
-
- # cleaning up
- if state.is_a? StringState
- encoder.end_group state.type
- end
-
- if options[:keep_state]
- if state.is_a?(StringState) && state.heredoc
- (heredocs ||= []).unshift state
- state = :initial
- elsif heredocs && heredocs.empty?
- heredocs = nil
- end
- @state = state, heredocs
- end
-
- if inline_block_stack
- until inline_block_stack.empty?
- state, = *inline_block_stack.pop
- encoder.end_group :inline
- encoder.end_group state.type
- end
- end
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/patterns.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/patterns.rb
deleted file mode 100644
index a52198ef1..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/patterns.rb
+++ /dev/null
@@ -1,175 +0,0 @@
-# encoding: utf-8
-module CodeRay
-module Scanners
-
- module Ruby::Patterns # :nodoc: all
-
- KEYWORDS = %w[
- and def end in or unless begin
- defined? ensure module redo super until
- BEGIN break do next rescue then
- when END case else for retry
- while alias class elsif if not return
- undef yield
- ]
-
- # See http://murfy.de/ruby-constants.
- PREDEFINED_CONSTANTS = %w[
- nil true false self
- DATA ARGV ARGF ENV
- FALSE TRUE NIL
- STDERR STDIN STDOUT
- TOPLEVEL_BINDING
- RUBY_COPYRIGHT RUBY_DESCRIPTION RUBY_ENGINE RUBY_PATCHLEVEL
- RUBY_PLATFORM RUBY_RELEASE_DATE RUBY_REVISION RUBY_VERSION
- __FILE__ __LINE__ __ENCODING__
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(KEYWORDS, :keyword).
- add(PREDEFINED_CONSTANTS, :predefined_constant)
-
- KEYWORD_NEW_STATE = WordList.new(:initial).
- add(%w[ def ], :def_expected).
- add(%w[ undef ], :undef_expected).
- add(%w[ alias ], :alias_expected).
- add(%w[ class module ], :module_expected)
-
- IDENT = 'ä'[/[[:alpha:]]/] == 'ä' ? /[[:alpha:]_][[:alnum:]_]*/ : /[^\W\d]\w*/
-
- METHOD_NAME = / #{IDENT} [?!]? /ox
- METHOD_NAME_OPERATOR = /
- \*\*? # multiplication and power
- | [-+~]@? # plus, minus, tilde with and without at sign
- | [\/%&|^`] # division, modulo or format strings, and, or, xor, system
- | \[\]=? # array getter and setter
- | << | >> # append or shift left, shift right
- | <=?>? | >=? # comparison, rocket operator
- | ===? | =~ # simple equality, case equality, match
- | ![~=@]? # negation with and without at sign, not-equal and not-match
- /ox
- METHOD_SUFFIX = / (?: [?!] | = (?![~>]|=(?!>)) ) /x
- METHOD_NAME_EX = / #{IDENT} #{METHOD_SUFFIX}? | #{METHOD_NAME_OPERATOR} /ox
- METHOD_AFTER_DOT = / #{IDENT} [?!]? | #{METHOD_NAME_OPERATOR} /ox
- INSTANCE_VARIABLE = / @ #{IDENT} /ox
- CLASS_VARIABLE = / @@ #{IDENT} /ox
- OBJECT_VARIABLE = / @@? #{IDENT} /ox
- GLOBAL_VARIABLE = / \$ (?: #{IDENT} | [1-9]\d* | 0\w* | [~&+`'=\/,;_.<>!@$?*":\\] | -[a-zA-Z_0-9] ) /ox
- PREFIX_VARIABLE = / #{GLOBAL_VARIABLE} | #{OBJECT_VARIABLE} /ox
- VARIABLE = / @?@? #{IDENT} | #{GLOBAL_VARIABLE} /ox
-
- QUOTE_TO_TYPE = {
- '`' => :shell,
- '/'=> :regexp,
- }
- QUOTE_TO_TYPE.default = :string
-
- REGEXP_MODIFIERS = /[mousenix]*/
-
- DECIMAL = /\d+(?:_\d+)*/
- OCTAL = /0_?[0-7]+(?:_[0-7]+)*/
- HEXADECIMAL = /0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*/
- BINARY = /0b[01]+(?:_[01]+)*/
-
- EXPONENT = / [eE] [+-]? #{DECIMAL} /ox
- FLOAT_SUFFIX = / #{EXPONENT} | \. #{DECIMAL} #{EXPONENT}? /ox
- FLOAT_OR_INT = / #{DECIMAL} (?: #{FLOAT_SUFFIX} () )? /ox
- NUMERIC = / (?: (?=0) (?: #{OCTAL} | #{HEXADECIMAL} | #{BINARY} ) | #{FLOAT_OR_INT} ) /ox
-
- SYMBOL = /
- :
- (?:
- #{METHOD_NAME_EX}
- | #{PREFIX_VARIABLE}
- | ['"]
- )
- /ox
- METHOD_NAME_OR_SYMBOL = / #{METHOD_NAME_EX} | #{SYMBOL} /ox
-
- SIMPLE_ESCAPE = /
- [abefnrstv]
- | [0-7]{1,3}
- | x[0-9A-Fa-f]{1,2}
- | .
- /mx
-
- CONTROL_META_ESCAPE = /
- (?: M-|C-|c )
- (?: \\ (?: M-|C-|c ) )*
- (?: [^\\] | \\ #{SIMPLE_ESCAPE} )?
- /mox
-
- ESCAPE = /
- #{CONTROL_META_ESCAPE} | #{SIMPLE_ESCAPE}
- /mox
-
- CHARACTER = /
- \?
- (?:
- [^\s\\]
- | \\ #{ESCAPE}
- )
- /mox
-
- # NOTE: This is not completely correct, but
- # nobody needs heredoc delimiters ending with \n.
- HEREDOC_OPEN = /
- << (-)? # $1 = float
- (?:
- ( [A-Za-z_0-9]+ ) # $2 = delim
- |
- ( ["'`\/] ) # $3 = quote, type
- ( [^\n]*? ) \3 # $4 = delim
- )
- /mx
-
- RUBYDOC = /
- =begin (?!\S)
- .*?
- (?: \Z | ^=end (?!\S) [^\n]* )
- /mx
-
- DATA = /
- __END__$
- .*?
- (?: \Z | (?=^\#CODE) )
- /mx
-
- RUBYDOC_OR_DATA = / #{RUBYDOC} | #{DATA} /xo
-
- # Checks for a valid value to follow. This enables
- # value_expected in method calls without parentheses.
- VALUE_FOLLOWS = /
- (?>[ \t\f\v]+)
- (?:
- [%\/][^\s=]
- | <<-?\S
- | [-+] \d
- | #{CHARACTER}
- )
- /ox
- KEYWORDS_EXPECTING_VALUE = WordList.new.add(%w[
- and end in or unless begin
- defined? ensure redo super until
- break do next rescue then
- when case else for retry
- while elsif if not return
- yield
- ])
-
- FANCY_STRING_START = / % ( [QqrsWwx] | (?![a-zA-Z0-9]) ) ([^a-zA-Z0-9]) /x
- FANCY_STRING_KIND = Hash.new(:string).merge({
- 'r' => :regexp,
- 's' => :symbol,
- 'x' => :shell,
- })
- FANCY_STRING_INTERPRETED = Hash.new(true).merge({
- 'q' => false,
- 's' => false,
- 'w' => false,
- })
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/string_state.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/string_state.rb
deleted file mode 100644
index 2f398d1ed..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/string_state.rb
+++ /dev/null
@@ -1,71 +0,0 @@
-# encoding: utf-8
-module CodeRay
-module Scanners
-
- class Ruby
-
- class StringState < Struct.new :type, :interpreted, :delim, :heredoc,
- :opening_paren, :paren_depth, :pattern, :next_state # :nodoc: all
-
- CLOSING_PAREN = Hash[ *%w[
- ( )
- [ ]
- < >
- { }
- ] ].each { |k,v| k.freeze; v.freeze } # debug, if I try to change it with <<
-
- STRING_PATTERN = Hash.new do |h, k|
- delim, interpreted = *k
- # delim = delim.dup # workaround for old Ruby
- delim_pattern = Regexp.escape(delim)
- if closing_paren = CLOSING_PAREN[delim]
- delim_pattern << Regexp.escape(closing_paren)
- end
- delim_pattern << '\\\\' unless delim == '\\'
-
- # special_escapes =
- # case interpreted
- # when :regexp_symbols
- # '| [|?*+(){}\[\].^$]'
- # end
-
- h[k] =
- if interpreted && delim != '#'
- / (?= [#{delim_pattern}] | \# [{$@] ) /mx
- else
- / (?= [#{delim_pattern}] ) /mx
- end
- end
-
- def initialize kind, interpreted, delim, heredoc = false
- if heredoc
- pattern = heredoc_pattern delim, interpreted, heredoc == :indented
- delim = nil
- else
- pattern = STRING_PATTERN[ [delim, interpreted] ]
- if closing_paren = CLOSING_PAREN[delim]
- opening_paren = delim
- delim = closing_paren
- paren_depth = 1
- end
- end
- super kind, interpreted, delim, heredoc, opening_paren, paren_depth, pattern, :initial
- end
-
- def heredoc_pattern delim, interpreted, indented
- # delim = delim.dup # workaround for old Ruby
- delim_pattern = Regexp.escape(delim)
- delim_pattern = / (?:\A|\n) #{ '(?>[ \t]*)' if indented } #{ Regexp.new delim_pattern } $ /x
- if interpreted
- / (?= #{delim_pattern}() | \\ | \# [{$@] ) /mx # $1 set == end of heredoc
- else
- / (?= #{delim_pattern}() | \\ ) /mx
- end
- end
-
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/sql.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/sql.rb
deleted file mode 100644
index bcbffd5ac..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/sql.rb
+++ /dev/null
@@ -1,174 +0,0 @@
-module CodeRay module Scanners
-
- # by Josh Goebel
- class SQL < Scanner
-
- register_for :sql
-
- KEYWORDS = %w(
- all and any as before begin between by case check collate
- each else end exists
- for foreign from full group having if in inner is join
- like not of on or order outer over references
- then to union using values when where
- left right distinct
- )
-
- OBJECTS = %w(
- database databases table tables column columns fields index constraint
- constraints transaction function procedure row key view trigger
- )
-
- COMMANDS = %w(
- add alter comment create delete drop grant insert into select update set
- show prompt begin commit rollback replace truncate
- )
-
- PREDEFINED_TYPES = %w(
- char varchar varchar2 enum binary text tinytext mediumtext
- longtext blob tinyblob mediumblob longblob timestamp
- date time datetime year double decimal float int
- integer tinyint mediumint bigint smallint unsigned bit
- bool boolean hex bin oct
- )
-
- PREDEFINED_FUNCTIONS = %w( sum cast substring abs pi count min max avg now )
-
- DIRECTIVES = %w(
- auto_increment unique default charset initially deferred
- deferrable cascade immediate read write asc desc after
- primary foreign return engine
- )
-
- PREDEFINED_CONSTANTS = %w( null true false )
-
- IDENT_KIND = WordList::CaseIgnoring.new(:ident).
- add(KEYWORDS, :keyword).
- add(OBJECTS, :type).
- add(COMMANDS, :class).
- add(PREDEFINED_TYPES, :predefined_type).
- add(PREDEFINED_CONSTANTS, :predefined_constant).
- add(PREDEFINED_FUNCTIONS, :predefined).
- add(DIRECTIVES, :directive)
-
- ESCAPE = / [rbfntv\n\\\/'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | . /mx
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
-
- STRING_PREFIXES = /[xnb]|_\w+/i
-
- def scan_tokens encoder, options
-
- state = :initial
- string_type = nil
- string_content = ''
- name_expected = false
-
- until eos?
-
- if state == :initial
-
- if match = scan(/ \s+ | \\\n /x)
- encoder.text_token match, :space
-
- elsif match = scan(/(?:--\s?|#).*/)
- encoder.text_token match, :comment
-
- elsif match = scan(%r( /\* (!)? (?: .*? \*/ | .* ) )mx)
- encoder.text_token match, self[1] ? :directive : :comment
-
- elsif match = scan(/ [*\/=<>:;,!&^|()\[\]{}~%] | [-+\.](?!\d) /x)
- name_expected = true if match == '.' && check(/[A-Za-z_]/)
- encoder.text_token match, :operator
-
- elsif match = scan(/(#{STRING_PREFIXES})?([`"'])/o)
- prefix = self[1]
- string_type = self[2]
- encoder.begin_group :string
- encoder.text_token prefix, :modifier if prefix
- match = string_type
- state = :string
- encoder.text_token match, :delimiter
-
- elsif match = scan(/ @? [A-Za-z_][A-Za-z_0-9]* /x)
- encoder.text_token match, name_expected ? :ident : (match[0] == ?@ ? :variable : IDENT_KIND[match])
- name_expected = false
-
- elsif match = scan(/0[xX][0-9A-Fa-f]+/)
- encoder.text_token match, :hex
-
- elsif match = scan(/0[0-7]+(?![89.eEfF])/)
- encoder.text_token match, :octal
-
- elsif match = scan(/[-+]?(?>\d+)(?![.eEfF])/)
- encoder.text_token match, :integer
-
- elsif match = scan(/[-+]?(?:\d[fF]|\d*\.\d+(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+)/)
- encoder.text_token match, :float
-
- elsif match = scan(/\\N/)
- encoder.text_token match, :predefined_constant
-
- else
- encoder.text_token getch, :error
-
- end
-
- elsif state == :string
- if match = scan(/[^\\"'`]+/)
- string_content << match
- next
- elsif match = scan(/["'`]/)
- if string_type == match
- if peek(1) == string_type # doubling means escape
- string_content << string_type << getch
- next
- end
- unless string_content.empty?
- encoder.text_token string_content, :content
- string_content = ''
- end
- encoder.text_token match, :delimiter
- encoder.end_group :string
- state = :initial
- string_type = nil
- else
- string_content << match
- end
- elsif match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- unless string_content.empty?
- encoder.text_token string_content, :content
- string_content = ''
- end
- encoder.text_token match, :char
- elsif match = scan(/ \\ . /mox)
- string_content << match
- next
- elsif match = scan(/ \\ | $ /x)
- unless string_content.empty?
- encoder.text_token string_content, :content
- string_content = ''
- end
- encoder.text_token match, :error
- state = :initial
- else
- raise "else case \" reached; %p not handled." % peek(1), encoder
- end
-
- else
- raise 'else-case reached', encoder
-
- end
-
- end
-
- if state == :string
- encoder.end_group state
- end
-
- encoder
-
- end
-
- end
-
-end end \ No newline at end of file
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/text.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/text.rb
deleted file mode 100644
index bde902978..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/text.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-module CodeRay
- module Scanners
-
- # Scanner for plain text.
- #
- # Yields just one token of the kind :plain.
- #
- # Alias: +plaintext+, +plain+
- class Text < Scanner
-
- register_for :text
- title 'Plain text'
-
- KINDS_NOT_LOC = [:plain] # :nodoc:
-
- protected
-
- def scan_tokens encoder, options
- encoder.text_token string, :plain
- encoder
- end
-
- end
-
- end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/xml.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/xml.rb
deleted file mode 100644
index 947f16ee1..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/xml.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
-
- # Scanner for XML.
- #
- # Currently this is the same scanner as Scanners::HTML.
- class XML < HTML
-
- register_for :xml
- file_extension 'xml'
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/yaml.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/yaml.rb
deleted file mode 100644
index 5e74f2f79..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/yaml.rb
+++ /dev/null
@@ -1,140 +0,0 @@
-module CodeRay
-module Scanners
-
- # Scanner for YAML.
- #
- # Based on the YAML scanner from Syntax by Jamis Buck.
- class YAML < Scanner
-
- register_for :yaml
- file_extension 'yml'
-
- KINDS_NOT_LOC = :all
-
- protected
-
- def scan_tokens encoder, options
-
- state = :initial
- key_indent = string_indent = 0
-
- until eos?
-
- key_indent = nil if bol?
-
- if match = scan(/ +[\t ]*/)
- encoder.text_token match, :space
-
- elsif match = scan(/\n+/)
- encoder.text_token match, :space
- state = :initial if match.index(?\n)
-
- elsif match = scan(/#.*/)
- encoder.text_token match, :comment
-
- elsif bol? and case
- when match = scan(/---|\.\.\./)
- encoder.begin_group :head
- encoder.text_token match, :head
- encoder.end_group :head
- next
- when match = scan(/%.*/)
- encoder.text_token match, :doctype
- next
- end
-
- elsif state == :value and case
- when !check(/(?:"[^"]*")(?=: |:$)/) && match = scan(/"/)
- encoder.begin_group :string
- encoder.text_token match, :delimiter
- encoder.text_token match, :content if match = scan(/ [^"\\]* (?: \\. [^"\\]* )* /mx)
- encoder.text_token match, :delimiter if match = scan(/"/)
- encoder.end_group :string
- next
- when match = scan(/[|>][-+]?/)
- encoder.begin_group :string
- encoder.text_token match, :delimiter
- string_indent = key_indent || column(pos - match.size) - 1
- encoder.text_token matched, :content if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
- encoder.end_group :string
- next
- when match = scan(/(?![!"*&]).+?(?=$|\s+#)/)
- encoder.begin_group :string
- encoder.text_token match, :content
- string_indent = key_indent || column(pos - match.size) - 1
- encoder.text_token matched, :content if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
- encoder.end_group :string
- next
- end
-
- elsif case
- when match = scan(/[-:](?= |$)/)
- state = :value if state == :colon && (match == ':' || match == '-')
- state = :value if state == :initial && match == '-'
- encoder.text_token match, :operator
- next
- when match = scan(/[,{}\[\]]/)
- encoder.text_token match, :operator
- next
- when state == :initial && match = scan(/[\w.() ]*\S(?= *:(?: |$))/)
- encoder.text_token match, :key
- key_indent = column(pos - match.size) - 1
- state = :colon
- next
- when match = scan(/(?:"[^"\n]*"|'[^'\n]*')(?= *:(?: |$))/)
- encoder.begin_group :key
- encoder.text_token match[0,1], :delimiter
- encoder.text_token match[1..-2], :content
- encoder.text_token match[-1,1], :delimiter
- encoder.end_group :key
- key_indent = column(pos - match.size) - 1
- state = :colon
- next
- when match = scan(/(![\w\/]+)(:([\w:]+))?/)
- encoder.text_token self[1], :type
- if self[2]
- encoder.text_token ':', :operator
- encoder.text_token self[3], :class
- end
- next
- when match = scan(/&\S+/)
- encoder.text_token match, :variable
- next
- when match = scan(/\*\w+/)
- encoder.text_token match, :global_variable
- next
- when match = scan(/<</)
- encoder.text_token match, :class_variable
- next
- when match = scan(/\d\d:\d\d:\d\d/)
- encoder.text_token match, :octal
- next
- when match = scan(/\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d(\.\d+)? [-+]\d\d:\d\d/)
- encoder.text_token match, :octal
- next
- when match = scan(/:\w+/)
- encoder.text_token match, :symbol
- next
- when match = scan(/[^:\s]+(:(?! |$)[^:\s]*)* .*/)
- encoder.text_token match, :error
- next
- when match = scan(/[^:\s]+(:(?! |$)[^:\s]*)*/)
- encoder.text_token match, :error
- next
- end
-
- else
- raise if eos?
- encoder.text_token getch, :error
-
- end
-
- end
-
- encoder
- end
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/style.rb b/vendor/gems/coderay-1.0.0/lib/coderay/style.rb
deleted file mode 100644
index df4704f41..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/style.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-module CodeRay
-
- # This module holds the Style class and its subclasses.
- #
- # See Plugin.
- module Styles
- extend PluginHost
- plugin_path File.dirname(__FILE__), 'styles'
-
- # Base class for styles.
- #
- # Styles are used by Encoders::HTML to colorize tokens.
- class Style
- extend Plugin
- plugin_host Styles
-
- DEFAULT_OPTIONS = { } # :nodoc:
-
- end
-
- end
-
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/styles/_map.rb b/vendor/gems/coderay-1.0.0/lib/coderay/styles/_map.rb
deleted file mode 100644
index 92d435452..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/styles/_map.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-module CodeRay
-module Styles
-
- default :alpha
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/styles/alpha.rb b/vendor/gems/coderay-1.0.0/lib/coderay/styles/alpha.rb
deleted file mode 100644
index ca51433b8..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/styles/alpha.rb
+++ /dev/null
@@ -1,143 +0,0 @@
-module CodeRay
-module Styles
-
- # A colorful theme using CSS 3 colors (with alpha channel).
- class Alpha < Style
-
- register_for :alpha
-
- code_background = 'hsl(0,0%,95%)'
- numbers_background = 'hsl(180,65%,90%)'
- border_color = 'silver'
- normal_color = 'black'
-
- CSS_MAIN_STYLES = <<-MAIN # :nodoc:
-.CodeRay {
- background-color: #{code_background};
- border: 1px solid #{border_color};
- color: #{normal_color};
-}
-.CodeRay pre {
- margin: 0px;
-}
-
-span.CodeRay { white-space: pre; border: 0px; padding: 2px; }
-
-table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
-table.CodeRay td { padding: 2px 4px; vertical-align: top; }
-
-.CodeRay .line-numbers {
- background-color: #{numbers_background};
- color: gray;
- text-align: right;
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
-}
-.CodeRay .line-numbers a {
- background-color: #{numbers_background} !important;
- color: gray !important;
- text-decoration: none !important;
-}
-.CodeRay .line-numbers a:target { color: blue !important; }
-.CodeRay .line-numbers .highlighted { color: red !important; }
-.CodeRay .line-numbers .highlighted a { color: red !important; }
-.CodeRay span.line-numbers { padding: 0px 4px; }
-.CodeRay .line { display: block; float: left; width: 100%; }
-.CodeRay .code { width: 100%; }
-.CodeRay .code pre { overflow: auto; }
- MAIN
-
- TOKEN_COLORS = <<-'TOKENS'
-.debug { color: white !important; background: blue !important; }
-
-.annotation { color:#007 }
-.attribute-name { color:#b48 }
-.attribute-value { color:#700 }
-.binary { color:#509 }
-.char .content { color:#D20 }
-.char .delimiter { color:#710 }
-.char { color:#D20 }
-.class { color:#B06; font-weight:bold }
-.class-variable { color:#369 }
-.color { color:#0A0 }
-.comment { color:#777 }
-.comment .char { color:#444 }
-.comment .delimiter { color:#444 }
-.complex { color:#A08 }
-.constant { color:#036; font-weight:bold }
-.decorator { color:#B0B }
-.definition { color:#099; font-weight:bold }
-.delimiter { color:black }
-.directive { color:#088; font-weight:bold }
-.doc { color:#970 }
-.doc-string { color:#D42; font-weight:bold }
-.doctype { color:#34b }
-.entity { color:#800; font-weight:bold }
-.error { color:#F00; background-color:#FAA }
-.escape { color:#666 }
-.exception { color:#C00; font-weight:bold }
-.float { color:#60E }
-.function { color:#06B; font-weight:bold }
-.global-variable { color:#d70 }
-.hex { color:#02b }
-.imaginary { color:#f00 }
-.include { color:#B44; font-weight:bold }
-.inline { background-color: hsla(0,0%,0%,0.07); color: black }
-.inline-delimiter { font-weight: bold; color: #666 }
-.instance-variable { color:#33B }
-.integer { color:#00D }
-.key .char { color: #60f }
-.key .delimiter { color: #404 }
-.key { color: #606 }
-.keyword { color:#080; font-weight:bold }
-.label { color:#970; font-weight:bold }
-.local-variable { color:#963 }
-.namespace { color:#707; font-weight:bold }
-.octal { color:#40E }
-.operator { }
-.predefined { color:#369; font-weight:bold }
-.predefined-constant { color:#069 }
-.predefined-type { color:#0a5; font-weight:bold }
-.preprocessor { color:#579 }
-.pseudo-class { color:#00C; font-weight:bold }
-.regexp .content { color:#808 }
-.regexp .delimiter { color:#404 }
-.regexp .modifier { color:#C2C }
-.regexp { background-color:hsla(300,100%,50%,0.06); }
-.reserved { color:#080; font-weight:bold }
-.shell .content { color:#2B2 }
-.shell .delimiter { color:#161 }
-.shell { background-color:hsla(120,100%,50%,0.06); }
-.string .char { color: #b0b }
-.string .content { color: #D20 }
-.string .delimiter { color: #710 }
-.string .modifier { color: #E40 }
-.string { background-color:hsla(0,100%,50%,0.05); }
-.symbol .content { color:#A60 }
-.symbol .delimiter { color:#630 }
-.symbol { color:#A60 }
-.tag { color:#070 }
-.type { color:#339; font-weight:bold }
-.value { color: #088; }
-.variable { color:#037 }
-
-.insert { background: hsla(120,100%,50%,0.12) }
-.delete { background: hsla(0,100%,50%,0.12) }
-.change { color: #bbf; background: #007; }
-.head { color: #f8f; background: #505 }
-.head .filename { color: white; }
-
-.delete .eyecatcher { background-color: hsla(0,100%,50%,0.2); border: 1px solid hsla(0,100%,45%,0.5); margin: -1px; border-bottom: none; border-top-left-radius: 5px; border-top-right-radius: 5px; }
-.insert .eyecatcher { background-color: hsla(120,100%,50%,0.2); border: 1px solid hsla(120,100%,25%,0.5); margin: -1px; border-top: none; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; }
-
-.insert .insert { color: #0c0; background:transparent; font-weight:bold }
-.delete .delete { color: #c00; background:transparent; font-weight:bold }
-.change .change { color: #88f }
-.head .head { color: #f4f }
- TOKENS
-
- end
-
-end
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/token_kinds.rb b/vendor/gems/coderay-1.0.0/lib/coderay/token_kinds.rb
deleted file mode 100644
index 3b8d07e4f..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/token_kinds.rb
+++ /dev/null
@@ -1,90 +0,0 @@
-module CodeRay
-
- # A Hash of all known token kinds and their associated CSS classes.
- TokenKinds = Hash.new do |h, k|
- warn 'Undefined Token kind: %p' % [k] if $CODERAY_DEBUG
- false
- end
-
- # speedup
- TokenKinds.compare_by_identity if TokenKinds.respond_to? :compare_by_identity
-
- TokenKinds.update( # :nodoc:
- :annotation => 'annotation',
- :attribute_name => 'attribute-name',
- :attribute_value => 'attribute-value',
- :binary => 'bin',
- :char => 'char',
- :class => 'class',
- :class_variable => 'class-variable',
- :color => 'color',
- :comment => 'comment',
- :complex => 'complex',
- :constant => 'constant',
- :content => 'content',
- :debug => 'debug',
- :decorator => 'decorator',
- :definition => 'definition',
- :delimiter => 'delimiter',
- :directive => 'directive',
- :doc => 'doc',
- :doctype => 'doctype',
- :doc_string => 'doc-string',
- :entity => 'entity',
- :error => 'error',
- :escape => 'escape',
- :exception => 'exception',
- :filename => 'filename',
- :float => 'float',
- :function => 'function',
- :global_variable => 'global-variable',
- :hex => 'hex',
- :imaginary => 'imaginary',
- :important => 'important',
- :include => 'include',
- :inline => 'inline',
- :inline_delimiter => 'inline-delimiter',
- :instance_variable => 'instance-variable',
- :integer => 'integer',
- :key => 'key',
- :keyword => 'keyword',
- :label => 'label',
- :local_variable => 'local-variable',
- :modifier => 'modifier',
- :namespace => 'namespace',
- :octal => 'octal',
- :predefined => 'predefined',
- :predefined_constant => 'predefined-constant',
- :predefined_type => 'predefined-type',
- :preprocessor => 'preprocessor',
- :pseudo_class => 'pseudo-class',
- :regexp => 'regexp',
- :reserved => 'reserved',
- :shell => 'shell',
- :string => 'string',
- :symbol => 'symbol',
- :tag => 'tag',
- :type => 'type',
- :value => 'value',
- :variable => 'variable',
-
- :change => 'change',
- :delete => 'delete',
- :head => 'head',
- :insert => 'insert',
-
- :eyecatcher => 'eyecatcher',
-
- :ident => false,
- :operator => false,
-
- :space => false,
- :plain => false
- )
-
- TokenKinds[:method] = TokenKinds[:function]
- TokenKinds[:escape] = TokenKinds[:delimiter]
- TokenKinds[:docstring] = TokenKinds[:comment]
-
- TokenKinds.freeze
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/tokens.rb b/vendor/gems/coderay-1.0.0/lib/coderay/tokens.rb
deleted file mode 100644
index 045cf4a0e..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/tokens.rb
+++ /dev/null
@@ -1,215 +0,0 @@
-module CodeRay
-
- # GZip library for writing and reading token dumps.
- autoload :GZip, 'coderay/helpers/gzip'
-
- # = Tokens TODO: Rewrite!
- #
- # The Tokens class represents a list of tokens returnd from
- # a Scanner.
- #
- # A token is not a special object, just a two-element Array
- # consisting of
- # * the _token_ _text_ (the original source of the token in a String) or
- # a _token_ _action_ (begin_group, end_group, begin_line, end_line)
- # * the _token_ _kind_ (a Symbol representing the type of the token)
- #
- # A token looks like this:
- #
- # ['# It looks like this', :comment]
- # ['3.1415926', :float]
- # ['$^', :error]
- #
- # Some scanners also yield sub-tokens, represented by special
- # token actions, namely begin_group and end_group.
- #
- # The Ruby scanner, for example, splits "a string" into:
- #
- # [
- # [:begin_group, :string],
- # ['"', :delimiter],
- # ['a string', :content],
- # ['"', :delimiter],
- # [:end_group, :string]
- # ]
- #
- # Tokens is the interface between Scanners and Encoders:
- # The input is split and saved into a Tokens object. The Encoder
- # then builds the output from this object.
- #
- # Thus, the syntax below becomes clear:
- #
- # CodeRay.scan('price = 2.59', :ruby).html
- # # the Tokens object is here -------^
- #
- # See how small it is? ;)
- #
- # Tokens gives you the power to handle pre-scanned code very easily:
- # You can convert it to a webpage, a YAML file, or dump it into a gzip'ed string
- # that you put in your DB.
- #
- # It also allows you to generate tokens directly (without using a scanner),
- # to load them from a file, and still use any Encoder that CodeRay provides.
- class Tokens < Array
-
- # The Scanner instance that created the tokens.
- attr_accessor :scanner
-
- # Encode the tokens using encoder.
- #
- # encoder can be
- # * a symbol like :html oder :statistic
- # * an Encoder class
- # * an Encoder object
- #
- # options are passed to the encoder.
- def encode encoder, options = {}
- encoder = Encoders[encoder].new options if encoder.respond_to? :to_sym
- encoder.encode_tokens self, options
- end
-
- # Turn tokens into a string by concatenating them.
- def to_s
- encode CodeRay::Encoders::Encoder.new
- end
-
- # Redirects unknown methods to encoder calls.
- #
- # For example, if you call +tokens.html+, the HTML encoder
- # is used to highlight the tokens.
- def method_missing meth, options = {}
- encode meth, options
- rescue PluginHost::PluginNotFound
- super
- end
-
- # Split the tokens into parts of the given +sizes+.
- #
- # The result will be an Array of Tokens objects. The parts have
- # the text size specified by the parameter. In addition, each
- # part closes all opened tokens. This is useful to insert tokens
- # betweem them.
- #
- # This method is used by @Scanner#tokenize@ when called with an Array
- # of source strings. The Diff encoder uses it for inline highlighting.
- def split_into_parts *sizes
- parts = []
- opened = []
- content = nil
- part = Tokens.new
- part_size = 0
- size = sizes.first
- i = 0
- for item in self
- case content
- when nil
- content = item
- when String
- if size && part_size + content.size > size # token must be cut
- if part_size < size # some part of the token goes into this part
- content = content.dup # content may no be safe to change
- part << content.slice!(0, size - part_size) << item
- end
- # close all open groups and lines...
- closing = opened.reverse.flatten.map do |content_or_kind|
- case content_or_kind
- when :begin_group
- :end_group
- when :begin_line
- :end_line
- else
- content_or_kind
- end
- end
- part.concat closing
- begin
- parts << part
- part = Tokens.new
- size = sizes[i += 1]
- end until size.nil? || size > 0
- # ...and open them again.
- part.concat opened.flatten
- part_size = 0
- redo unless content.empty?
- else
- part << content << item
- part_size += content.size
- end
- content = nil
- when Symbol
- case content
- when :begin_group, :begin_line
- opened << [content, item]
- when :end_group, :end_line
- opened.pop
- else
- raise ArgumentError, 'Unknown token action: %p, kind = %p' % [content, item]
- end
- part << content << item
- content = nil
- else
- raise ArgumentError, 'Token input junk: %p, kind = %p' % [content, item]
- end
- end
- parts << part
- parts << Tokens.new while parts.size < sizes.size
- parts
- end
-
- # Dumps the object into a String that can be saved
- # in files or databases.
- #
- # The dump is created with Marshal.dump;
- # In addition, it is gzipped using GZip.gzip.
- #
- # The returned String object includes Undumping
- # so it has an #undump method. See Tokens.load.
- #
- # You can configure the level of compression,
- # but the default value 7 should be what you want
- # in most cases as it is a good compromise between
- # speed and compression rate.
- #
- # See GZip module.
- def dump gzip_level = 7
- dump = Marshal.dump self
- dump = GZip.gzip dump, gzip_level
- dump.extend Undumping
- end
-
- # Return the actual number of tokens.
- def count
- size / 2
- end
-
- # Include this module to give an object an #undump
- # method.
- #
- # The string returned by Tokens.dump includes Undumping.
- module Undumping
- # Calls Tokens.load with itself.
- def undump
- Tokens.load self
- end
- end
-
- # Undump the object using Marshal.load, then
- # unzip it using GZip.gunzip.
- #
- # The result is commonly a Tokens object, but
- # this is not guaranteed.
- def Tokens.load dump
- dump = GZip.gunzip dump
- @dump = Marshal.load dump
- end
-
- alias text_token push
- def begin_group kind; push :begin_group, kind end
- def end_group kind; push :end_group, kind end
- def begin_line kind; push :begin_line, kind end
- def end_line kind; push :end_line, kind end
- alias tokens concat
-
- end
-
-end
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/tokens_proxy.rb b/vendor/gems/coderay-1.0.0/lib/coderay/tokens_proxy.rb
deleted file mode 100644
index 31ff39be9..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/tokens_proxy.rb
+++ /dev/null
@@ -1,55 +0,0 @@
-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
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/version.rb b/vendor/gems/coderay-1.0.0/lib/coderay/version.rb
deleted file mode 100644
index 8bed60389..000000000
--- a/vendor/gems/coderay-1.0.0/lib/coderay/version.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-module CodeRay
- VERSION = '1.0.0'
-end