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