Warning, /frameworks/syntax-highlighting/autotests/reference/highlight.rb.ref is written in an unsupported language. File is not indexed.
0001 <Comment># This file is a testcase for the highlighting of Ruby code</Comment><br/> 0002 <Comment># It's not executable code, but a collection of code snippets</Comment><br/> 0003 <Comment>#</Comment><br/> 0004 <Normal Text></Normal Text><br/> 0005 <Kernel methods>require</Kernel methods><Normal Text> </Normal Text><Raw String>'Config'</Raw String><br/> 0006 <Kernel methods>require</Kernel methods><Normal Text> </Normal Text><Raw String>'DO/Clients'</Raw String><br/> 0007 <Kernel methods>require</Kernel methods><Normal Text> </Normal Text><Raw String>'DO/DBClients'</Raw String><br/> 0008 <Normal Text></Normal Text><br/> 0009 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> </Normal Text><Global Constant>CGI</Global Constant><Operator>::</Operator><Message>escapeElement</Message><Normal Text>(string, </Normal Text><Operator>*</Operator><Normal Text>elements)</Normal Text><br/> 0010 <Normal Text> elements </Normal Text><Operator>=</Operator><Normal Text> elements</Normal Text><Delimiter>[</Delimiter><Dec>0</Dec><Delimiter>]</Delimiter><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> elements</Normal Text><Delimiter>[</Delimiter><Dec>0</Dec><Delimiter>]</Delimiter><Message>.kind_of?</Message><Normal Text>(</Normal Text><Constant>Array</Constant><Normal Text>)</Normal Text><br/> 0011 <Normal Text> </Normal Text><Keyword>unless</Keyword><Normal Text> elements</Normal Text><Message>.empty?</Message><br/> 0012 <Normal Text> string</Normal Text><Message>.gsub</Message><Normal Text>(</Normal Text><Regular Expression>/<\/?(?:</Regular Expression><Substitution>#{</Substitution><Normal Text>elements</Normal Text><Message>.join</Message><Normal Text>(</Normal Text><String>"|"</String><Normal Text>)</Normal Text><Substitution>}</Substitution><Regular Expression>)(?!\w)(?:.|\n)*?>/ni</Regular Expression><Normal Text>) </Normal Text><Keyword>do</Keyword><br/> 0013 <Normal Text> </Normal Text><Global Constant>CGI</Global Constant><Operator>::</Operator><Message>escapeHTML</Message><Normal Text>(</Normal Text><Default globals>$&</Default globals><Normal Text>)</Normal Text><br/> 0014 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0015 <Normal Text> </Normal Text><Keyword>else</Keyword><br/> 0016 <Normal Text> string</Normal Text><br/> 0017 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0018 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0019 <Normal Text></Normal Text><br/> 0020 <Keyword>case</Keyword><Normal Text> inputLine</Normal Text><br/> 0021 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><String>"debug"</String><br/> 0022 <Normal Text> dumpDebugInfo</Normal Text><br/> 0023 <Normal Text> dumpSymbols</Normal Text><br/> 0024 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Regular Expression>/p\s+(\w+)/</Regular Expression><br/> 0025 <Normal Text> dumpVariable(</Normal Text><Global Variable>$1</Global Variable><Normal Text>)</Normal Text><br/> 0026 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><String>"quit"</String><Normal Text>, </Normal Text><String>"exit"</String><br/> 0027 <Normal Text> </Normal Text><Kernel methods>exit</Kernel methods><br/> 0028 <Normal Text> </Normal Text><Keyword>else</Keyword><br/> 0029 <Normal Text> </Normal Text><Kernel methods>print</Kernel methods><Normal Text> </Normal Text><String>"Illegal command: </String><Substitution>#{</Substitution><Normal Text>inputLine</Normal Text><Substitution>}</Substitution><String>"</String><br/> 0030 <Keyword>end</Keyword><br/> 0031 <Normal Text></Normal Text><br/> 0032 <Normal Text></Normal Text><br/> 0033 <Normal Text>kind </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Keyword>case</Keyword><Normal Text> year </Normal Text><Comment>#hi there</Comment><br/> 0034 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Dec>1850</Dec><Operator>..</Operator><Dec>1889</Dec><Normal Text> </Normal Text><Keyword>then</Keyword><Normal Text> </Normal Text><String>"Blues"</String><br/> 0035 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Dec>1890</Dec><Operator>..</Operator><Dec>1909</Dec><Normal Text> </Normal Text><Keyword>then</Keyword><Normal Text> </Normal Text><String>"Ragtime"</String><br/> 0036 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Dec>1910</Dec><Operator>..</Operator><Dec>1929</Dec><Normal Text> </Normal Text><Keyword>then</Keyword><Normal Text> </Normal Text><String>"New Orleans Jazz"</String><br/> 0037 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Dec>1930</Dec><Operator>..</Operator><Dec>1939</Dec><Normal Text> </Normal Text><Keyword>then</Keyword><Normal Text> </Normal Text><String>"Swing"</String><br/> 0038 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Dec>1940</Dec><Operator>..</Operator><Dec>1950</Dec><Normal Text> </Normal Text><Keyword>then</Keyword><Normal Text> </Normal Text><String>"Bebop"</String><br/> 0039 <Normal Text> </Normal Text><Keyword>else</Keyword><Normal Text> </Normal Text><String>"Jazz"</String><br/> 0040 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0041 <Normal Text></Normal Text><br/> 0042 <Normal Text> </Normal Text><Comment># URL-encode a string.</Comment><br/> 0043 <Normal Text> </Normal Text><Comment># url_encoded_string = CGI::escape("'Stop!' said Fred")</Comment><br/> 0044 <Normal Text> </Normal Text><Comment># # => "%27Stop%21%27+said+Fred"</Comment><br/> 0045 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> </Normal Text><Global Constant>CGI</Global Constant><Operator>::</Operator><Message>escape</Message><Normal Text>(string)</Normal Text><br/> 0046 <Normal Text> string</Normal Text><Message>.gsub</Message><Normal Text>(</Normal Text><Regular Expression>/([^ a-zA-Z0-9_.-]+)/n</Regular Expression><Normal Text>) </Normal Text><Keyword>do</Keyword><br/> 0047 <Normal Text> </Normal Text><Char>'%'</Char><Normal Text> </Normal Text><Operator>+</Operator><Normal Text> </Normal Text><Global Variable>$1</Global Variable><Message>.unpack</Message><Normal Text>(</Normal Text><Raw String>'H2'</Raw String><Normal Text> </Normal Text><Operator>*</Operator><Normal Text> </Normal Text><Global Variable>$1</Global Variable><Message>.size</Message><Normal Text>)</Normal Text><Message>.join</Message><Normal Text>(</Normal Text><Char>'%'</Char><Normal Text>)</Normal Text><Message>.upcase</Message><br/> 0048 <Normal Text> </Normal Text><Keyword>end</Keyword><Message>.tr</Message><Normal Text>(</Normal Text><Char>' '</Char><Normal Text>, </Normal Text><Char>'+'</Char><Normal Text>)</Normal Text><br/> 0049 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0050 <Normal Text></Normal Text><br/> 0051 <Normal Text></Normal Text><br/> 0052 <Comment># Class ClientManager</Comment><br/> 0053 <Comment>#</Comment><br/> 0054 <Comment># definition : Import, store and export the various data used by the application.</Comment><br/> 0055 <Comment># This class is the sole interface between the application and the underlying database.</Comment><br/> 0056 <Normal Text></Normal Text><br/> 0057 <Normal Text>mon, day, year </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Global Variable>$1</Global Variable><Normal Text>, </Normal Text><Global Variable>$2</Global Variable><Normal Text>, </Normal Text><Global Variable>$3</Global Variable><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> </Normal Text><Regular Expression>/(\d\d)-(\d\d)-(\d\d)/</Regular Expression><br/> 0058 <Kernel methods>puts</Kernel methods><Normal Text> </Normal Text><String>"a = </String><Substitution>#{</Substitution><Normal Text>a</Normal Text><Substitution>}</Substitution><String>"</String><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> fDebug</Normal Text><br/> 0059 <Kernel methods>print</Kernel methods><Normal Text> total </Normal Text><Keyword>unless</Keyword><Normal Text> total </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><Dec>0</Dec><br/> 0060 <Normal Text></Normal Text><br/> 0061 <Keyword>while</Keyword><Normal Text> </Normal Text><Kernel methods>gets</Kernel methods><br/> 0062 <Normal Text> </Normal Text><Keyword>next</Keyword><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> </Normal Text><Regular Expression>/^#/</Regular Expression><Normal Text> </Normal Text><Comment># Skip comments</Comment><br/> 0063 <Normal Text> parseLine </Normal Text><Keyword>unless</Keyword><Normal Text> </Normal Text><Regular Expression>/^$/</Regular Expression><Normal Text> </Normal Text><Comment># Don't parse empty lines</Comment><br/> 0064 <Keyword>end</Keyword><br/> 0065 <Normal Text></Normal Text><br/> 0066 <Keyword>if</Keyword><Normal Text> artist </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><String>"John Coltrane"</String><Normal Text> </Normal Text><Comment>#hi there</Comment><br/> 0067 <Normal Text> artist </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"'Trane"</String><Normal Text> </Normal Text><Comment>#hi there</Comment><br/> 0068 <Keyword>end</Keyword><Normal Text> </Normal Text><Keyword>unless</Keyword><Normal Text> nicknames </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><String>"no"</String><Normal Text> </Normal Text><Comment>#hi there</Comment><br/> 0069 <Normal Text></Normal Text><br/> 0070 <Normal Text>handle </Normal Text><Keyword>= if</Keyword><Normal Text> aSong</Normal Text><Message>.artist</Message><Normal Text> </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><String>"Gillespie"</String><Normal Text> </Normal Text><Keyword>then</Keyword><Normal Text> </Normal Text><Comment>#hi there</Comment><br/> 0071 <Normal Text> </Normal Text><String>"Dizzy"</String><br/> 0072 <Normal Text> </Normal Text><Keyword>elsif</Keyword><Normal Text> aSong</Normal Text><Message>.artist</Message><Normal Text> </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><String>"Parker"</String><Normal Text> </Normal Text><Keyword>then</Keyword><br/> 0073 <Normal Text> </Normal Text><String>"Bird"</String><br/> 0074 <Normal Text> </Normal Text><Keyword>else</Keyword><Normal Text> </Normal Text><Comment>#hi there</Comment><br/> 0075 <Normal Text> </Normal Text><String>"unknown"</String><br/> 0076 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0077 <Normal Text></Normal Text><br/> 0078 <Keyword>if</Keyword><Normal Text> aSong</Normal Text><Message>.artist</Message><Normal Text> </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><String>"Gillespie"</String><Normal Text> </Normal Text><Keyword>then</Keyword><Normal Text> handle </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"Dizzy"</String><br/> 0079 <Keyword>elsif</Keyword><Normal Text> aSong</Normal Text><Message>.artist</Message><Normal Text> </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><String>"Parker"</String><Normal Text> </Normal Text><Keyword>then</Keyword><Normal Text> handle </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"Bird"</String><br/> 0080 <Keyword>else</Keyword><Normal Text> handle </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"unknown"</String><br/> 0081 <Keyword>end</Keyword><Normal Text> </Normal Text><Comment>#hi there</Comment><br/> 0082 <Normal Text></Normal Text><br/> 0083 <Keyword>if</Keyword><Normal Text> aSong</Normal Text><Message>.artist</Message><Normal Text> </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><String>"Gillespie"</String><Normal Text> </Normal Text><Keyword>then</Keyword><br/> 0084 <Normal Text> handle </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"Dizzy"</String><br/> 0085 <Keyword>elsif</Keyword><Normal Text> aSong</Normal Text><Message>.artist</Message><Normal Text> </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><String>"Parker"</String><Normal Text> </Normal Text><Keyword>then</Keyword><br/> 0086 <Normal Text> handle </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"Bird"</String><br/> 0087 <Keyword>else</Keyword><br/> 0088 <Normal Text> handle </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"unknown"</String><br/> 0089 <Keyword>end</Keyword><br/> 0090 <Normal Text></Normal Text><br/> 0091 <Keyword>if</Keyword><Normal Text> aSong</Normal Text><Message>.artist</Message><Normal Text> </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><String>"Gillespie"</String><br/> 0092 <Normal Text> handle </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"Dizzy"</String><br/> 0093 <Keyword>elsif</Keyword><Normal Text> aSong</Normal Text><Message>.artist</Message><Normal Text> </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><String>"Parker"</String><br/> 0094 <Normal Text> handle </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"Bird"</String><br/> 0095 <Keyword>else</Keyword><br/> 0096 <Normal Text> handle </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"unknown"</String><br/> 0097 <Keyword>end</Keyword><br/> 0098 <Normal Text></Normal Text><br/> 0099 <Normal Text> </Normal Text><Keyword>case</Keyword><Normal Text> line</Normal Text><br/> 0100 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Regular Expression>/title=(.*)/</Regular Expression><br/> 0101 <Normal Text> </Normal Text><Kernel methods>puts</Kernel methods><Normal Text> </Normal Text><String>"Title is </String><Substitution>#$1</Substitution><String>"</String><br/> 0102 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Regular Expression>/track=(.*)/</Regular Expression><br/> 0103 <Normal Text> </Normal Text><Kernel methods>puts</Kernel methods><Normal Text> </Normal Text><String>"Track is </String><Substitution>#$1</Substitution><String>"</String><br/> 0104 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Regular Expression>/artist=(.*)/</Regular Expression><br/> 0105 <Normal Text> </Normal Text><Kernel methods>puts</Kernel methods><Normal Text> </Normal Text><String>"Artist is </String><Substitution>#$1</Substitution><String>"</String><br/> 0106 <Keyword>end</Keyword><br/> 0107 <Normal Text></Normal Text><br/> 0108 <Keyword>case</Keyword><Normal Text> shape</Normal Text><br/> 0109 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Constant>Square</Constant><Normal Text>, </Normal Text><Constant>Rectangle</Constant><br/> 0110 <Normal Text> </Normal Text><Comment># ...</Comment><br/> 0111 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Constant>Circle</Constant><br/> 0112 <Normal Text> </Normal Text><Comment># ...</Comment><br/> 0113 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Constant>Triangle</Constant><br/> 0114 <Normal Text> </Normal Text><Comment># ...</Comment><br/> 0115 <Normal Text> </Normal Text><Keyword>else</Keyword><br/> 0116 <Normal Text> </Normal Text><Comment># ...</Comment><br/> 0117 <Keyword>end</Keyword><Normal Text> </Normal Text><br/> 0118 <Normal Text></Normal Text><br/> 0119 <Normal Text></Normal Text><br/> 0120 <Keyword>until</Keyword><Normal Text> playList</Normal Text><Message>.duration</Message><Normal Text> </Normal Text><Operator>></Operator><Normal Text> </Normal Text><Dec>60</Dec><Normal Text> </Normal Text><Comment>#hi there</Comment><br/> 0121 <Normal Text> playList</Normal Text><Message>.add</Message><Normal Text>(songList</Normal Text><Message>.pop</Message><Normal Text>)</Normal Text><br/> 0122 <Keyword>end</Keyword><br/> 0123 <Normal Text></Normal Text><br/> 0124 <Dec>3</Dec><Message>.times</Message><Normal Text> </Normal Text><Keyword>do</Keyword><br/> 0125 <Normal Text> </Normal Text><Kernel methods>print</Kernel methods><Normal Text> </Normal Text><String>"Ho! "</String><br/> 0126 <Keyword>end</Keyword><br/> 0127 <Normal Text></Normal Text><br/> 0128 <Kernel methods>loop</Kernel methods><Normal Text> </Normal Text><Operator>{</Operator><br/> 0129 <Normal Text> </Normal Text><Comment># block ...</Comment><br/> 0130 <Operator>}</Operator><br/> 0131 <Normal Text></Normal Text><br/> 0132 <Normal Text>songList</Normal Text><Message>.each</Message><Normal Text> </Normal Text><Keyword>do</Keyword><Normal Text> </Normal Text><Operator>|</Operator><Normal Text>aSong</Normal Text><Operator>|</Operator><br/> 0133 <Normal Text> aSong</Normal Text><Message>.play</Message><br/> 0134 <Keyword>end</Keyword><br/> 0135 <Normal Text></Normal Text><br/> 0136 <Keyword>for</Keyword><Normal Text> aSong </Normal Text><Keyword>in</Keyword><Normal Text> songList</Normal Text><br/> 0137 <Normal Text> aSong</Normal Text><Message>.play</Message><br/> 0138 <Keyword>end</Keyword><br/> 0139 <Normal Text></Normal Text><br/> 0140 <Keyword>for</Keyword><Normal Text> i </Normal Text><Keyword>in</Keyword><Normal Text> </Normal Text><Delimiter>[</Delimiter><Raw String>'fee'</Raw String><Normal Text>, </Normal Text><Raw String>'fi'</Raw String><Normal Text>, </Normal Text><Raw String>'fo'</Raw String><Normal Text>, </Normal Text><Raw String>'fum'</Raw String><Delimiter>]</Delimiter><br/> 0141 <Normal Text> </Normal Text><Kernel methods>print</Kernel methods><Normal Text> i, </Normal Text><String>" "</String><br/> 0142 <Keyword>end</Keyword><br/> 0143 <Keyword>for</Keyword><Normal Text> i </Normal Text><Keyword>in</Keyword><Normal Text> </Normal Text><Dec>1</Dec><Operator>..</Operator><Dec>3</Dec><br/> 0144 <Normal Text> </Normal Text><Kernel methods>print</Kernel methods><Normal Text> i, </Normal Text><String>" "</String><br/> 0145 <Keyword>end</Keyword><br/> 0146 <Keyword>for</Keyword><Normal Text> i </Normal Text><Keyword>in</Keyword><Normal Text> </Normal Text><Constant>File</Constant><Message>.open</Message><Normal Text>(</Normal Text><String>"ordinal"</String><Normal Text>)</Normal Text><Message>.find_all</Message><Normal Text> </Normal Text><Operator>{</Operator><Normal Text> </Normal Text><Operator>|</Operator><Normal Text>l</Normal Text><Operator>|</Operator><Normal Text> l </Normal Text><Operator>=~</Operator><Normal Text> </Normal Text><Regular Expression>/d$/</Regular Expression><Operator>}</Operator><br/> 0147 <Normal Text> </Normal Text><Kernel methods>print</Kernel methods><Normal Text> i</Normal Text><Message>.chomp</Message><Normal Text>, </Normal Text><String>" "</String><br/> 0148 <Keyword>end</Keyword><br/> 0149 <Normal Text></Normal Text><br/> 0150 <Keyword>class</Keyword><Normal Text> </Normal Text><Constant>Periods</Constant><br/> 0151 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> each</Normal Text><br/> 0152 <Normal Text> </Normal Text><Keyword>yield</Keyword><Normal Text> </Normal Text><String>"Classical"</String><br/> 0153 <Normal Text> </Normal Text><Keyword>yield</Keyword><Normal Text> </Normal Text><String>"Jazz"</String><br/> 0154 <Normal Text> </Normal Text><Keyword>yield</Keyword><Normal Text> </Normal Text><String>"Rock"</String><br/> 0155 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0156 <Keyword>end</Keyword><br/> 0157 <Normal Text></Normal Text><br/> 0158 <Normal Text></Normal Text><br/> 0159 <Normal Text>periods </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>Periods</Constant><Message>.new</Message><br/> 0160 <Keyword>for</Keyword><Normal Text> genre </Normal Text><Keyword>in</Keyword><Normal Text> periods</Normal Text><br/> 0161 <Normal Text> </Normal Text><Kernel methods>print</Kernel methods><Normal Text> genre, </Normal Text><String>" "</String><br/> 0162 <Keyword>end</Keyword><br/> 0163 <Normal Text></Normal Text><br/> 0164 <Keyword>while</Keyword><Normal Text> </Normal Text><Kernel methods>gets</Kernel methods><br/> 0165 <Normal Text> </Normal Text><Keyword>next</Keyword><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> </Normal Text><Regular Expression>/^\s*#/</Regular Expression><Normal Text> </Normal Text><Comment># skip comments</Comment><br/> 0166 <Normal Text> </Normal Text><Keyword>break</Keyword><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> </Normal Text><Regular Expression>/^END/</Regular Expression><Normal Text> </Normal Text><Comment># stop at end</Comment><br/> 0167 <Normal Text> </Normal Text><Comment># substitute stuff in backticks and try again</Comment><br/> 0168 <Normal Text> </Normal Text><Keyword>redo</Keyword><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> </Normal Text><Kernel methods>gsub!</Kernel methods><Normal Text>(</Normal Text><Regular Expression>/`(.*?)`/</Regular Expression><Normal Text>) </Normal Text><Operator>{</Operator><Normal Text> </Normal Text><Kernel methods>eval</Kernel methods><Normal Text>(</Normal Text><Global Variable>$1</Global Variable><Normal Text>) </Normal Text><Operator>}</Operator><br/> 0169 <Normal Text> </Normal Text><Comment># process line ...</Comment><br/> 0170 <Keyword>end</Keyword><br/> 0171 <Normal Text></Normal Text><br/> 0172 <Normal Text>i</Normal Text><Operator>=</Operator><Dec>0</Dec><br/> 0173 <Kernel methods>loop</Kernel methods><Normal Text> </Normal Text><Keyword>do</Keyword><br/> 0174 <Normal Text> i </Normal Text><Operator>+=</Operator><Normal Text> </Normal Text><Dec>1</Dec><br/> 0175 <Normal Text> </Normal Text><Keyword>next</Keyword><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> i </Normal Text><Operator><</Operator><Normal Text> </Normal Text><Dec>3</Dec><br/> 0176 <Normal Text> </Normal Text><Kernel methods>print</Kernel methods><Normal Text> i</Normal Text><br/> 0177 <Normal Text> </Normal Text><Keyword>break</Keyword><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> i </Normal Text><Operator>></Operator><Normal Text> </Normal Text><Dec>4</Dec><br/> 0178 <Keyword>end</Keyword><br/> 0179 <Normal Text></Normal Text><br/> 0180 <Keyword>for</Keyword><Normal Text> i </Normal Text><Keyword>in</Keyword><Normal Text> </Normal Text><Dec>1</Dec><Operator>..</Operator><Dec>100</Dec><br/> 0181 <Normal Text> </Normal Text><Kernel methods>print</Kernel methods><Normal Text> </Normal Text><String>"Now at </String><Substitution>#{</Substitution><Normal Text>i</Normal Text><Substitution>}</Substitution><String>. Restart? "</String><br/> 0182 <Normal Text> </Normal Text><Keyword>retry</Keyword><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> </Normal Text><Kernel methods>gets</Kernel methods><Normal Text> </Normal Text><Operator>=~</Operator><Normal Text> </Normal Text><Regular Expression>/^y/i</Regular Expression><br/> 0183 <Keyword>end</Keyword><br/> 0184 <Normal Text></Normal Text><br/> 0185 <Keyword>def</Keyword><Normal Text> doUntil(cond)</Normal Text><br/> 0186 <Normal Text> </Normal Text><Keyword>yield</Keyword><br/> 0187 <Normal Text> </Normal Text><Keyword>retry</Keyword><Normal Text> </Normal Text><Keyword>unless</Keyword><Normal Text> cond</Normal Text><br/> 0188 <Keyword>end</Keyword><br/> 0189 <Normal Text></Normal Text><br/> 0190 <Normal Text>i </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>0</Dec><br/> 0191 <Normal Text>doUntil(i </Normal Text><Operator>></Operator><Normal Text> </Normal Text><Dec>3</Dec><Normal Text>) </Normal Text><Operator>{</Operator><br/> 0192 <Normal Text> </Normal Text><Kernel methods>print</Kernel methods><Normal Text> i, </Normal Text><String>" "</String><br/> 0193 <Normal Text> i </Normal Text><Operator>+=</Operator><Normal Text> </Normal Text><Dec>1</Dec><br/> 0194 <Operator>}</Operator><br/> 0195 <Normal Text></Normal Text><br/> 0196 <Keyword>def</Keyword><Normal Text> system_call</Normal Text><br/> 0197 <Normal Text> </Normal Text><Comment># ... code which throws SystemCallError</Comment><br/> 0198 <Keyword>rescue</Keyword><Normal Text> </Normal Text><Constant>SystemCallError</Constant><br/> 0199 <Normal Text> </Normal Text><Default globals>$stderr</Default globals><Message>.print</Message><Normal Text> </Normal Text><String>"IO failed: "</String><Normal Text> </Normal Text><Operator>+</Operator><Normal Text> </Normal Text><Default globals>$!</Default globals><br/> 0200 <Normal Text> opFile</Normal Text><Message>.close</Message><br/> 0201 <Normal Text> </Normal Text><Constant>File</Constant><Message>.delete</Message><Normal Text>(opName)</Normal Text><br/> 0202 <Normal Text> </Normal Text><Kernel methods>raise</Kernel methods><br/> 0203 <Keyword>end</Keyword><br/> 0204 <Normal Text></Normal Text><br/> 0205 <Keyword>class</Keyword><Normal Text> </Normal Text><Constant>ClientManager</Constant><br/> 0206 <Normal Text> </Normal Text><br/> 0207 <Normal Text> </Normal Text><Comment># constructor</Comment><br/> 0208 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> initialize(dbase)</Normal Text><br/> 0209 <Normal Text> </Normal Text><Instance Variable>@dbClient</Instance Variable><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>DBClient</Constant><Message>.new</Message><Normal Text>(dbase)</Normal Text><br/> 0210 <Normal Text> </Normal Text><Instance Variable>@clients</Instance Variable><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>Clients</Constant><Message>.new</Message><br/> 0211 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0212 <Normal Text> </Normal Text><br/> 0213 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> prout(a, b, xy</Normal Text><Operator>=</Operator><String>"jj"</String><Normal Text>) </Normal Text><Dec>24</Dec><Normal Text> </Normal Text><Keyword>end</Keyword><Normal Text> </Normal Text><br/> 0214 <Normal Text> </Normal Text><Comment>###############################################################</Comment><br/> 0215 <Normal Text> </Normal Text><Comment>#</Comment><br/> 0216 <Normal Text> </Normal Text><Comment># CLIENTS SECTION</Comment><br/> 0217 <Normal Text> </Normal Text><Comment>#</Comment><br/> 0218 <Normal Text> </Normal Text><Comment>###############################################################</Comment><br/> 0219 <Normal Text> </Normal Text><br/> 0220 <Normal Text> </Normal Text><Comment># update the clients object by retrieving the related data from the database</Comment><br/> 0221 <Normal Text> </Normal Text><Comment># returns the number of clients</Comment><br/> 0222 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> refreshClients</Normal Text><br/> 0223 <Normal Text> </Normal Text><Instance Variable>@clients</Instance Variable><Message>.clean</Message><br/> 0224 <Normal Text> </Normal Text><Keyword>unless</Keyword><Normal Text> </Normal Text><Instance Variable>@sqlQuery</Instance Variable><Message>.nil?</Message><Normal Text> </Normal Text><Keyword>then</Keyword><br/> 0225 <Normal Text> </Normal Text><Instance Variable>@sqlQuery</Instance Variable><Message>.selectClient.each</Message><Normal Text> </Normal Text><Keyword>do</Keyword><Normal Text> </Normal Text><Operator>|</Operator><Normal Text>row</Normal Text><Operator>|</Operator><br/> 0226 <Normal Text> </Normal Text><Instance Variable>@clients</Instance Variable><Message>.addClient</Message><Normal Text>(row</Normal Text><Delimiter>[</Delimiter><Dec>0</Dec><Delimiter>]</Delimiter><Normal Text>,row</Normal Text><Delimiter>[</Delimiter><Dec>1</Dec><Delimiter>]</Delimiter><Normal Text>,row</Normal Text><Delimiter>[</Delimiter><Dec>2</Dec><Delimiter>]</Delimiter><Normal Text>,row</Normal Text><Delimiter>[</Delimiter><Dec>3</Dec><Delimiter>]</Delimiter><Normal Text>,row</Normal Text><Delimiter>[</Delimiter><Dec>4</Dec><Delimiter>]</Delimiter><Normal Text>,row</Normal Text><Delimiter>[</Delimiter><Dec>5</Dec><Delimiter>]</Delimiter><Normal Text>, row</Normal Text><Delimiter>[</Delimiter><Dec>6</Dec><Delimiter>]</Delimiter><Normal Text>, row</Normal Text><Delimiter>[</Delimiter><Dec>7</Dec><Delimiter>]</Delimiter><Normal Text>, row</Normal Text><Delimiter>[</Delimiter><Dec>8</Dec><Delimiter>]</Delimiter><Normal Text>)</Normal Text><br/> 0227 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0228 <Normal Text> </Normal Text><Keyword>else</Keyword><br/> 0229 <Normal Text> </Normal Text><Kernel methods>puts</Kernel methods><Normal Text> </Normal Text><String>"SqlQuery wasn't created : cannot read data from database"</String><br/> 0230 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0231 <Normal Text> </Normal Text><Keyword>return</Keyword><Normal Text> </Normal Text><Instance Variable>@clients</Instance Variable><Message>.length</Message><br/> 0232 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0233 <Normal Text> </Normal Text><br/> 0234 <Normal Text> </Normal Text><Comment># insert a client in the database and refreshes the local clients object</Comment><br/> 0235 <Normal Text> </Normal Text><Comment># we assume that none of the arguments is null</Comment><br/> 0236 <Normal Text> </Normal Text><Comment># we assume that the client, identified by raison_sociale doesn't already exists</Comment><br/> 0237 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> addClient(raison_sociale, division, departement, adresse, cp, ville, nom_contact, tel_contact)</Normal Text><br/> 0238 <Normal Text> id </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"0"</String><br/> 0239 <Normal Text> </Normal Text><Keyword>unless</Keyword><Normal Text> </Normal Text><Instance Variable>@sqlQuery</Instance Variable><Message>.nil?</Message><Normal Text> </Normal Text><Keyword>then</Keyword><br/> 0240 <Normal Text> id </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Instance Variable>@sqlQuery</Instance Variable><Message>.insertClient</Message><Normal Text>(raison_sociale, division, departement, adresse, cp, ville, nom_contact,tel_contact)</Normal Text><br/> 0241 <Normal Text> </Normal Text><Keyword>else</Keyword><br/> 0242 <Normal Text> </Normal Text><Kernel methods>puts</Kernel methods><Normal Text> </Normal Text><String>"SqlQuery wasn't created : database update cannot be performed"</String><br/> 0243 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0244 <Normal Text> </Normal Text><Instance Variable>@clients</Instance Variable><Message>.addClient</Message><Normal Text>(id, raison_sociale, division, departement, adresse, cp, ville, nom_contact, tel_contact) </Normal Text><Comment># synchronize local object with DB</Comment><br/> 0245 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0246 <Normal Text> </Normal Text><br/> 0247 <Normal Text> </Normal Text><Comment># deletes a client from the database and updates the local Clients object accordingly</Comment><br/> 0248 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> delClient(nomclient_brut)</Normal Text><br/> 0249 <Normal Text> raison_sociale, div, dep </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>Clients</Constant><Message>.getIdentifiers</Message><Normal Text>(nomclient_brut)</Normal Text><br/> 0250 <Normal Text> listeContratsExp, listeContratsSup, listeContratsProd, listePropositionsExp, listePropositionsSup </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Delimiter>[]</Delimiter><br/> 0251 <Normal Text></Normal Text><br/> 0252 <Normal Text> listeContratsExp </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Instance Variable>@contratsExpertise</Instance Variable><Message>.getContratsFromClient</Message><Normal Text>(nomclient_brut)</Normal Text><br/> 0253 <Normal Text> listeContratsSup </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Instance Variable>@contratsSupport</Instance Variable><Message>.getContratsFromClient</Message><Normal Text>(nomclient_brut)</Normal Text><br/> 0254 <Normal Text> listeContratsProd </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Instance Variable>@contratsProduits</Instance Variable><Message>.getContratsFromClient</Message><Normal Text>(nomclient_brut)</Normal Text><br/> 0255 <Normal Text> listePropositionsExp </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Instance Variable>@propositionsExpertise</Instance Variable><Message>.getPropositionsFromClient</Message><Normal Text>(nomclient_brut)</Normal Text><br/> 0256 <Normal Text> listePropositionsSup </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Instance Variable>@propositionsSupport</Instance Variable><Message>.getPropositionsFromClient</Message><Normal Text>(nomclient_brut)</Normal Text><br/> 0257 <Normal Text> </Normal Text><br/> 0258 <Normal Text> </Normal Text><Keyword>unless</Keyword><Normal Text> </Normal Text><Instance Variable>@sqlQuery</Instance Variable><Message>.nil?</Message><Normal Text> </Normal Text><Keyword>then</Keyword><br/> 0259 <Normal Text> </Normal Text><Instance Variable>@sqlQuery</Instance Variable><Message>.deleteClient</Message><Normal Text>(raison_sociale, div, dep)</Normal Text><br/> 0260 <Normal Text> </Normal Text><br/> 0261 <Normal Text> </Normal Text><Instance Variable>@sqlQuery</Instance Variable><Message>.deleteContracts</Message><Normal Text>(</Normal Text><Constant>Config</Constant><Operator>::</Operator><Constant Value>EXPERTISE</Constant Value><Normal Text>,listeContratsExp) </Normal Text><br/> 0262 <Normal Text> </Normal Text><Instance Variable>@sqlQuery</Instance Variable><Message>.deleteContracts</Message><Normal Text>(</Normal Text><Constant>Config</Constant><Operator>::</Operator><Constant Value>SUPPORT</Constant Value><Normal Text>,listeContratsSup)</Normal Text><br/> 0263 <Normal Text> </Normal Text><Instance Variable>@sqlQuery</Instance Variable><Message>.deleteContracts</Message><Normal Text>(</Normal Text><Constant>Config</Constant><Operator>::</Operator><Constant Value>PRODUIT</Constant Value><Normal Text>,listeContratsProd)</Normal Text><br/> 0264 <Normal Text> </Normal Text><Instance Variable>@sqlQuery</Instance Variable><Message>.deletePropositions</Message><Normal Text>(</Normal Text><Constant>Config</Constant><Operator>::</Operator><Constant Value>EXPERTISE</Constant Value><Normal Text>,listePropositionsExp)</Normal Text><br/> 0265 <Normal Text> </Normal Text><Instance Variable>@sqlQuery</Instance Variable><Message>.deletePropositions</Message><Normal Text>(</Normal Text><Constant>Config</Constant><Operator>::</Operator><Constant Value>SUPPORT</Constant Value><Normal Text>,listePropositionsSup)</Normal Text><br/> 0266 <Normal Text> </Normal Text><Keyword>else</Keyword><br/> 0267 <Normal Text> </Normal Text><Kernel methods>puts</Kernel methods><Normal Text> </Normal Text><String>"SqlQuery wasn't created : database update cannot be performed"</String><br/> 0268 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0269 <Normal Text> </Normal Text><Instance Variable>@clients</Instance Variable><Message>.delClient</Message><Normal Text>(raison_sociale,div,dep)</Normal Text><br/> 0270 <Normal Text> </Normal Text><br/> 0271 <Normal Text> </Normal Text><Instance Variable>@contratsExpertise</Instance Variable><Message>.deleteContracts</Message><Normal Text>(listeContratsExp)</Normal Text><br/> 0272 <Normal Text> </Normal Text><Instance Variable>@contratsSupport</Instance Variable><Message>.deleteContracts</Message><Normal Text>(listeContratsSup)</Normal Text><br/> 0273 <Normal Text> </Normal Text><Instance Variable>@contratsProduits</Instance Variable><Message>.deleteContracts</Message><Normal Text>(listeContratsProd)</Normal Text><br/> 0274 <Normal Text> </Normal Text><Instance Variable>@propositionsExpertise</Instance Variable><Message>.deletePropositions</Message><Normal Text>(listePropositionsExp)</Normal Text><br/> 0275 <Normal Text> </Normal Text><Instance Variable>@propositionsSupport</Instance Variable><Message>.deletePropositions</Message><Normal Text>(listePropositionsSup)</Normal Text><br/> 0276 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0277 <Keyword>end</Keyword><br/> 0278 <Normal Text></Normal Text><br/> 0279 <Normal Text> </Normal Text><Comment># Mixin module for HTML version 3 generation methods.</Comment><br/> 0280 <Normal Text> </Normal Text><Keyword>module</Keyword><Normal Text> </Normal Text><Constant>Html3</Constant><Normal Text> </Normal Text><Comment># :nodoc:</Comment><br/> 0281 <Normal Text></Normal Text><br/> 0282 <Normal Text> </Normal Text><Comment># The DOCTYPE declaration for this version of HTML</Comment><br/> 0283 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> doctype</Normal Text><br/> 0284 <GDL input> %|</GDL input><String><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"></String><GDL input>|</GDL input><br/> 0285 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0286 <Normal Text></Normal Text><br/> 0287 <Normal Text> </Normal Text><Comment># Initialise the HTML generation methods for this version.</Comment><br/> 0288 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> element_init</Normal Text><br/> 0289 <Normal Text> </Normal Text><Module mixin methods>extend</Module mixin methods><Normal Text> </Normal Text><Constant>TagMaker</Constant><br/> 0290 <Normal Text> methods </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>""</String><br/> 0291 <Normal Text> </Normal Text><Comment># - -</Comment><br/> 0292 <Normal Text> </Normal Text><Keyword>for</Keyword><Normal Text> element </Normal Text><Keyword>in</Keyword><GDL input> %w[</GDL input><String> A TT I B U STRIKE BIG SMALL SUB SUP EM STRONG</String><br/> 0293 <String> DFN CODE SAMP KBD VAR CITE FONT ADDRESS DIV center MAP</String><br/> 0294 <String> APPLET PRE XMP LISTING DL OL UL DIR MENU SELECT table TITLE</String><br/> 0295 <String> STYLE SCRIPT H1 H2 H3 H4 H5 H6 TEXTAREA FORM BLOCKQUOTE</String><br/> 0296 <String> CAPTION </String><GDL input>]</GDL input><br/> 0297 <Normal Text> methods </Normal Text><Operator>+= <<-</Operator><Keyword>BEGIN</Keyword><Here Document> + nn_element_def(element) + <<-END</Here Document><br/> 0298 <Here Document> def </Here Document><Substitution>#{</Substitution><Normal Text>element</Normal Text><Message>.downcase</Message><Substitution>}</Substitution><Here Document>(attributes = {})</Here Document><br/> 0299 <Here Document> </Here Document><Keyword>BEGIN</Keyword><br/> 0300 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0301 <Normal Text> </Normal Text><Keyword>END</Keyword><br/> 0302 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0303 <Normal Text></Normal Text><br/> 0304 <Normal Text> </Normal Text><Comment># - O EMPTY</Comment><br/> 0305 <Normal Text> </Normal Text><Keyword>for</Keyword><Normal Text> element </Normal Text><Keyword>in</Keyword><GDL input> %w[</GDL input><String> IMG BASE BASEFONT BR AREA LINK PARAM HR INPUT</String><br/> 0306 <String> ISINDEX META </String><GDL input>]</GDL input><br/> 0307 <Normal Text> methods </Normal Text><Operator>+= <<-</Operator><Keyword>BEGIN</Keyword><Here Document> + nOE_element_def(element) + <<-END</Here Document><br/> 0308 <Here Document> def </Here Document><Substitution>#{</Substitution><Normal Text>element</Normal Text><Message>.downcase</Message><Substitution>}</Substitution><Here Document>(attributes = {})</Here Document><br/> 0309 <Here Document> </Here Document><Keyword>BEGIN</Keyword><br/> 0310 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0311 <Normal Text> </Normal Text><Keyword>END</Keyword><br/> 0312 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0313 <Normal Text></Normal Text><br/> 0314 <Normal Text> </Normal Text><Comment># O O or - O</Comment><br/> 0315 <Normal Text> </Normal Text><Keyword>for</Keyword><Normal Text> element </Normal Text><Keyword>in</Keyword><GDL input> %w[</GDL input><String> HTML HEAD BODY P PLAINTEXT DT DD LI OPTION tr</String><br/> 0316 <String> th td </String><GDL input>]</GDL input><br/> 0317 <Normal Text> methods </Normal Text><Operator>+= <<-</Operator><Keyword>BEGIN</Keyword><Here Document> + nO_element_def(element) + <<-END</Here Document><br/> 0318 <Here Document> def </Here Document><Substitution>#{</Substitution><Normal Text>element</Normal Text><Message>.downcase</Message><Substitution>}</Substitution><Here Document>(attributes = {})</Here Document><br/> 0319 <Here Document> </Here Document><Keyword>BEGIN</Keyword><br/> 0320 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0321 <Normal Text> </Normal Text><Keyword>END</Keyword><br/> 0322 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0323 <Normal Text> </Normal Text><Kernel methods>eval</Kernel methods><Normal Text>(methods)</Normal Text><br/> 0324 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0325 <Normal Text></Normal Text><br/> 0326 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0327 <Normal Text></Normal Text><br/> 0328 <Comment># following snippet from Webrick's log.rb</Comment><br/> 0329 <Comment># notice the erronous handling of the query method is_a?</Comment><br/> 0330 <Keyword>def</Keyword><Normal Text> </Normal Text><Kernel methods>format</Kernel methods><Normal Text>(arg)</Normal Text><br/> 0331 <Normal Text> str </Normal Text><Keyword>= if</Keyword><Normal Text> arg</Normal Text><Message>.is_a?</Message><Normal Text>(</Normal Text><Constant>Exception</Constant><Normal Text>)</Normal Text><br/> 0332 <Normal Text> </Normal Text><String>"</String><Substitution>#{</Substitution><Normal Text>arg</Normal Text><Message>.class</Message><Substitution>}</Substitution><String>: </String><Substitution>#{</Substitution><Normal Text>arg</Normal Text><Message>.message</Message><Substitution>}</Substitution><String>\n\t"</String><Normal Text> </Normal Text><Operator><<</Operator><br/> 0333 <Normal Text> arg</Normal Text><Message>.backtrace.join</Message><Normal Text>(</Normal Text><String>"\n\t"</String><Normal Text>) </Normal Text><Operator><<</Operator><Normal Text> </Normal Text><String>"\n"</String><br/> 0334 <Normal Text> </Normal Text><Keyword>elsif</Keyword><Normal Text> arg</Normal Text><Message>.respond_to?</Message><Normal Text>(</Normal Text><Symbol>:to_str</Symbol><Normal Text>)</Normal Text><br/> 0335 <Normal Text> arg</Normal Text><Message>.to_str</Message><br/> 0336 <Normal Text> </Normal Text><Keyword>else</Keyword><br/> 0337 <Normal Text> arg</Normal Text><Message>.inspect</Message><br/> 0338 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0339 <Keyword>end</Keyword><br/> 0340 <Normal Text></Normal Text><br/> 0341 <Comment># following snippet from Webrick's httputils.rb</Comment><br/> 0342 <Comment># Splitting regexps on several lines might be bad form,</Comment><br/> 0343 <Comment># but not illegal in Ruby. </Comment><br/> 0344 <Comment># This should probably be supported in the highlighting</Comment><br/> 0345 <Keyword>def</Keyword><Normal Text> split_header_value(str)</Normal Text><br/> 0346 <Normal Text> str</Normal Text><Message>.scan</Message><Normal Text>(</Normal Text><Regular Expression>/((?:"(?:\\.|[^"])+?"|[^",]+)+)</Regular Expression><br/> 0347 <Regular Expression> (?:,\s*|\Z)/xn</Regular Expression><Normal Text>)</Normal Text><Message>.collect</Message><Operator>{|</Operator><Normal Text>v</Normal Text><Operator>|</Operator><Normal Text> v</Normal Text><Delimiter>[</Delimiter><Dec>0</Dec><Delimiter>]</Delimiter><Normal Text> </Normal Text><Operator>}</Operator><br/> 0348 <Keyword>end</Keyword><br/> 0349 <Normal Text></Normal Text><br/> 0350 <Comment># snippet from Net::Telnet</Comment><br/> 0351 <Normal Text>string</Normal Text><Message>.gsub</Message><Normal Text>(</Normal Text><Regular Expression>/</Regular Expression><Substitution>#{</Substitution><Global Constant>IAC</Global Constant><Substitution>}</Substitution><Regular Expression>(</Regular Expression><br/> 0352 <Regular Expression> [</Regular Expression><Substitution>#{</Substitution><Global Constant>IAC</Global Constant><Substitution>}#{</Substitution><Global Constant>AO</Global Constant><Substitution>}#{</Substitution><Global Constant>AYT</Global Constant><Substitution>}#{</Substitution><Global Constant>DM</Global Constant><Substitution>}#{</Substitution><Global Constant>IP</Global Constant><Substitution>}#{</Substitution><Global Constant>NOP</Global Constant><Substitution>}</Substitution><Regular Expression>]|</Regular Expression><br/> 0353 <Regular Expression> [</Regular Expression><Substitution>#{</Substitution><Global Constant>DO</Global Constant><Substitution>}#{</Substitution><Global Constant>DONT</Global Constant><Substitution>}#{</Substitution><Global Constant>WILL</Global Constant><Substitution>}#{</Substitution><Global Constant>WONT</Global Constant><Substitution>}</Substitution><Regular Expression>]</Regular Expression><br/> 0354 <Regular Expression> [</Regular Expression><Substitution>#{</Substitution><Global Constant>OPT_BINARY</Global Constant><Substitution>}</Substitution><Regular Expression>-</Regular Expression><Substitution>#{</Substitution><Global Constant>OPT_NEW_ENVIRON</Global Constant><Substitution>}#{</Substitution><Global Constant>OPT_EXOPL</Global Constant><Substitution>}</Substitution><Regular Expression>]|</Regular Expression><br/> 0355 <Regular Expression> </Regular Expression><Substitution>#{</Substitution><Global Constant>SB</Global Constant><Substitution>}</Substitution><Regular Expression>[^</Regular Expression><Substitution>#{</Substitution><Global Constant>IAC</Global Constant><Substitution>}</Substitution><Regular Expression>]*</Regular Expression><Substitution>#{</Substitution><Global Constant>IAC</Global Constant><Substitution>}#{</Substitution><Global Constant>SE</Global Constant><Substitution>}</Substitution><br/> 0356 <Regular Expression> )/xno</Regular Expression><Normal Text>)</Normal Text><br/> 0357 <Normal Text></Normal Text><br/> 0358 <Comment># following snippet from Webrick's httpresponse.rb</Comment><br/> 0359 <Comment># the HEREDOC is not recognized as such</Comment><br/> 0360 <Instance Variable>@body</Instance Variable><Normal Text> </Normal Text><Operator><< <<-</Operator><Keyword>_end_of_html_</Keyword><br/> 0361 <Here Document><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"></Here Document><br/> 0362 <Here Document><HTML></Here Document><br/> 0363 <Here Document> <HEAD><TITLE></Here Document><Substitution>#{</Substitution><Constant>HTMLUtils</Constant><Operator>::</Operator><Message>escape</Message><Normal Text>(</Normal Text><Instance Variable>@reason_phrase</Instance Variable><Normal Text>)</Normal Text><Substitution>}</Substitution><Here Document></TITLE></HEAD></Here Document><br/> 0364 <Here Document> <BODY></Here Document><br/> 0365 <Here Document> <H1></Here Document><Substitution>#{</Substitution><Constant>HTMLUtils</Constant><Operator>::</Operator><Message>escape</Message><Normal Text>(</Normal Text><Instance Variable>@reason_phrase</Instance Variable><Normal Text>)</Normal Text><Substitution>}</Substitution><Here Document></H1></Here Document><br/> 0366 <Here Document> </Here Document><Substitution>#{</Substitution><Constant>HTMLUtils</Constant><Operator>::</Operator><Message>escape</Message><Normal Text>(ex</Normal Text><Message>.message</Message><Normal Text>)</Normal Text><Substitution>}</Substitution><br/> 0367 <Here Document> <HR></Here Document><br/> 0368 <Keyword>_end_of_html_</Keyword><br/> 0369 <Normal Text></Normal Text><br/> 0370 <Normal Text></Normal Text><br/> 0371 <Comment># snippet from Webrick's httpproxy.rb</Comment><br/> 0372 <Comment># here we should make sure that the symbol definition ':' doesn't override</Comment><br/> 0373 <Comment># the module operator '::'</Comment><br/> 0374 <Constant>Net</Constant><Operator>::</Operator><Constant Value>HTTP</Constant Value><Operator>::</Operator><Message>version_1_2</Message><Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> </Normal Text><Global Constant>RUBY_VERSION</Global Constant><Normal Text> </Normal Text><Operator><</Operator><Normal Text> </Normal Text><String>"1.7"</String><br/> 0375 <Normal Text></Normal Text><br/> 0376 <Comment># snippet from Webrick's cookie.rb</Comment><br/> 0377 <Comment># the beginning of the regexp is erronously highlighted like an operator</Comment><br/> 0378 <Normal Text>key, val </Normal Text><Operator>=</Operator><Normal Text> x</Normal Text><Message>.split</Message><Normal Text>(</Normal Text><Regular Expression>/=/</Regular Expression><Normal Text>,</Normal Text><Dec>2</Dec><Normal Text>)</Normal Text><br/> 0379 <Normal Text></Normal Text><br/> 0380 <Comment># the following are division operators</Comment><br/> 0381 <Comment># it's a bit tricky to keep the operator apart from the regexp</Comment><br/> 0382 <Normal Text>result </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>8</Dec><Normal Text> </Normal Text><Operator>/</Operator><Normal Text> </Normal Text><Dec>4</Dec><br/> 0383 <Normal Text>result </Normal Text><Operator>/= </Operator><Normal Text>divisor</Normal Text><br/> 0384 <Normal Text></Normal Text><br/> 0385 <Comment># 2008-06-01 regexp and division operator syntax has been fixed:</Comment><br/> 0386 <Normal Text>result </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>8</Dec><Operator>/</Operator><Dec>4</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0387 <Normal Text>result </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>8</Dec><Operator>/</Operator><Normal Text>foo </Normal Text><Comment># division</Comment><br/> 0388 <Normal Text>result </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Regular Expression>/8/</Regular Expression><Normal Text> </Normal Text><Comment># regexp</Comment><br/> 0389 <Normal Text>result </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>8</Dec><Operator>/</Operator><Regular Expression>/4/</Regular Expression><Normal Text> </Normal Text><Comment># division and regexp</Comment><br/> 0390 <Normal Text></Normal Text><br/> 0391 <Dec>10</Dec><Operator>/</Operator><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0392 <Dec>10</Dec><Operator>/</Operator><Normal Text> </Normal Text><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0393 <Dec>10</Dec><Normal Text> </Normal Text><Operator>/</Operator><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0394 <Dec>10</Dec><Normal Text> </Normal Text><Operator>/</Operator><Normal Text> </Normal Text><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0395 <Normal Text></Normal Text><br/> 0396 <Normal Text>foo</Normal Text><Operator>/</Operator><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0397 <Normal Text>foo</Normal Text><Operator>/</Operator><Normal Text> </Normal Text><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0398 <Normal Text>foo </Normal Text><Regular Expression>/10/</Regular Expression><Normal Text> </Normal Text><Comment># regexp</Comment><br/> 0399 <Normal Text>foo </Normal Text><Operator>/</Operator><Normal Text> </Normal Text><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0400 <Normal Text></Normal Text><br/> 0401 <Normal Text>foo</Normal Text><Operator>/</Operator><Dec>10</Dec><Operator>/</Operator><Dec>10</Dec><Normal Text> </Normal Text><Comment># both division</Comment><br/> 0402 <Normal Text>total</Normal Text><Operator>/</Operator><Normal Text>count</Normal Text><Operator>/</Operator><Dec>2</Dec><Normal Text> </Normal Text><Comment># both division</Comment><br/> 0403 <Normal Text>total</Normal Text><Operator>/</Operator><Normal Text>(count</Normal Text><Operator>/</Operator><Dec>2</Dec><Normal Text>) </Normal Text><Comment># both division</Comment><br/> 0404 <Normal Text></Normal Text><br/> 0405 <Instance Variable>@foo</Instance Variable><Operator>/</Operator><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0406 <Instance Variable>@foo</Instance Variable><Normal Text> </Normal Text><Operator>/</Operator><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0407 <Normal Text></Normal Text><br/> 0408 <String>"hello"</String><Operator>/</Operator><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0409 <String>"hello"</String><Normal Text> </Normal Text><Operator>/</Operator><Normal Text> </Normal Text><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0410 <Normal Text></Normal Text><br/> 0411 <Regular Expression>/regexp/</Regular Expression><Operator>/</Operator><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0412 <Regular Expression>/regexp/</Regular Expression><Normal Text> </Normal Text><Operator>/</Operator><Normal Text> </Normal Text><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0413 <Normal Text></Normal Text><br/> 0414 <Constant>Math</Constant><Operator>::</Operator><Constant Value>PI</Constant Value><Operator>/</Operator><Dec>10</Dec><Normal Text> </Normal Text><Comment># division</Comment><br/> 0415 <Constant>Math</Constant><Operator>::</Operator><Message>foo</Message><Normal Text> </Normal Text><Regular Expression>/rx/</Regular Expression><Normal Text> </Normal Text><Comment># regexp</Comment><br/> 0416 <Normal Text></Normal Text><br/> 0417 <Comment># 2008-06-05 similar fix for modulo operator:</Comment><br/> 0418 <Normal Text></Normal Text><br/> 0419 <Dec>10</Dec><Operator>%</Operator><Dec>4</Dec><Normal Text> </Normal Text><Comment># modulo</Comment><br/> 0420 <Dec>10</Dec><Normal Text> </Normal Text><Operator>%</Operator><Dec>4</Dec><Normal Text> </Normal Text><Comment># modulo</Comment><br/> 0421 <Dec>10</Dec><Operator>%</Operator><Normal Text> </Normal Text><Dec>4</Dec><Normal Text> </Normal Text><Comment># modulo</Comment><br/> 0422 <Dec>10</Dec><Normal Text> </Normal Text><Operator>%</Operator><Normal Text> </Normal Text><Dec>4</Dec><Normal Text> </Normal Text><Comment># modulo</Comment><br/> 0423 <Normal Text></Normal Text><br/> 0424 <Normal Text>foo</Normal Text><Operator>%</Operator><Dec>4</Dec><Normal Text> </Normal Text><Comment># modulo</Comment><br/> 0425 <Comment># foo %4 # illegal %string</Comment><br/> 0426 <Normal Text>foo</Normal Text><Operator>%</Operator><Normal Text> </Normal Text><Dec>4</Dec><Normal Text> </Normal Text><Comment># modulo</Comment><br/> 0427 <Normal Text>foo </Normal Text><Operator>%</Operator><Normal Text> </Normal Text><Dec>4</Dec><Normal Text> </Normal Text><Comment># modulo</Comment><br/> 0428 <Normal Text></Normal Text><br/> 0429 <Normal Text>foo </Normal Text><Operator>%</Operator><Normal Text> (</Normal Text><Dec>4</Dec><Normal Text>) </Normal Text><Comment># modulo</Comment><br/> 0430 <Normal Text></Normal Text><br/> 0431 <Normal Text>foo </Normal Text><GDL input>%(</GDL input><String>4</String><GDL input>)</GDL input><Normal Text> </Normal Text><Comment># %string</Comment><br/> 0432 <Normal Text>foo </Normal Text><GDL input>%q(</GDL input><Raw String>4</Raw String><GDL input>)</GDL input><Normal Text> </Normal Text><Comment># %string</Comment><br/> 0433 <Normal Text>foo </Normal Text><GDL input>%Q(</GDL input><String>4</String><GDL input>)</GDL input><Normal Text> </Normal Text><Comment># %string</Comment><br/> 0434 <Normal Text>foo </Normal Text><GDL input>%%</GDL input><String>4</String><GDL input>%</GDL input><Normal Text> </Normal Text><Comment># %string</Comment><br/> 0435 <Normal Text></Normal Text><br/> 0436 <Normal Text>foo </Normal Text><Operator>=</Operator><GDL input> %|</GDL input><String>blah</String><GDL input>|</GDL input><Normal Text> </Normal Text><Comment># GDL input</Comment><br/> 0437 <Normal Text>foo </Normal Text><Operator>%</Operator><GDL input> %|</GDL input><String>blah</String><GDL input>|</GDL input><Normal Text> </Normal Text><Comment># modulo and GDL</Comment><br/> 0438 <Normal Text></Normal Text><br/> 0439 <Comment># mix in any way you want</Comment><br/> 0440 <Normal Text>result </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Dec>10</Dec><Operator>/</Operator><Regular Expression>/regexp/</Regular Expression><Operator>/</Operator><Dec>20</Dec><Operator>/</Operator><Normal Text>foo</Normal Text><Operator>/</Operator><Regular Expression>/regexp/</Regular Expression><Operator>/</Operator><Dec>20</Dec><br/> 0441 <Normal Text></Normal Text><br/> 0442 <Comment># test cases for general delimited input</Comment><br/> 0443 <Comment># quoted strings</Comment><br/> 0444 <GDL input>%Q|</GDL input><String>this is a string</String><GDL input>|</GDL input><br/> 0445 <GDL input>%Q{</GDL input><String>this is a string</String><GDL input>}</GDL input><br/> 0446 <GDL input>%Q(</GDL input><String>this is a string</String><GDL input>)</GDL input><br/> 0447 <GDL input>%Q<</GDL input><String>this is a string</String><GDL input>></GDL input><br/> 0448 <GDL input>%Q[</GDL input><String>this is a string</String><GDL input>]</GDL input><br/> 0449 <Normal Text></Normal Text><br/> 0450 <GDL input>%|</GDL input><String>also a string</String><GDL input>|</GDL input><br/> 0451 <GDL input>%{</GDL input><String>also a string</String><GDL input>}</GDL input><br/> 0452 <GDL input>%(</GDL input><String>also a string</String><GDL input>)</GDL input><br/> 0453 <GDL input>%<</GDL input><String>also a string</String><GDL input>></GDL input><br/> 0454 <GDL input>%[</GDL input><String>also a string</String><GDL input>]</GDL input><br/> 0455 <Normal Text></Normal Text><br/> 0456 <Comment># apostrophed strings</Comment><br/> 0457 <GDL input>%q|</GDL input><Raw String>apostrophed</Raw String><GDL input>|</GDL input><br/> 0458 <GDL input>%q{</GDL input><Raw String>apostrophed</Raw String><GDL input>}</GDL input><br/> 0459 <GDL input>%q(</GDL input><Raw String>apostrophed</Raw String><GDL input>)</GDL input><br/> 0460 <GDL input>%q<</GDL input><Raw String>apostrophed</Raw String><GDL input>></GDL input><br/> 0461 <GDL input>%q[</GDL input><Raw String>apostrophed</Raw String><GDL input>]</GDL input><br/> 0462 <Normal Text></Normal Text><br/> 0463 <Comment># regular expressions</Comment><br/> 0464 <GDL input>%r{</GDL input><Regular Expression>expression</Regular Expression><GDL input>}</GDL input><br/> 0465 <GDL input>%r(</GDL input><Regular Expression>expression</Regular Expression><GDL input>)</GDL input><br/> 0466 <GDL input>%r<</GDL input><Regular Expression>expression</Regular Expression><GDL input>></GDL input><br/> 0467 <GDL input>%r[</GDL input><Regular Expression>expression</Regular Expression><GDL input>]</GDL input><br/> 0468 <GDL input>%r|</GDL input><Regular Expression>expression</Regular Expression><GDL input>|</GDL input><br/> 0469 <Normal Text></Normal Text><br/> 0470 <Comment># shell commands</Comment><br/> 0471 <GDL input>%x{</GDL input><Command>ls -l</Command><GDL input>}</GDL input><br/> 0472 <GDL input>%x(</GDL input><Command>ls -l</Command><GDL input>)</GDL input><br/> 0473 <GDL input>%x<</GDL input><Command>ls -l</Command><GDL input>></GDL input><br/> 0474 <GDL input>%x[</GDL input><Command>ls -l</Command><GDL input>]</GDL input><br/> 0475 <Normal Text></Normal Text><br/> 0476 <Comment># sometimes it's useful to have the command on multiple lines</Comment><br/> 0477 <GDL input>%x{</GDL input><Command>ls -l |</Command><br/> 0478 <Command>grep test </Command><GDL input>}</GDL input><br/> 0479 <Normal Text></Normal Text><br/> 0480 <Comment># alternative syntax</Comment><br/> 0481 <Command>`ls -l`</Command><br/> 0482 <Command>`echo ' '`</Command><br/> 0483 <Normal Text></Normal Text><br/> 0484 <Comment># token array</Comment><br/> 0485 <GDL input>%w{</GDL input><String>one two three</String><GDL input>}</GDL input><br/> 0486 <GDL input>%w(</GDL input><String>one two three</String><GDL input>)</GDL input><br/> 0487 <GDL input>%w<</GDL input><String>one two three</String><GDL input>></GDL input><br/> 0488 <GDL input>%w[</GDL input><String>one two three</String><GDL input>]</GDL input><br/> 0489 <Normal Text></Normal Text><br/> 0490 <Comment># snippet from Net::IMAP</Comment><br/> 0491 <Comment># I object to putting String, Integer and Array into kernel methods.</Comment><br/> 0492 <Comment># While these classes are builtin in Ruby, this is an implementation detail</Comment><br/> 0493 <Comment># that should not be exposed to the user.</Comment><br/> 0494 <Comment># If we want to handle all std-lib classes, fine. But then they should be in their</Comment><br/> 0495 <Comment># own std-lib keyword category.</Comment><br/> 0496 <Normal Text></Normal Text><br/> 0497 <Keyword>def</Keyword><Normal Text> send_data(data)</Normal Text><br/> 0498 <Normal Text> </Normal Text><Keyword>case</Keyword><Normal Text> data</Normal Text><br/> 0499 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Pseudo variable>nil</Pseudo variable><br/> 0500 <Normal Text> put_string(</Normal Text><String>"NIL"</String><Normal Text>)</Normal Text><br/> 0501 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Constant>String</Constant><br/> 0502 <Normal Text> send_string_data(data)</Normal Text><br/> 0503 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Constant>Integer</Constant><br/> 0504 <Normal Text> send_number_data(data)</Normal Text><br/> 0505 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Constant>Array</Constant><br/> 0506 <Normal Text> send_list_data(data)</Normal Text><br/> 0507 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Constant>Time</Constant><br/> 0508 <Normal Text> send_time_data(data)</Normal Text><br/> 0509 <Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Constant>Symbol</Constant><br/> 0510 <Normal Text> send_symbol_data(data)</Normal Text><br/> 0511 <Normal Text> </Normal Text><Keyword>else</Keyword><br/> 0512 <Normal Text> data</Normal Text><Message>.send_data</Message><Normal Text>(</Normal Text><Pseudo variable>self</Pseudo variable><Normal Text>)</Normal Text><br/> 0513 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0514 <Keyword>end</Keyword><br/> 0515 <Normal Text></Normal Text><br/> 0516 <Comment># snippet from Net::POP</Comment><br/> 0517 <Comment># class names can have numbers in them as long as they don't begin with numbers</Comment><br/> 0518 <Comment># Ruby doesn't internally really make much of a difference between a class name and a constant</Comment><br/> 0519 <Normal Text></Normal Text><br/> 0520 <Comment># class aliases</Comment><br/> 0521 <Normal Text> </Normal Text><Global Constant>POP</Global Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Global Constant>POP3</Global Constant><br/> 0522 <Normal Text> </Normal Text><Constant>POPSession</Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Global Constant>POP3</Global Constant><br/> 0523 <Normal Text> </Normal Text><Constant>POP3Session</Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Global Constant>POP3</Global Constant><br/> 0524 <Normal Text></Normal Text><br/> 0525 <Comment># "member access"</Comment><br/> 0526 <Global Constant>POP</Global Constant><Operator>::</Operator><Constant>Session</Constant><Member>.</Member><Constant Value>COUNT</Constant Value><Message>.attribute.calc_with</Message><Normal Text>(</Normal Text><Dec>2</Dec><Normal Text>)</Normal Text><Operator>{</Operator><Normal Text> </Normal Text><Operator>|</Operator><Normal Text>arg</Normal Text><Operator>|</Operator><Normal Text> </Normal Text><Kernel methods>puts</Kernel methods><Normal Text> arg </Normal Text><Operator>}</Operator><br/> 0527 <Normal Text></Normal Text><br/> 0528 <Comment># snippet from Net::SMTP</Comment><br/> 0529 <Comment># This breaks the code folding. I think we would need to</Comment><br/> 0530 <Comment># handle the '\' that continues the statement to the next line</Comment><br/> 0531 <Comment># in some way to make these kind of things not break something.</Comment><br/> 0532 <Kernel methods>raise</Kernel methods><Normal Text> </Normal Text><Constant>ArgumentError</Constant><Normal Text>, </Normal Text><Raw String>'both user and secret are required'</Raw String><Normal Text>\</Normal Text><br/> 0533 <Normal Text> </Normal Text><Keyword>unless</Keyword><Normal Text> user </Normal Text><Keyword>and</Keyword><Normal Text> secret</Normal Text><br/> 0534 <Normal Text> </Normal Text><br/> 0535 <Comment># string escapes must detect escaping the escape char</Comment><br/> 0536 <Normal Text>str </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"\\"</String><br/> 0537 <Normal Text>str </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"\\\\"</String><br/> 0538 <Comment># this is not part of the string</Comment><br/> 0539 <GDL input>%x{</GDL input><Command>echo \\\}\\</Command><GDL input>}</GDL input><Normal Text> </Normal Text><Comment># prints \}\</Comment><br/> 0540 <Comment># this is not part of the command</Comment><br/> 0541 <Normal Text></Normal Text><br/> 0542 <Comment># these are all symbols</Comment><br/> 0543 <Symbol>:abc</Symbol><br/> 0544 <Symbol>:abc!</Symbol><br/> 0545 <Symbol>:abc?</Symbol><br/> 0546 <Symbol>:abc=</Symbol><br/> 0547 <Symbol>:[]</Symbol><br/> 0548 <Symbol>:[]=</Symbol><br/> 0549 <Symbol>:@abc</Symbol><br/> 0550 <Symbol>:@@abc</Symbol><br/> 0551 <Symbol>:$abc</Symbol><br/> 0552 <Normal Text></Normal Text><br/> 0553 <Comment># squiggly HEREDOC</Comment><br/> 0554 <Operator> <<~</Operator><Keyword>HEREDOC</Keyword><br/> 0555 <Here Document> Hello!!</Here Document><br/> 0556 <Here Document> </Here Document><Keyword>HEREDOC</Keyword><br/> 0557 <Normal Text></Normal Text><br/> 0558 <Comment># HEREDOC with backticks</Comment><br/> 0559 <Operator><<</Operator><Keyword>`HEREDOC`</Keyword><br/> 0560 <Here Document> echo "hello"</Here Document><br/> 0561 <Keyword>HEREDOC</Keyword><br/> 0562 <Normal Text></Normal Text><br/> 0563 <Comment># do not highlight HEREDOC markers after the "class" keyword</Comment><br/> 0564 <Comment># (singleton class definition) (bug: #358273)</Comment><br/> 0565 <Keyword>class</Keyword><Normal Text> </Normal Text><Operator><<</Operator><Constant>Foo</Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Constant>Object</Constant><Message>.new</Message><br/> 0566 <Normal Text> </Normal Text><Attribute Definition>attr_accessor</Attribute Definition><Normal Text> </Normal Text><Symbol>:foo</Symbol><br/> 0567 <Keyword>end</Keyword><br/> 0568 <Normal Text>singleton_class </Normal Text><Operator>=</Operator><Normal Text> ( </Normal Text><Keyword>class</Keyword><Normal Text> </Normal Text><Operator><<</Operator><Normal Text>foo; </Normal Text><Pseudo variable>self</Pseudo variable><Normal Text>; </Normal Text><Keyword>end</Keyword><Normal Text> )</Normal Text><br/> 0569 <Normal Text></Normal Text><br/> 0570 <Comment># highlight regular expressions after ": " (bug: #361875)</Comment><br/> 0571 <Normal Text>get </Normal Text><Raw String>'files/:slug/:filename'</Raw String><Normal Text>, </Normal Text><Symbol>to: </Symbol><Raw String>'files#download'</Raw String><Normal Text>, </Normal Text><Symbol>slug: </Symbol><Regular Expression>/^[a-z]+$/</Regular Expression><Normal Text>, </Normal Text><Symbol>filename: </Symbol><GDL input>%r|</GDL input><Regular Expression>^[/\s]+$</Regular Expression><GDL input>|</GDL input><br/> 0572 <Symbol>@@hello!: </Symbol><Regular Expression>/regexp/</Regular Expression><br/> 0573 <Symbol>[]=: </Symbol><GDL input>%r!</GDL input><Regular Expression>regexp</Regular Expression><GDL input>!</GDL input><br/> 0574 <Normal Text></Normal Text><br/> 0575 <Comment># refinements and its usage</Comment><br/> 0576 <Keyword>module</Keyword><Normal Text> </Normal Text><Constant>Constantize</Constant><br/> 0577 <Normal Text> </Normal Text><Module mixin methods>refine</Module mixin methods><Normal Text> </Normal Text><Constant>String</Constant><Normal Text> </Normal Text><Keyword>do</Keyword><br/> 0578 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> constantize</Normal Text><br/> 0579 <Normal Text> </Normal Text><Operator>::</Operator><Constant>Kernel</Constant><Message>.const_get</Message><Normal Text>(</Normal Text><Pseudo variable>self</Pseudo variable><Normal Text>)</Normal Text><br/> 0580 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0581 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0582 <Keyword>end</Keyword><br/> 0583 <Normal Text></Normal Text><br/> 0584 <Keyword>class</Keyword><Normal Text> </Normal Text><Constant>MyClass</Constant><br/> 0585 <Normal Text> </Normal Text><Module mixin methods>using</Module mixin methods><Normal Text> </Normal Text><Constant>Constantize</Constant><br/> 0586 <Normal Text></Normal Text><br/> 0587 <Normal Text> </Normal Text><Global Constant>SOME_CONST</Global Constant><Normal Text> </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"Kate is cool!"</String><br/> 0588 <Normal Text></Normal Text><br/> 0589 <Normal Text> </Normal Text><Keyword>def</Keyword><Normal Text> </Normal Text><Pseudo variable>self</Pseudo variable><Message>.method_using_refinement</Message><br/> 0590 <Normal Text> </Normal Text><String>"MyClass::SOME_CONST"</String><Message>.constantize</Message><br/> 0591 <Normal Text> </Normal Text><Keyword>end</Keyword><br/> 0592 <Keyword>end</Keyword><br/> 0593 <Normal Text></Normal Text><br/> 0594 <Kernel methods>puts</Kernel methods><Normal Text> </Normal Text><Constant>MyClass</Constant><Message>.method_using_refinement</Message><br/>