From 5571dc766e2143e39762ff0b47c41d1c2e154f4c Mon Sep 17 00:00:00 2001 From: Benjamin Sanders Date: Sat, 11 Oct 2025 10:34:24 -0400 Subject: Vendor bundled gems for deployment --- .../ruby/3.4.0/gems/rouge-4.5.2/lib/rouge.rb | 106 +++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge.rb (limited to 'vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge.rb') diff --git a/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge.rb b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge.rb new file mode 100644 index 0000000..f8cffcb --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/rouge-4.5.2/lib/rouge.rb @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- # +# frozen_string_literal: true + +# stdlib +require 'pathname' + +# The containing module for Rouge +module Rouge + # cache value in a constant since `__dir__` allocates a new string + # on every call. + LIB_DIR = __dir__.freeze + + class << self + def reload! + Object::send :remove_const, :Rouge + Kernel::load __FILE__ + end + + # Highlight some text with a given lexer and formatter. + # + # @example + # Rouge.highlight('@foo = 1', 'ruby', 'html') + # Rouge.highlight('var foo = 1;', 'js', 'terminal256') + # + # # streaming - chunks become available as they are lexed + # Rouge.highlight(large_string, 'ruby', 'html') do |chunk| + # $stdout.print chunk + # end + def highlight(text, lexer, formatter, &b) + lexer = Lexer.find(lexer) unless lexer.respond_to? :lex + raise "unknown lexer #{lexer}" unless lexer + + formatter = Formatter.find(formatter) unless formatter.respond_to? :format + raise "unknown formatter #{formatter}" unless formatter + + formatter.format(lexer.lex(text), &b) + end + + # Load a file relative to the `lib/rouge` path. + # + # @api private + def load_file(path) + Kernel::load File.join(LIB_DIR, "rouge/#{path}.rb") + end + + # Load the lexers in the `lib/rouge/lexers` directory. + # + # @api private + def load_lexers + lexer_dir = Pathname.new(LIB_DIR) / "rouge/lexers" + Pathname.glob(lexer_dir / '*.rb').each do |f| + Lexers.load_lexer(f.relative_path_from(lexer_dir)) + end + end + end +end + +Rouge.load_file 'version' +Rouge.load_file 'util' +Rouge.load_file 'text_analyzer' +Rouge.load_file 'token' + +Rouge.load_file 'lexer' +Rouge.load_file 'regex_lexer' +Rouge.load_file 'template_lexer' + +Rouge.load_lexers + +Rouge.load_file 'guesser' +Rouge.load_file 'guessers/util' +Rouge.load_file 'guessers/glob_mapping' +Rouge.load_file 'guessers/modeline' +Rouge.load_file 'guessers/filename' +Rouge.load_file 'guessers/mimetype' +Rouge.load_file 'guessers/source' +Rouge.load_file 'guessers/disambiguation' + +Rouge.load_file 'formatter' +Rouge.load_file 'formatters/html' +Rouge.load_file 'formatters/html_table' +Rouge.load_file 'formatters/html_pygments' +Rouge.load_file 'formatters/html_legacy' +Rouge.load_file 'formatters/html_linewise' +Rouge.load_file 'formatters/html_line_highlighter' +Rouge.load_file 'formatters/html_line_table' +Rouge.load_file 'formatters/html_inline' +Rouge.load_file 'formatters/terminal256' +Rouge.load_file 'formatters/terminal_truecolor' +Rouge.load_file 'formatters/tex' +Rouge.load_file 'formatters/null' + +Rouge.load_file 'theme' +Rouge.load_file 'tex_theme_renderer' +Rouge.load_file 'themes/thankful_eyes' +Rouge.load_file 'themes/colorful' +Rouge.load_file 'themes/base16' +Rouge.load_file 'themes/github' +Rouge.load_file 'themes/igor_pro' +Rouge.load_file 'themes/monokai' +Rouge.load_file 'themes/molokai' +Rouge.load_file 'themes/monokai_sublime' +Rouge.load_file 'themes/gruvbox' +Rouge.load_file 'themes/tulip' +Rouge.load_file 'themes/pastie' +Rouge.load_file 'themes/bw' +Rouge.load_file 'themes/magritte' -- cgit v1.2.3