<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CU8DRX85fyp7ImA9WhRREUk.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589</id><updated>2011-11-24T15:11:14.127+01:00</updated><category term="ruby" /><category term="linux" /><category term="rspec" /><category term="I18n" /><category term="navigation" /><category term="mysql" /><category term="plugin" /><category term="leopard" /><category term="rails" /><category term="macbook" /><category term="sinatra" /><category term="ruby1.9" /><category term="performance" /><category term="textmate" /><category term="testing" /><category term="seaside" /><category term="action_mailer" /><category term="blogging" /><category term="padrino" /><title>Andi Schacke's Developer Blog</title><subtitle type="html">I'm a software developer who has been doing professional web application development with Ruby on Rails and Java. On this blog you'll find various postings about solutions I've figured out and things I've learned through my daily programming, but also various thoughts on software development in general.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.andischacke.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.andischacke.com/" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/andischacke" /><feedburner:info uri="andischacke" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DkMMRnY-eSp7ImA9Wx9bGEU.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-9056381700124639773</id><published>2011-02-28T09:54:00.004+01:00</published><updated>2011-02-28T10:14:47.851+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-28T10:14:47.851+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="padrino" /><category scheme="http://www.blogger.com/atom/ns#" term="sinatra" /><category scheme="http://www.blogger.com/atom/ns#" term="navigation" /><title>simple-navigation Version 3</title><content type="html">This post is long overdue. The new version of simple-navigation is a complete rewrite and can now be easily extended to support any ruby based webframework.&lt;br /&gt;&lt;br /&gt;The key features of the new version 3 are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;supports &lt;b&gt;Ruby 1.9.2&lt;/b&gt;&lt;/li&gt;&lt;li&gt;supports &lt;b&gt;Rails 3&lt;/b&gt;&lt;/li&gt;&lt;li&gt;supports &lt;b&gt;Sinatra&lt;/b&gt;&lt;/li&gt;&lt;li&gt;supports &lt;b&gt;Padrino&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;much cleaner code due to decoupling of rails&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;added more renderers (breadcrumbs, text only, links only in addition to the default html list renderer)&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;More information can be found on the &lt;a href="https://github.com/andi/simple-navigation/"&gt;github page&lt;/a&gt; and the &lt;a href="https://github.com/andi/simple-navigation/wiki"&gt;wiki&lt;/a&gt;. Please &lt;a href="https://github.com/andi/simple-navigation/issues"&gt;report any issues&lt;/a&gt; or just &lt;a href="http://groups.google.com/group/simple-navigation"&gt;post to the mailing list&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;There is also a &lt;a href="https://github.com/andi/simple-navigation-demo"&gt;new public project&lt;/a&gt; with a sample application running with Rails2, Rails3, Sinatra and Padrino.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-9056381700124639773?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=PgjKt9DaX80:iE3BEIKoNx0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/PgjKt9DaX80" height="1" width="1"/&gt;</content><link rel="related" href="http://github.com/andi/simple-navigation" title="simple-navigation Version 3" /><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/9056381700124639773/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=9056381700124639773" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/9056381700124639773?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/9056381700124639773?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/PgjKt9DaX80/simple-navigation-version-3.html" title="simple-navigation Version 3" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.andischacke.com/2011/02/simple-navigation-version-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcCSH0yfCp7ImA9Wx5bEEQ.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-4061111682606198796</id><published>2010-10-26T13:17:00.002+02:00</published><updated>2010-10-26T13:21:09.394+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-26T13:21:09.394+02:00</app:edited><title>Installing ruby with rvm using local readline and iconv</title><content type="html">To install ruby with rvm using your local readline and iconv libraries on SnowLeopard, execute&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rvm install 1.8.7 -C --with-readline-dir=/usr/local,--with-iconv-dir=/usr/local,--build=x86_64-apple-darwin10&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-4061111682606198796?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=AdMO3qGxDwA:_Dj-_J1K0b4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/AdMO3qGxDwA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/4061111682606198796/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=4061111682606198796" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/4061111682606198796?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/4061111682606198796?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/AdMO3qGxDwA/installing-ruby-with-rvm-using-local.html" title="Installing ruby with rvm using local readline and iconv" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.andischacke.com/2010/10/installing-ruby-with-rvm-using-local.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYNQno5eSp7ImA9WxBQF0g.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-8005499052240724981</id><published>2009-10-10T13:23:00.010+02:00</published><updated>2010-01-17T20:23:13.421+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-17T20:23:13.421+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="plugin" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="navigation" /><title>Simple Navigation Plugin Version 2</title><content type="html">About six months ago I wrote about the &lt;a href="http://blog.andischacke.com/2009/03/simple-navigation-plugin-for-rails.html"&gt;first release of the simple navigation plugin&lt;/a&gt;. It's a GemPlugin to generate the navigation for your ruby on rails applications. &lt;br /&gt;&lt;br /&gt;As far I can judge from the feedback I got from the community it seems like a lot of people are using the plugin. So I'm really happy to announce version 2 of the simple navigation plugin.&lt;br /&gt;&lt;br /&gt;The main new features are &lt;ul&gt;&lt;li&gt;create as many navigation levels you like (so far it was limited to primary and sub navigation&lt;/li&gt;&lt;li&gt;the active navigation item gets highlighted automatically (no more explicit configuration of the active item in the controllers needed)&lt;/li&gt;&lt;/ul&gt;Please check out the &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://wiki.github.com/andi/simple-navigation"&gt;wiki&lt;/a&gt; on github&lt;/li&gt;&lt;li&gt;&lt;a href="http://github.com/andi/simple-navigation"&gt;source code&lt;/a&gt; on github&lt;/li&gt;&lt;li&gt;the &lt;a href="http://andi.rubyforge.org/simple-navigation"&gt;rdoc&lt;/a&gt; documentation&lt;/li&gt;&lt;/ul&gt;and see some live examples on the &lt;a href="http://simple-navigation-demo.andischacke.com/"&gt;demo page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For providing feedback or get help visit the discussion group or drop me a line on &lt;a href="http://github.com/andi"&gt;github&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-8005499052240724981?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=ZlSqBcSHAGw:8xlVr_Ot-vM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/ZlSqBcSHAGw" height="1" width="1"/&gt;</content><link rel="related" href="http://wiki.github.com/andi/simple-navigation" title="Simple Navigation Plugin Version 2" /><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/8005499052240724981/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=8005499052240724981" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/8005499052240724981?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/8005499052240724981?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/ZlSqBcSHAGw/simple-navigation-gemplugin-version-2.html" title="Simple Navigation Plugin Version 2" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>8</thr:total><feedburner:origLink>http://blog.andischacke.com/2009/10/simple-navigation-gemplugin-version-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcCR308fCp7ImA9WxNXGE8.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-2167109086406349405</id><published>2009-10-06T11:59:00.002+02:00</published><updated>2009-10-06T12:14:26.374+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-06T12:14:26.374+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="rspec" /><category scheme="http://www.blogger.com/atom/ns#" term="action_mailer" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="testing" /><title>Making ActionMailer testable</title><content type="html">If you ever create a custom subclass of ActionMailer you'll be having a hard time to test it. That's because - by default - you cannot access the ActionMailer instance after creating a mail. To make ActionMailer testable you have to make its new-method public:&lt;br /&gt;&lt;br /&gt;&lt;pre class="textmate-source cobalt"&gt;&lt;span class='linenum'&gt;    1&lt;/span&gt; &lt;span class="source source_ruby source_ruby_rails"&gt;&lt;span class="meta meta_rails meta_rails_mailer"&gt;&lt;span class="meta meta_class meta_class_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_class keyword_control_class_ruby"&gt;class&lt;/span&gt; &lt;span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby"&gt;ActionMailer::Localized&lt;span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"&gt; &lt;span class="punctuation punctuation_separator punctuation_separator_inheritance punctuation_separator_inheritance_ruby"&gt;&amp;lt;&lt;/span&gt; ActionMailer::Base&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;    2&lt;/span&gt;   &lt;br /&gt;&lt;span class='linenum'&gt;    3&lt;/span&gt; &lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;  &lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt;to make ActionMailer testable&lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;    4&lt;/span&gt;   public_class_method &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;new&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;    5&lt;/span&gt;   &lt;br /&gt;&lt;span class='linenum'&gt;    6&lt;/span&gt;   &lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;private&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;    7&lt;/span&gt; &lt;br /&gt;&lt;span class='linenum'&gt;    8&lt;/span&gt; &lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;  &lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt;we would like to test that the correct template is set&lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;    9&lt;/span&gt;   &lt;span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_def keyword_control_def_ruby"&gt;def&lt;/span&gt; &lt;span class="entity entity_name entity_name_function entity_name_function_ruby"&gt;initialize_defaults&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby"&gt;(&lt;/span&gt;&lt;span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby"&gt;method_name&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   10&lt;/span&gt;     &lt;span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby"&gt;super&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   11&lt;/span&gt;     &lt;span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby"&gt;@&lt;/span&gt;template&lt;/span&gt; &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;"&lt;/span&gt;&lt;span class="source source_ruby source_ruby_embedded source_ruby_embedded_source"&gt;&lt;span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby"&gt;#{&lt;/span&gt;&lt;span class="support support_class support_class_ruby"&gt;I18n&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;locale&lt;span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby"&gt;}&lt;/span&gt;&lt;/span&gt;_&lt;span class="source source_ruby source_ruby_embedded source_ruby_embedded_source"&gt;&lt;span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby"&gt;#{&lt;/span&gt;method_name&lt;span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   12&lt;/span&gt;   &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   13&lt;/span&gt;   &lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;   14&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;With that change it's easy to test the initialize_defaults-method (as shown here using rspec):&lt;br /&gt;&lt;br /&gt;&lt;pre class="textmate-source cobalt"&gt;&lt;span class='linenum'&gt;    1&lt;/span&gt; &lt;span class="source source_ruby source_ruby_rails"&gt;describe &lt;span class="support support_class support_class_ruby"&gt;ActionMailer&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby"&gt;::&lt;/span&gt;&lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;Localized&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do&lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;    2&lt;/span&gt;   &lt;br /&gt;&lt;span class='linenum'&gt;    3&lt;/span&gt;   before&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;each&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do&lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;    4&lt;/span&gt;     &lt;span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby"&gt;@&lt;/span&gt;localized_mailer&lt;/span&gt; &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;Class&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;new&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="support support_class support_class_ruby"&gt;ActionMailer&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby"&gt;::&lt;/span&gt;&lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;Localized&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do&lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;    5&lt;/span&gt;       &lt;span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_def keyword_control_def_ruby"&gt;def&lt;/span&gt; &lt;span class="entity entity_name entity_name_function entity_name_function_ruby"&gt;mailer_method&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby"&gt;(&lt;/span&gt;&lt;span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby"&gt;mail_object&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_statement punctuation_separator_statement_ruby"&gt;;&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;    6&lt;/span&gt;     &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;new&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;    7&lt;/span&gt;     &lt;span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby"&gt;@&lt;/span&gt;localized_mailer&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;stub!&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;render&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;    8&lt;/span&gt;     &lt;span class="support support_class support_class_ruby"&gt;I18n&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;locale &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;de&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;    9&lt;/span&gt;   &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   10&lt;/span&gt; &lt;br /&gt;&lt;span class='linenum'&gt;   11&lt;/span&gt;   describe &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;after being initialized&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do&lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;   12&lt;/span&gt;     before&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;each&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do&lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;   13&lt;/span&gt;       &lt;span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby"&gt;@&lt;/span&gt;localized_mailer&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;create!&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;mailer_method&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;Object&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;new&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   14&lt;/span&gt;     &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   15&lt;/span&gt;     it &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;"&lt;/span&gt;should have the localized template name set&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do&lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;   16&lt;/span&gt;       &lt;span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby"&gt;@&lt;/span&gt;localized_mailer&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;template&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;should &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;==&lt;/span&gt; &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;de_mailer_method&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   17&lt;/span&gt;     &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   18&lt;/span&gt;   &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   19&lt;/span&gt;   &lt;br /&gt;&lt;span class='linenum'&gt;   20&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-2167109086406349405?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=GYEjCALWZ1M:L6sTpSu1Ueg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/GYEjCALWZ1M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/2167109086406349405/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=2167109086406349405" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/2167109086406349405?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/2167109086406349405?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/GYEjCALWZ1M/making-actionmailer-testable.html" title="Making ActionMailer testable" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.andischacke.com/2009/10/making-actionmailer-testable.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcFSHs4eip7ImA9WxNXGE8.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-8111083248306097144</id><published>2009-10-06T11:38:00.005+02:00</published><updated>2009-10-06T11:56:59.532+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-06T11:56:59.532+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="action_mailer" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="I18n" /><title>Localized ActionMailer Templates for Rails</title><content type="html">Rails actually does support localized templates, however, this does not apply for localized ActionMailer templates (yet?). Even if you add the correct locale to your mailer template names, ActionMailer does not choose the one based on the current locale. &lt;br /&gt;&lt;br /&gt;It's really easy to fix this:&lt;br /&gt;&lt;br /&gt;Just create a subclass of ActionMailer::Base and override the initialize_defaults method as shown below. Then let your mailers inherit from your new subclass.&lt;br /&gt;&lt;br /&gt;&lt;pre class="textmate-source cobalt"&gt;&lt;span class='linenum'&gt;    1&lt;/span&gt; &lt;span class="source source_ruby source_ruby_rails"&gt;&lt;span class="meta meta_rails meta_rails_mailer"&gt;&lt;span class="meta meta_class meta_class_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_class keyword_control_class_ruby"&gt;class&lt;/span&gt; &lt;span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby"&gt;ActionMailer::Localized&lt;span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"&gt; &lt;span class="punctuation punctuation_separator punctuation_separator_inheritance punctuation_separator_inheritance_ruby"&gt;&amp;lt;&lt;/span&gt; ActionMailer::Base&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;    2&lt;/span&gt;   &lt;br /&gt;&lt;span class='linenum'&gt;    3&lt;/span&gt;   &lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;private&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;    4&lt;/span&gt; &lt;br /&gt;&lt;span class='linenum'&gt;    5&lt;/span&gt; &lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;  &lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt; we override the template_path to render localized templates (since rails does not support that :-( )&lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;    6&lt;/span&gt; &lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;  &lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt; This thing is not testable since you cannot access the instance of a mailer...&lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;    7&lt;/span&gt;   &lt;span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_def keyword_control_def_ruby"&gt;def&lt;/span&gt; &lt;span class="entity entity_name entity_name_function entity_name_function_ruby"&gt;initialize_defaults&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby"&gt;(&lt;/span&gt;&lt;span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby"&gt;method_name&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;    8&lt;/span&gt;     &lt;span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby"&gt;super&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;    9&lt;/span&gt;     &lt;span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby"&gt;@&lt;/span&gt;template&lt;/span&gt; &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;"&lt;/span&gt;&lt;span class="source source_ruby source_ruby_embedded source_ruby_embedded_source"&gt;&lt;span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby"&gt;#{&lt;/span&gt;&lt;span class="support support_class support_class_ruby"&gt;I18n&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;locale&lt;span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby"&gt;}&lt;/span&gt;&lt;/span&gt;_&lt;span class="source source_ruby source_ruby_embedded source_ruby_embedded_source"&gt;&lt;span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby"&gt;#{&lt;/span&gt;method_name&lt;span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   10&lt;/span&gt;   &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class='linenum'&gt;   11&lt;/span&gt;   &lt;br /&gt;&lt;/span&gt;&lt;span class='linenum'&gt;   12&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Define your desired template name as shown on line 9, just do not add your locale as dot-notation at the end of the file. E.g. method_name.de.text.plain.erb will not work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-8111083248306097144?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=VKl_BdBaGnQ:KCgh6tfQfYE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/VKl_BdBaGnQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/8111083248306097144/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=8111083248306097144" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/8111083248306097144?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/8111083248306097144?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/VKl_BdBaGnQ/localized-actionmailer-templates-for.html" title="Localized ActionMailer Templates for Rails" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>8</thr:total><feedburner:origLink>http://blog.andischacke.com/2009/10/localized-actionmailer-templates-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IBQ3ozcSp7ImA9WxBbGUU.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-3087230855101717616</id><published>2009-05-14T20:16:00.004+02:00</published><updated>2010-03-19T08:59:12.489+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-19T08:59:12.489+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="leopard" /><category scheme="http://www.blogger.com/atom/ns#" term="macbook" /><title>Slow ruby 1.8 performance on MacBook Pro with Leopard</title><content type="html">Recently I started to get really really bored about how sluggish my rspec-tests were running. The weird thing was: the specs run about 5 times faster on my iMac than on the MacBook. Same situation for loading the rails-environment (which is part of running the specs...).&lt;br /&gt;&lt;br /&gt;After googling some time I found &lt;a href="http://bjhess.com/blog/2008/07/15/fixing-slow-rake-on-leopard"&gt;this blog entry by Barry Hess.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Conclusion: I followed the &lt;a href="http://hivelogic.com/articles/view/ruby-rails-leopard/"&gt;Hivelogic tutorial&lt;/a&gt; to install ruby. They recommend to compile ruby with certain options (e.g. --enable-pthread). This leeds to bad ruby performance on MacBooks (at least the model I have). If you compile ruby without any options, it runs much (and I mean much) faster. Loading the rails enviroment dropped from 5.5s to 1.5s. Specs also run about 5 times faster! If you're a test driven developer, you know what that means in terms of productivity.&lt;br /&gt;&lt;br /&gt;I'm quite sure that a lot of rubyists have that problem, but are not aware of it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update&lt;/span&gt;: this article also applies for Snow Leopard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-3087230855101717616?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=-Bx-YpIHKag:KOx6mOq9ii4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/-Bx-YpIHKag" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/3087230855101717616/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=3087230855101717616" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/3087230855101717616?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/3087230855101717616?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/-Bx-YpIHKag/slow-ruby-18-performance-on-macbook-pro.html" title="Slow ruby 1.8 performance on MacBook Pro with Leopard" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.andischacke.com/2009/05/slow-ruby-18-performance-on-macbook-pro.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcBSHo9eSp7ImA9WxNXGE8.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-2459733846069000328</id><published>2009-04-01T13:21:00.005+02:00</published><updated>2009-10-06T11:57:39.461+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-06T11:57:39.461+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="mysql" /><category scheme="http://www.blogger.com/atom/ns#" term="ruby1.9" /><title>Installing the mysql gem for ruby 1.9.1</title><content type="html">I recently tried to &lt;span style="font-weight: bold;"&gt;install the mysql gem for ruby 1.9.1&lt;/span&gt; on my macbook (OSX 10.5.6). I started with the 'usual' command to install the (modified) mysql gem:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ sudo gem19 install kwatch-mysql-ruby --source=http://gems.github.com/ -- --with-mysql-config=mysql_config&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The gem was compiled and installed correctly, but I got the following error when requiring 'mysql':&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;LoadError: dlopen(/usr/local/lib/ruby19/gems/1.9.1/gems/kwatch-mysql-ruby-2.8.1/lib/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib&lt;br /&gt;Referenced from: /usr/local/lib/ruby19/gems/1.9.1/gems/kwatch-mysql-ruby-2.8.1/lib/mysql.bundle&lt;br /&gt;Reason: image not found - /usr/local/lib/ruby19/gems/1.9.1/gems/kwatch-mysql-ruby-2.8.1/lib/mysql.bundle&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The problem is that the mysql gem tries to load libmysqlclient.dylib from the wrong directory. The following command &lt;span style="font-weight: bold;"&gt;resolved the problem&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ sudo install_name_tool -change /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib /usr/local/mysql/lib/libmysqlclient.15.dylib /usr/local/lib/ruby19/gems/1.9.1/gems/kwatch-mysql-ruby-2.8.1/lib/mysql.bundle&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;the first param ist the incorrect path which is used by the mysql.bundle, the second param is the correct path to be used instead and the third param is the path to the mysql.bundle. Adapt the params to your needs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-2459733846069000328?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=unn549YH_j8:GCa4dpzWJ9Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/unn549YH_j8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/2459733846069000328/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=2459733846069000328" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/2459733846069000328?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/2459733846069000328?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/unn549YH_j8/installing-mysql-gem-for-ruby-191.html" title="Installing the mysql gem for ruby 1.9.1" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.andischacke.com/2009/04/installing-mysql-gem-for-ruby-191.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EGRnkzeyp7ImA9WxNWEUo.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-4797718752702981900</id><published>2009-03-31T20:09:00.010+02:00</published><updated>2009-10-10T13:53:47.783+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-10T13:53:47.783+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="plugin" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="navigation" /><title>Simple Navigation Plugin for Rails</title><content type="html">Over the last two weeks, I've been working on the &lt;span style="font-weight: bold;"&gt;simple-navigation plugin&lt;/span&gt; which you can use to create the main navigation for your rails app.&lt;br /&gt;&lt;br /&gt;In the last year, I built several apps and had to repeatedly implement similar code for creating a navigation. Thus, I thought it would be helpful to have a plugin which generates the code for the navigation and can easily be configured.&lt;br /&gt;&lt;br /&gt;Please check out the online demo on &lt;a href="http://simple-navigation-demo.andischacke.com/"&gt;simple-navigation-demo.andischacke.com&lt;/a&gt; or checkout the &lt;a href="http://wiki.github.com/andi/simple-navigation"&gt;wiki on github&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'd appreciate your feedback on any missing features or bugs, just go to the &lt;a href="http://groups.google.com/group/simple-navigation"&gt;simple navigation discussion group&lt;/a&gt; or leave a comment here.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update: &lt;/strong&gt;This post is about an old version of the simple navigation plugin. Please see &lt;a href="http://blog.andischacke.com/2009/10/simple-navigation-gemplugin-version-2.html"&gt;this post&lt;/a&gt; for the new version.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update: &lt;/strong&gt;The gem is now ruby 1.9.1 compliant (as of version 1.3.1)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-4797718752702981900?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=a148PNAfp2M:U8dXNrHl8sM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/a148PNAfp2M" height="1" width="1"/&gt;</content><link rel="related" href="http://wiki.github.com/andi/simple-navigation" title="Simple Navigation Plugin for Rails" /><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/4797718752702981900/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=4797718752702981900" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/4797718752702981900?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/4797718752702981900?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/a148PNAfp2M/simple-navigation-plugin-for-rails.html" title="Simple Navigation Plugin for Rails" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.andischacke.com/2009/03/simple-navigation-plugin-for-rails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UFRHc5cCp7ImA9WxVbEEU.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-2770743415335605663</id><published>2009-03-26T16:24:00.002+01:00</published><updated>2009-03-26T16:26:55.928+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-26T16:26:55.928+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Select the first n lines of a file</title><content type="html">On linux, to select the first 1000 lines of a file and write it to another file use&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;head -n1000 file_name &gt; new_file_name&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-2770743415335605663?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=yXdlwIOMwYw:vOu5OeF5ReU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/yXdlwIOMwYw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/2770743415335605663/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=2770743415335605663" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/2770743415335605663?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/2770743415335605663?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/yXdlwIOMwYw/select-first-n-lines-of-file.html" title="Select the first n lines of a file" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.andischacke.com/2009/03/select-first-n-lines-of-file.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYDRno5eSp7ImA9WxVbEEs.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-9133015000405406868</id><published>2009-03-26T11:07:00.002+01:00</published><updated>2009-03-26T11:09:37.421+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-26T11:09:37.421+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Remove the first line of a file with sed</title><content type="html">If you need to remove the first line of a file use (on linux)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sed 1d file_name &gt; new_file_name&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-9133015000405406868?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=dwZZaWf9Uio:CaLwGDP5cH8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/dwZZaWf9Uio" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/9133015000405406868/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=9133015000405406868" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/9133015000405406868?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/9133015000405406868?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/dwZZaWf9Uio/remove-first-line-of-file-with-sed.html" title="Remove the first line of a file with sed" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.andischacke.com/2009/03/remove-first-line-of-file-with-sed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYMSH0yeip7ImA9WxVbEEs.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-986220080214622617</id><published>2009-03-26T10:55:00.004+01:00</published><updated>2009-03-26T11:09:49.392+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-26T11:09:49.392+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Convert a file to UTF8</title><content type="html">On linux, if you want to change the encoding of a file from ISO-8559-1 to UTF8 use&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iconv -f ISO-8859-1 -t UTF8 file_name &gt; new_file_name&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To get a list of supported encodings use&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;iconv -l&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-986220080214622617?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=WMgTaBxwkOg:QrZbArwT-dk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/WMgTaBxwkOg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/986220080214622617/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=986220080214622617" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/986220080214622617?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/986220080214622617?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/WMgTaBxwkOg/convert-file-to-utf8.html" title="Convert a file to UTF8" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.andischacke.com/2009/03/convert-file-to-utf8.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUGRXg-fip7ImA9WxVbEEs.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-1217963882729813923</id><published>2009-03-24T15:04:00.006+01:00</published><updated>2009-03-26T11:10:24.656+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-26T11:10:24.656+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><title>Problem with rcov and ruby 1.8.7</title><content type="html">I'm running ruby 1.8.7 and got the following error when running rcov (0.8.1.2.0):&lt;br /&gt;&lt;br /&gt;usr/local/lib/ruby/1.8/rexml/formatters/pretty.rb:131:in `[]': no implicit conversion from nil to integer (TypeError)&lt;br /&gt;&lt;br /&gt;To fix it change the following line in lib/rcov/report.rb of your rcov gem&lt;br /&gt;&lt;br /&gt;&lt;pre class="textmate-source cobalt"&gt;&lt;span class="source source_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_ruby"&gt;if&lt;/span&gt; &lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;RUBY_VERSION&lt;/span&gt; &lt;span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby"&gt;==&lt;/span&gt; &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;"&lt;/span&gt;1.8.6&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="keyword keyword_operator keyword_operator_logical keyword_operator_logical_ruby"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby"&gt;defined?&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;REXML&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby"&gt;::&lt;/span&gt;&lt;span class="support support_class support_class_ruby"&gt;Formatters&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby"&gt;::&lt;/span&gt;&lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;Transitive&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;into&lt;br /&gt;&lt;pre class="textmate-source cobalt"&gt;&lt;span class="source source_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_ruby"&gt;if&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;[&lt;/span&gt;&lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;"&lt;/span&gt;1.8.7&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;"&lt;/span&gt;1.8.6&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;]&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;include?&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;RUBY_VERSION&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt; &lt;span class="keyword keyword_operator keyword_operator_logical keyword_operator_logical_ruby"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby"&gt;defined?&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;REXML&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby"&gt;::&lt;/span&gt;&lt;span class="support support_class support_class_ruby"&gt;Formatters&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby"&gt;::&lt;/span&gt;&lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;Transitive&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;With that modification rcov runs without problems again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-1217963882729813923?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=8HJQ3PlJBMY:A3yKbFpyeF8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/8HJQ3PlJBMY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/1217963882729813923/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=1217963882729813923" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/1217963882729813923?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/1217963882729813923?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/8HJQ3PlJBMY/problem-with-rcov-and-ruby-187.html" title="Problem with rcov and ruby 1.8.7" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.andischacke.com/2009/03/problem-with-rcov-and-ruby-187.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUFR3o7fyp7ImA9WxRbFko.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-5144425432924426271</id><published>2008-11-16T15:42:00.005+01:00</published><updated>2008-12-07T19:06:56.407+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-07T19:06:56.407+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="seaside" /><title>Don't stop at Rails, check out Seaside!</title><content type="html">In order to develop web apps, I have &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;struggled&lt;/span&gt; with Java/Tomcat/Struts for several years. Then there was Ruby on Rails and I thought: wow, what a framework, it can't get any easier... I was wrong. There's Seaside. Seaside is a Smalltalk based web application framework. Take Rails, remove routing and request/response handling, start thinking in object oriented components and let's change the way we think of developing web apps. Welcome to the seaside. And the best thing is: if you have mastered Ruby on Rails, it's quite easy to get into Seaside.&lt;br /&gt;&lt;br /&gt;Here are some resources to start with:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://squeakbyexample.org/"&gt;Squeak by example&lt;/a&gt; (a free book introducing Smalltalk/Squeak)&lt;/li&gt;&lt;li&gt;The &lt;a href="http://www.seaside.st/"&gt;Seaside homepage&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.hpi.uni-potsdam.de/swa/seaside/tutorial"&gt;Seaside Tutorial&lt;/a&gt; (by the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Hasso&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Plattner&lt;/span&gt; Institute)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.lukas-renggli.ch/smalltalk/seaside"&gt;Lukas &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Renggli's&lt;/span&gt; Website&lt;/a&gt; (one of the core developers of seaside)&lt;/li&gt;&lt;/ul&gt;Once you have got rid of your &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;resistance&lt;/span&gt; against the Smalltalk syntax and the somewhat weird looking windows of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;Squeak&lt;/span&gt; you will be amazed how easy it is to develop web apps with Seaside. I will still be working with Ruby on Rails most of my time but Seaside definitely got my attention.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-5144425432924426271?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=EgsC_BZJT2Y:m6_RgjsnePE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/EgsC_BZJT2Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/5144425432924426271/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=5144425432924426271" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/5144425432924426271?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/5144425432924426271?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/EgsC_BZJT2Y/dont-stop-at-rails-check-out-seaside.html" title="Don't stop at Rails, check out Seaside!" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.andischacke.com/2008/11/dont-stop-at-rails-check-out-seaside.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04NSX4zfSp7ImA9WxRQFkk.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-5748653340384279477</id><published>2008-10-08T18:31:00.006+02:00</published><updated>2008-10-10T16:46:38.085+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-10T16:46:38.085+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="blogging" /><category scheme="http://www.blogger.com/atom/ns#" term="textmate" /><title>Code Syntax Highlighting on Web Pages with TextMate</title><content type="html">Somehow I felt that there must be an easier way to achieve syntax highlighting on web pages than I described in &lt;a href="http://blog.andischacke.com/2008/10/test.html"&gt;this previous post&lt;/a&gt;. So after thinking and googling for some more time I came accross this cool function in TextMate:&lt;br /&gt;&lt;br /&gt;Bundles -&gt; TextMate -&gt; Create HTML from Document&lt;br /&gt;&lt;br /&gt;This creates an HTML-page of your current document. Voilà. And it even includes the CSS needed to make the page look like your current TextMate theme.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Update:&lt;/span&gt; It also works for displaying CSS, HTML and Javascript! (and probably for every other language which can be displayed by TextMate)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-5748653340384279477?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=B_ZSX1QD53A:EOKiALx2DpQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/B_ZSX1QD53A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/5748653340384279477/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=5748653340384279477" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/5748653340384279477?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/5748653340384279477?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/B_ZSX1QD53A/code-syntax-highlighting-on-web-pages.html" title="Code Syntax Highlighting on Web Pages with TextMate" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.andischacke.com/2008/10/code-syntax-highlighting-on-web-pages.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEECRn0yeCp7ImA9WxRQFEU.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-4430039739148170100</id><published>2008-10-01T19:12:00.007+02:00</published><updated>2008-10-08T18:17:47.390+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-08T18:17:47.390+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><title>Add a character set to Vpim's Vcard-Export</title><content type="html">If you are using &lt;a href="http://vpim.rubyforge.org/"&gt;Vpim&lt;/a&gt; to export Vcards and ever need to include a character set on your lines in the generated Vcard-file, here's how to do it:&lt;br /&gt;&lt;pre class="textmate-source cobalt"&gt;&lt;span class="source source_ruby"&gt;&lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt; open up Vpim's DirectoryInfo::Field class&lt;br /&gt;&lt;/span&gt;&lt;span class="meta meta_module meta_module_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_module keyword_control_module_ruby"&gt;module&lt;/span&gt; &lt;span class="entity entity_name entity_name_type entity_name_type_module entity_name_type_module_ruby"&gt;Vpim&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_class meta_class_ruby"&gt;  &lt;span class="keyword keyword_control keyword_control_class keyword_control_class_ruby"&gt;class&lt;/span&gt; &lt;span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby"&gt;DirectoryInfo&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_class meta_class_ruby"&gt;    &lt;span class="keyword keyword_control keyword_control_class keyword_control_class_ruby"&gt;class&lt;/span&gt; &lt;span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby"&gt;Field&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_class meta_class_ruby"&gt;      &lt;span class="keyword keyword_control keyword_control_class keyword_control_class_ruby"&gt;class&lt;/span&gt; &lt;span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby"&gt;&lt;span class="variable variable_other variable_other_object variable_other_object_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby"&gt;&amp;lt;&amp;lt;&lt;/span&gt; self&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby"&gt;alias_method&lt;/span&gt; &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;orig_create&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;create&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;&lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;        &lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt; we overwrite Field.create for setting the CHARSET&lt;br /&gt;&lt;/span&gt;        &lt;span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_def keyword_control_def_ruby"&gt;def&lt;/span&gt; &lt;span class="entity entity_name entity_name_function entity_name_function_ruby"&gt;create&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby"&gt;(&lt;/span&gt;&lt;span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby"&gt;name&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; value&lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt;&lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; params&lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby"&gt;{}&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;          &lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt; specify the lines you don't want to add a charset to&lt;br /&gt;&lt;/span&gt;          lines_to_ignore &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="string string_quoted string_quoted_other string_quoted_other_literal string_quoted_other_literal_lower string_quoted_other_literal_lower_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;%w(&lt;/span&gt;BEGIN END VERSION&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;          params&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;merge!&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby"&gt;{&lt;/span&gt;&lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;CHARSET&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_separator punctuation_separator_key-value"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;ISO-8859-1&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby"&gt;}&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_ruby"&gt;unless&lt;/span&gt; lines_to_ignore&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;include? name&lt;br /&gt;          orig_create&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;name&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; value&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; params&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;      &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;    &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;  &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-4430039739148170100?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=fRz-xkp8Fxw:cD1iyIWDyYY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/fRz-xkp8Fxw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/4430039739148170100/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=4430039739148170100" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/4430039739148170100?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/4430039739148170100?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/fRz-xkp8Fxw/add-character-set-to-vpims-vcard-export.html" title="Add a character set to Vpim's Vcard-Export" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.andischacke.com/2008/10/add-character-set-to-vpims-vcard-export.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUARHs6eyp7ImA9WxRQFEU.&quot;"><id>tag:blogger.com,1999:blog-5673932053928779589.post-2719847412070893891</id><published>2008-10-01T17:52:00.025+02:00</published><updated>2008-10-08T18:44:05.513+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-08T18:44:05.513+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="blogging" /><title>Ruby Syntax Highlighting on Web Pages</title><content type="html">Here's a fast and easy way to do syntax highlighting on web pages (e.g. blogs). This works for ruby and html/xml:&lt;br /&gt;&lt;br /&gt;First Install Jamis Buck's syntax gem&lt;br /&gt;&lt;pre class="textmate-source cobalt"&gt;&lt;span class="source source_shell"&gt;gem install syntax&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Then create a file ruby2html.rb with the following content&lt;br /&gt;&lt;pre class="textmate-source cobalt"&gt;&lt;span class="source source_ruby"&gt;&lt;span class="meta meta_require meta_require_ruby"&gt;&lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;require&lt;/span&gt; &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;rubygems&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_require meta_require_ruby"&gt;&lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;require&lt;/span&gt; &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;syntax/convertors/html&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt;create a new ruby2Html-converter and convert clipboard-content to html&lt;br /&gt;&lt;/span&gt;converter &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;Syntax&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby"&gt;::&lt;/span&gt;&lt;span class="support support_class support_class_ruby"&gt;Convertors&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby"&gt;::&lt;/span&gt;&lt;span class="support support_class support_class_ruby"&gt;HTML&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;for_syntax &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;"&lt;/span&gt;ruby&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;html_code &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; converter&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;convert&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="support support_class support_class_ruby"&gt;IO&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;popen&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;pbpaste&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;r+&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;read&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; &lt;span class="constant constant_language constant_language_ruby"&gt;false&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt;wrap the code in a pre-tag with class 'ruby'&lt;br /&gt;&lt;/span&gt;html_code &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;[&lt;/span&gt;&lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;"&lt;/span&gt;&amp;lt;pre class='ruby'&amp;gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; html_code&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;"&lt;/span&gt;&amp;lt;/pre&amp;gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;]&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;join&lt;br /&gt;&lt;br /&gt;&lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt;output the generated html-code to the console&lt;br /&gt;&lt;/span&gt;puts html_code&lt;br /&gt;&lt;br /&gt;&lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt;write the html_code back to the clipboard&lt;br /&gt;&lt;/span&gt;&lt;span class="support support_class support_class_ruby"&gt;IO&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;popen&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;pbcopy&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;'&lt;/span&gt;r+&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;puts html_code&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Then just copy the content of the clipboard into your blog or webpage.&lt;br /&gt;&lt;br /&gt;Warning: the code uses the cmd-line tools 'popen' and 'pbcopy' to access the clipboard. Those tools are MacOSX specific. If you're on Linux see &lt;a href="http://blog.wolfman.com/articles/2006/05/26/howto-format-ruby-code-for-blogs"&gt;this blog post&lt;/a&gt;, something similar for windows users is describe &lt;a href="http://brentrubyrails.blogspot.com/2007/12/formatting-ruby-and-html-code-for-blog.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Add this css declarations to the header of your web page (change them to fit your need):&lt;br /&gt;&lt;pre class="textmate-source cobalt"&gt;&lt;span class="source source_css"&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_css"&gt;pre&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;background-color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;f1f1f3&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;112&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;padding&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_numeric constant_numeric_css"&gt;10&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_unit keyword_other_unit_css"&gt;px&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;font-size&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_numeric constant_numeric_css"&gt;1.1&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_unit keyword_other_unit_css"&gt;em&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;overflow&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="support support_constant support_constant_property-value support_constant_property-value_css"&gt;auto&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;margin&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_numeric constant_numeric_css"&gt;4&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_unit keyword_other_unit_css"&gt;px&lt;/span&gt;&lt;span class="constant constant_numeric constant_numeric_css"&gt; 0&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_unit keyword_other_unit_css"&gt;px&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;width&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_numeric constant_numeric_css"&gt;95&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_unit keyword_other_unit_css"&gt;%&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment comment_block comment_block_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_css"&gt;/*&lt;/span&gt; Syntax highlighting &lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_css"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;normal&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;comment&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;6a6969&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;font-style&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="support support_constant support_constant_property-value support_constant_property-value_css"&gt;italic&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;keyword&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;7f2a53&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;font-weight&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="support support_constant support_constant_property-value support_constant_property-value_css"&gt;bold&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;method&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;077&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;class&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;683c2b&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;font-weight&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="support support_constant support_constant_property-value support_constant_property-value_css"&gt;bold&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;module&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;050&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;punct&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;000&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;font-weight&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="support support_constant support_constant_property-value support_constant_property-value_css"&gt;bold&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;symbol&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;000&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;string&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;2a9a67&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;background&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;e8f5f5&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;char&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;F07&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ident&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;004&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;constant&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;07F&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;regex&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;B66&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;background&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;FEF&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;number&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;F99&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;attribute&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;7BB&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;global&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;7FB&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;expr&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;227&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="meta meta_selector meta_selector_css"&gt;&lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;ruby&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css"&gt;.&lt;/span&gt;escape&lt;/span&gt; &lt;/span&gt;&lt;span class="meta meta_property-list meta_property-list_css"&gt;&lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;{&lt;/span&gt; &lt;span class="meta meta_property-name meta_property-name_css"&gt;&lt;span class="support support_type support_type_property-name support_type_property-name_css"&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span class="meta meta_property-value meta_property-value_css"&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css"&gt;:&lt;/span&gt; &lt;span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css"&gt;#&lt;/span&gt;277&lt;/span&gt;&lt;span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css"&gt;;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;If you need syntax highlighting for XML or HTML you can modify the ruby2html.rb to use the XML-Converter of the syntax gem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5673932053928779589-2719847412070893891?l=blog.andischacke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/andischacke?a=QdqQdQEY5ro:RDCrxiRmXGI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/andischacke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/andischacke/~4/QdqQdQEY5ro" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.andischacke.com/feeds/2719847412070893891/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5673932053928779589&amp;postID=2719847412070893891" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/2719847412070893891?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5673932053928779589/posts/default/2719847412070893891?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/andischacke/~3/QdqQdQEY5ro/test.html" title="Ruby Syntax Highlighting on Web Pages" /><author><name>Andi Schacke</name><uri>http://www.blogger.com/profile/14709071038111082906</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://1.bp.blogspot.com/_-gNKyvo009c/SON455QQD1I/AAAAAAAAAAM/JQYL-lWNZqs/s1600-R/3e17eed55.5583456.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.andischacke.com/2008/10/test.html</feedburner:origLink></entry></feed>

