diff options
Diffstat (limited to 'public/prism/prism-ruby.min.js')
| -rw-r--r-- | public/prism/prism-ruby.min.js | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/public/prism/prism-ruby.min.js b/public/prism/prism-ruby.min.js new file mode 100644 index 0000000..f0d8621 --- /dev/null +++ b/public/prism/prism-ruby.min.js @@ -0,0 +1,144 @@ +!(function (e) { + (e.languages.ruby = e.languages.extend('clike', { + comment: { pattern: /#.*|^=begin\s[\s\S]*?^=end/m, greedy: !0 }, + 'class-name': { + pattern: + /(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/, + lookbehind: !0, + inside: { punctuation: /[.\\]/ }, + }, + keyword: + /\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/, + operator: + /\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/, + punctuation: /[(){}[\].,;]/, + })), + e.languages.insertBefore('ruby', 'operator', { + 'double-colon': { pattern: /::/, alias: 'punctuation' }, + }); + var n = { + pattern: /((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/, + lookbehind: !0, + inside: { + content: { + pattern: /^(#\{)[\s\S]+(?=\}$)/, + lookbehind: !0, + inside: e.languages.ruby, + }, + delimiter: { pattern: /^#\{|\}$/, alias: 'punctuation' }, + }, + }; + delete e.languages.ruby.function; + var t = + '(?:' + + [ + '([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1', + '\\((?:[^()\\\\]|\\\\[^]|\\((?:[^()\\\\]|\\\\[^])*\\))*\\)', + '\\{(?:[^{}\\\\]|\\\\[^]|\\{(?:[^{}\\\\]|\\\\[^])*\\})*\\}', + '\\[(?:[^\\[\\]\\\\]|\\\\[^]|\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\])*\\]', + '<(?:[^<>\\\\]|\\\\[^]|<(?:[^<>\\\\]|\\\\[^])*>)*>', + ].join('|') + + ')', + i = + '(?:"(?:\\\\.|[^"\\\\\r\n])*"|(?:\\b[a-zA-Z_]\\w*|[^\\s\0-\\x7F]+)[?!]?|\\$.)'; + e.languages.insertBefore('ruby', 'keyword', { + 'regex-literal': [ + { + pattern: RegExp('%r' + t + '[egimnosux]{0,6}'), + greedy: !0, + inside: { interpolation: n, regex: /[\s\S]+/ }, + }, + { + pattern: + /(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/, + lookbehind: !0, + greedy: !0, + inside: { interpolation: n, regex: /[\s\S]+/ }, + }, + ], + variable: /[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/, + symbol: [ + { pattern: RegExp('(^|[^:]):' + i), lookbehind: !0, greedy: !0 }, + { + pattern: RegExp('([\r\n{(,][ \t]*)' + i + '(?=:(?!:))'), + lookbehind: !0, + greedy: !0, + }, + ], + 'method-definition': { + pattern: /(\bdef\s+)\w+(?:\s*\.\s*\w+)?/, + lookbehind: !0, + inside: { + function: /\b\w+$/, + keyword: /^self\b/, + 'class-name': /^\w+/, + punctuation: /\./, + }, + }, + }), + e.languages.insertBefore('ruby', 'string', { + 'string-literal': [ + { + pattern: RegExp('%[qQiIwWs]?' + t), + greedy: !0, + inside: { interpolation: n, string: /[\s\S]+/ }, + }, + { + pattern: + /("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/, + greedy: !0, + inside: { interpolation: n, string: /[\s\S]+/ }, + }, + { + pattern: /<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i, + alias: 'heredoc-string', + greedy: !0, + inside: { + delimiter: { + pattern: /^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i, + inside: { symbol: /\b\w+/, punctuation: /^<<[-~]?/ }, + }, + interpolation: n, + string: /[\s\S]+/, + }, + }, + { + pattern: /<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i, + alias: 'heredoc-string', + greedy: !0, + inside: { + delimiter: { + pattern: /^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i, + inside: { symbol: /\b\w+/, punctuation: /^<<[-~]?'|'$/ }, + }, + string: /[\s\S]+/, + }, + }, + ], + 'command-literal': [ + { + pattern: RegExp('%x' + t), + greedy: !0, + inside: { + interpolation: n, + command: { pattern: /[\s\S]+/, alias: 'string' }, + }, + }, + { + pattern: /`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/, + greedy: !0, + inside: { + interpolation: n, + command: { pattern: /[\s\S]+/, alias: 'string' }, + }, + }, + ], + }), + delete e.languages.ruby.string, + e.languages.insertBefore('ruby', 'number', { + builtin: + /\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/, + constant: /\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/, + }), + (e.languages.rb = e.languages.ruby); +})(Prism); |
