1(function(a){if(typeof exports=="object"&&typeof module=="object")a(require("../../lib/codemirror"));else if(typeof define=="function"&&define.amd)define(["../../lib/codemirror"],a);else a(CodeMirror)})(function(a){"use strict";a.defineMode("ruby",function(b){function c(a){var b={};for(var c=0,d=a.length;c<d;++c)b[a[c]]=true;return b}var d=c(["alias","and","BEGIN","begin","break","case","class","def","defined?","do","else","elsif","END","end","ensure","false","for","if","in","module","next","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield","nil","raise","throw","catch","fail","loop","callcc","caller","lambda","proc","public","protected","private","require","load","require_relative","extend","autoload","__END__","__FILE__","__LINE__","__dir__"]);var e=c(["def","class","case","for","while","until","module","then","catch","loop","proc","begin"]);var f=c(["end","until"]);var g={"[":"]","{":"}","(":")"};var h={"]":"[","}":"{",")":"("};var i;function j(a,b,c){c.tokenize.push(a);return a(b,c)}function k(a,b){if(a.sol()&&a.match("=begin")&&a.eol()){b.tokenize.push(q);return"comment"}if(a.eatSpace())return null;var c=a.next(),d;if(c=="`"||c=="'"||c=='"'){return j(o(c,"string",c=='"'||c=="`"),a,b)}else if(c=="/"){if(l(a))return j(o(c,"string-2",true),a,b);else return"operator"}else if(c=="%"){var e="string",f=true;if(a.eat("s"))e="atom";else if(a.eat(/[WQ]/))e="string";else if(a.eat(/[r]/))e="string-2";else if(a.eat(/[wxq]/)){e="string";f=false}var h=a.eat(/[^\w\s=]/);if(!h)return"operator";if(g.propertyIsEnumerable(h))h=g[h];return j(o(h,e,f,true),a,b)}else if(c=="#"){a.skipToEnd();return"comment"}else if(c=="<"&&(d=a.match(/^<([-~])[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/))){return j(p(d[2],d[1]),a,b)}else if(c=="0"){if(a.eat("x"))a.eatWhile(/[\da-fA-F]/);else if(a.eat("b"))a.eatWhile(/[01]/);else a.eatWhile(/[0-7]/);return"number"}else if(/\d/.test(c)){a.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/);return"number"}else if(c=="?"){while(a.match(/^\\[CM]-/)){}if(a.eat("\\"))a.eatWhile(/\w/);else a.next();return"string"}else if(c==":"){if(a.eat("'"))return j(o("'","atom",false),a,b);if(a.eat('"'))return j(o('"',"atom",true),a,b);if(a.eat(/[\<\>]/)){a.eat(/[\<\>]/);return"atom"}if(a.eat(/[\+\-\*\/\&\|\:\!]/)){return"atom"}if(a.eat(/[a-zA-Z$@_\xa1-\uffff]/)){a.eatWhile(/[\w$\xa1-\uffff]/);a.eat(/[\?\!\=]/);return"atom"}return"operator"}else if(c=="@"&&a.match(/^@?[a-zA-Z_\xa1-\uffff]/)){a.eat("@");a.eatWhile(/[\w\xa1-\uffff]/);return"variable-2"}else if(c=="$"){if(a.eat(/[a-zA-Z_]/)){a.eatWhile(/[\w]/)}else if(a.eat(/\d/)){a.eat(/\d/)}else{a.next()}return"variable-3"}else if(/[a-zA-Z_\xa1-\uffff]/.test(c)){a.eatWhile(/[\w\xa1-\uffff]/);a.eat(/[\?\!]/);if(a.eat(":"))return"atom";return"ident"}else if(c=="|"&&(b.varList||b.lastTok=="{"||b.lastTok=="do")){i="|";return null}else if(/[\(\)\[\]{}\\;]/.test(c)){i=c;return null}else if(c=="-"&&a.eat(">")){return"arrow"}else if(/[=+\-\/*:\.^%<>~|]/.test(c)){var k=a.eatWhile(/[=+\-\/*:\.^%<>~|]/);if(c=="."&&!k)i=".";return"operator"}else{return null}}function l(a){var b=a.pos,c=0,d,e=false,f=false;while((d=a.next())!=null){if(!f){if("[{(".indexOf(d)>-1){c++}else if("]})".indexOf(d)>-1){c--;if(c<0)break}else if(d=="/"&&c==0){e=true;break}f=d=="\\"}else{f=false}}a.backUp(a.pos-b);return e}function m(a){if(!a)a=1;return function(b,c){if(b.peek()=="}"){if(a==1){c.tokenize.pop();return c.tokenize[c.tokenize.length-1](b,c)}else{c.tokenize[c.tokenize.length-1]=m(a-1)}}else if(b.peek()=="{"){c.tokenize[c.tokenize.length-1]=m(a+1)}return k(b,c)}}function n(){var a=false;return function(b,c){if(a){c.tokenize.pop();return c.tokenize[c.tokenize.length-1](b,c)}a=true;return k(b,c)}}function o(a,b,c,d){return function(e,f){var g=false,h;if(f.context.type==="read-quoted-paused"){f.context=f.context.prev;e.eat("}")}while((h=e.next())!=null){if(h==a&&(d||!g)){f.tokenize.pop();break}if(c&&h=="#"&&!g){if(e.eat("{")){if(a=="}"){f.context={prev:f.context,type:"read-quoted-paused"}}f.tokenize.push(m());break}else if(/[@\$]/.test(e.peek())){f.tokenize.push(n());break}}g=!g&&h=="\\"}return b}}function p(a,b){return function(c,d){if(b)c.eatSpace();if(c.match(a))d.tokenize.pop();else c.skipToEnd();return"string"}}function q(a,b){if(a.sol()&&a.match("=end")&&a.eol())b.tokenize.pop();a.skipToEnd();return"comment"}return{startState:function(){return{tokenize:[k],indented:0,context:{type:"top",indented:-b.indentUnit},continuedLine:false,lastTok:null,varList:false}},token:function(a,b){i=null;if(a.sol())b.indented=a.indentation();var c=b.tokenize[b.tokenize.length-1](a,b),g;var h=i;if(c=="ident"){var j=a.current();c=b.lastTok=="."?"property":d.propertyIsEnumerable(a.current())?"keyword":/^[A-Z]/.test(j)?"tag":b.lastTok=="def"||b.lastTok=="class"||b.varList?"def":"variable";if(c=="keyword"){h=j;if(e.propertyIsEnumerable(j))g="indent";else if(f.propertyIsEnumerable(j))g="dedent";else if((j=="if"||j=="unless")&&a.column()==a.indentation())g="indent";else if(j=="do"&&b.context.indented<b.indented)g="indent"}}if(i||c&&c!="comment")b.lastTok=h;if(i=="|")b.varList=!b.varList;if(g=="indent"||/[\(\[\{]/.test(i))b.context={prev:b.context,type:i||c,indented:b.indented};else if((g=="dedent"||/[\)\]\}]/.test(i))&&b.context.prev)b.context=b.context.prev;if(a.eol())b.continuedLine=i=="\\"||c=="operator";return c},indent:function(c,d){if(c.tokenize[c.tokenize.length-1]!=k)return a.Pass;var e=d&&d.charAt(0);var f=c.context;var g=f.type==h[e]||f.type=="keyword"&&/^(?:end|until|else|elsif|when|rescue)\b/.test(d);return f.indented+(g?0:b.indentUnit)+(c.continuedLine?b.indentUnit:0)},electricInput:/^\s*(?:end|rescue|elsif|else|\})$/,lineComment:"#",fold:"indent"}});a.defineMIME("text/x-ruby","ruby")});
2//# sourceMappingURL=ruby.min.js.map