tag:blogger.com,1999:blog-56739320539287795892024-02-20T20:41:57.215+01:00Andi Schacke's Developer BlogI'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.Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.comBlogger18125tag:blogger.com,1999:blog-5673932053928779589.post-42308317300477416972012-10-01T13:46:00.000+02:002012-11-15T08:54:37.115+01:00weddingdonkey.comAfter 12 months of development I am really happy to announce <a href="http://www.weddingdonkey.com/" target="_blank">weddingdonkey.com</a>, a platform to <a href="http://www.weddingdonkey.com/" target="_blank">create your custom wedding website</a>. It is being developed with Rails 3.2 and mongodb and runs on Amazon EC2 and Cloudfront. Here is what I am excited about:<br />
<br />
<ul>
<li>The available wedding themes are illustrative and fresh, not too traditional.</li>
<li>The user interface is very modern, a lot of drag and drop and inplace editing, no need to switch to preview mode all the time because you instantly see how your page looks like.</li>
<li>It uses the approach 'less is more' when it comes to features. No 'feature jungle' as on comparable websites.</li>
</ul>
<div>
Please give it a try yourself or pass on the link if you know someone who gets married. I'm also happy to discuss technology topics regarding the platform. </div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLnc3raehFFVsAqf0fAnI3OI3-E-uOrTSOByqrcye23HoOVmpEYgvNECl0WXZYZDOc7ERxHAxc2HqvT5C5wxFl2jP105crv-4baqIPIN7Ny6yVs67T3QFzxcr6e_deRUhCDMJNivDnCqb2/s1600/Screen+Shot+2012-10-01+at+13.40.54.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="306" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLnc3raehFFVsAqf0fAnI3OI3-E-uOrTSOByqrcye23HoOVmpEYgvNECl0WXZYZDOc7ERxHAxc2HqvT5C5wxFl2jP105crv-4baqIPIN7Ny6yVs67T3QFzxcr6e_deRUhCDMJNivDnCqb2/s400/Screen+Shot+2012-10-01+at+13.40.54.png" width="400" /></a></div>
<br />
<br />Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com0tag:blogger.com,1999:blog-5673932053928779589.post-22097171898522875582012-08-20T10:43:00.001+02:002012-08-20T10:43:12.506+02:00Safari 6 - what a disappointmentI recently upgraded to Safari 6. I was hoping for another Apple improvement, but I can't believe what Apple did to Safari. The unified addressbar / searchbar is just annoying and the new WebInspector is a mess and just unusable. First, I decided to just give it a try for a couple of days, but it didn't help. Safari was my favourite browser to develop and test webapps for the last two years, but now I will switch back to good old Firefox. Not a nice job, Apple.Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com3tag:blogger.com,1999:blog-5673932053928779589.post-90563817001246397732011-02-28T09:54:00.004+01:002011-02-28T10:14:47.851+01:00simple-navigation Version 3This 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.<br /><br />The key features of the new version 3 are:<br /><ul><li>supports <b>Ruby 1.9.2</b></li><li>supports <b>Rails 3</b></li><li>supports <b>Sinatra</b></li><li>supports <b>Padrino</b></li><li><b><span class="Apple-style-span" style="font-weight: normal; ">much cleaner code due to decoupling of rails</span></b></li><li><b><span class="Apple-style-span" style="font-weight: normal; ">added more renderers (breadcrumbs, text only, links only in addition to the default html list renderer)</span></b></li></ul><div>More information can be found on the <a href="https://github.com/andi/simple-navigation/">github page</a> and the <a href="https://github.com/andi/simple-navigation/wiki">wiki</a>. Please <a href="https://github.com/andi/simple-navigation/issues">report any issues</a> or just <a href="http://groups.google.com/group/simple-navigation">post to the mailing list</a>.</div><div>There is also a <a href="https://github.com/andi/simple-navigation-demo">new public project</a> with a sample application running with Rails2, Rails3, Sinatra and Padrino.</div><div><br /></div>Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com1tag:blogger.com,1999:blog-5673932053928779589.post-40611116826061987962010-10-26T13:17:00.002+02:002010-10-26T13:21:09.394+02:00Installing ruby with rvm using local readline and iconvTo install ruby with rvm using your local readline and iconv libraries on SnowLeopard, execute<br /><br /><span style="font-family:courier new;">rvm install 1.8.7 -C --with-readline-dir=/usr/local,--with-iconv-dir=/usr/local,--build=x86_64-apple-darwin10</span>Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com1tag:blogger.com,1999:blog-5673932053928779589.post-80054990522407249812009-10-10T13:23:00.010+02:002010-01-17T20:23:13.421+01:00Simple Navigation Plugin Version 2About six months ago I wrote about the <a href="http://blog.andischacke.com/2009/03/simple-navigation-plugin-for-rails.html">first release of the simple navigation plugin</a>. It's a GemPlugin to generate the navigation for your ruby on rails applications. <br /><br />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.<br /><br />The main new features are <ul><li>create as many navigation levels you like (so far it was limited to primary and sub navigation</li><li>the active navigation item gets highlighted automatically (no more explicit configuration of the active item in the controllers needed)</li></ul>Please check out the <br /><ul><li><a href="http://wiki.github.com/andi/simple-navigation">wiki</a> on github</li><li><a href="http://github.com/andi/simple-navigation">source code</a> on github</li><li>the <a href="http://andi.rubyforge.org/simple-navigation">rdoc</a> documentation</li></ul>and see some live examples on the <a href="http://simple-navigation-demo.andischacke.com/">demo page</a>.<br /><br />For providing feedback or get help visit the discussion group or drop me a line on <a href="http://github.com/andi">github</a>.Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com8tag:blogger.com,1999:blog-5673932053928779589.post-21671090864063494052009-10-06T11:59:00.002+02:002009-10-06T12:14:26.374+02:00Making ActionMailer testableIf 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:<br /><br /><pre class="textmate-source cobalt"><span class='linenum'> 1</span> <span class="source source_ruby source_ruby_rails"><span class="meta meta_rails meta_rails_mailer"><span class="meta meta_class meta_class_ruby"><span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">ActionMailer::Localized<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> <span class="punctuation punctuation_separator punctuation_separator_inheritance punctuation_separator_inheritance_ruby"><</span> ActionMailer::Base</span></span></span><br /><span class='linenum'> 2</span> <br /><span class='linenum'> 3</span> <span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"> <span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span>to make ActionMailer testable<br /></span><span class='linenum'> 4</span> public_class_method <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>new</span><br /><span class='linenum'> 5</span> <br /><span class='linenum'> 6</span> <span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby">private</span><br /><span class='linenum'> 7</span> <br /><span class='linenum'> 8</span> <span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"> <span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span>we would like to test that the correct template is set<br /></span><span class='linenum'> 9</span> <span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"><span class="keyword keyword_control keyword_control_def keyword_control_def_ruby">def</span> <span class="entity entity_name entity_name_function entity_name_function_ruby">initialize_defaults</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">(</span><span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby">method_name</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">)</span></span><br /><span class='linenum'> 10</span> <span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby">super</span><br /><span class='linenum'> 11</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>template</span> <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span><span class="source source_ruby source_ruby_embedded source_ruby_embedded_source"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">#{</span><span class="support support_class support_class_ruby">I18n</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>locale<span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">}</span></span>_<span class="source source_ruby source_ruby_embedded source_ruby_embedded_source"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">#{</span>method_name<span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">}</span></span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><br /><span class='linenum'> 12</span> <span class="keyword keyword_control keyword_control_ruby">end</span><br /><span class='linenum'> 13</span> <br /></span><span class='linenum'> 14</span> <span class="keyword keyword_control keyword_control_ruby">end</span></span></pre><br />With that change it's easy to test the initialize_defaults-method (as shown here using rspec):<br /><br /><pre class="textmate-source cobalt"><span class='linenum'> 1</span> <span class="source source_ruby source_ruby_rails">describe <span class="support support_class support_class_ruby">ActionMailer</span><span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby">::</span><span class="variable variable_other variable_other_constant variable_other_constant_ruby">Localized</span> <span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby">do<br /></span><span class='linenum'> 2</span> <br /><span class='linenum'> 3</span> before<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>each</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span> <span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby">do<br /></span><span class='linenum'> 4</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>localized_mailer</span> <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="support support_class support_class_ruby">Class</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span><span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby">new</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="support support_class support_class_ruby">ActionMailer</span><span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby">::</span><span class="variable variable_other variable_other_constant variable_other_constant_ruby">Localized</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span> <span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby">do<br /></span><span class='linenum'> 5</span> <span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"><span class="keyword keyword_control keyword_control_def keyword_control_def_ruby">def</span> <span class="entity entity_name entity_name_function entity_name_function_ruby">mailer_method</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">(</span><span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby">mail_object</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">)</span></span><span class="punctuation punctuation_separator punctuation_separator_statement punctuation_separator_statement_ruby">;</span> <span class="keyword keyword_control keyword_control_ruby">end</span><br /><span class='linenum'> 6</span> <span class="keyword keyword_control keyword_control_ruby">end</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span><span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby">new</span><br /><span class='linenum'> 7</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>localized_mailer</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>stub!<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>render</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span><br /><span class='linenum'> 8</span> <span class="support support_class support_class_ruby">I18n</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>locale <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>de<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span><br /><span class='linenum'> 9</span> <span class="keyword keyword_control keyword_control_ruby">end</span><br /><span class='linenum'> 10</span> <br /><span class='linenum'> 11</span> describe <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>after being initialized<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span> <span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby">do<br /></span><span class='linenum'> 12</span> before<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>each</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span> <span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby">do<br /></span><span class='linenum'> 13</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>localized_mailer</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>create!<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>mailer_method<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="support support_class support_class_ruby">Object</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span><span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby">new</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span><br /><span class='linenum'> 14</span> <span class="keyword keyword_control keyword_control_ruby">end</span><br /><span class='linenum'> 15</span> it <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>should have the localized template name set<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span> <span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby">do<br /></span><span class='linenum'> 16</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>localized_mailer</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>template<span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>should <span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby">==</span> <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>de_mailer_method<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span><br /><span class='linenum'> 17</span> <span class="keyword keyword_control keyword_control_ruby">end</span><br /><span class='linenum'> 18</span> <span class="keyword keyword_control keyword_control_ruby">end</span><br /><span class='linenum'> 19</span> <br /><span class='linenum'> 20</span> <span class="keyword keyword_control keyword_control_ruby">end</span></span></pre>Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com2tag:blogger.com,1999:blog-5673932053928779589.post-81110832483060971442009-10-06T11:38:00.005+02:002009-10-06T11:56:59.532+02:00Localized ActionMailer Templates for RailsRails 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. <br /><br />It's really easy to fix this:<br /><br />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.<br /><br /><pre class="textmate-source cobalt"><span class='linenum'> 1</span> <span class="source source_ruby source_ruby_rails"><span class="meta meta_rails meta_rails_mailer"><span class="meta meta_class meta_class_ruby"><span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">ActionMailer::Localized<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> <span class="punctuation punctuation_separator punctuation_separator_inheritance punctuation_separator_inheritance_ruby"><</span> ActionMailer::Base</span></span></span><br /><span class='linenum'> 2</span> <br /><span class='linenum'> 3</span> <span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby">private</span><br /><span class='linenum'> 4</span> <br /><span class='linenum'> 5</span> <span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"> <span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span> we override the template_path to render localized templates (since rails does not support that :-( )<br /></span><span class='linenum'> 6</span> <span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"> <span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span> This thing is not testable since you cannot access the instance of a mailer...<br /></span><span class='linenum'> 7</span> <span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"><span class="keyword keyword_control keyword_control_def keyword_control_def_ruby">def</span> <span class="entity entity_name entity_name_function entity_name_function_ruby">initialize_defaults</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">(</span><span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby">method_name</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">)</span></span><br /><span class='linenum'> 8</span> <span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby">super</span><br /><span class='linenum'> 9</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>template</span> <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span><span class="source source_ruby source_ruby_embedded source_ruby_embedded_source"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">#{</span><span class="support support_class support_class_ruby">I18n</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>locale<span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">}</span></span>_<span class="source source_ruby source_ruby_embedded source_ruby_embedded_source"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">#{</span>method_name<span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_ruby">}</span></span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><br /><span class='linenum'> 10</span> <span class="keyword keyword_control keyword_control_ruby">end</span><br /><span class='linenum'> 11</span> <br /></span><span class='linenum'> 12</span> <span class="keyword keyword_control keyword_control_ruby">end</span></span></pre><br />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.Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com11tag:blogger.com,1999:blog-5673932053928779589.post-30872308551017176162009-05-14T20:16:00.004+02:002010-03-19T08:59:12.489+01:00Slow ruby 1.8 performance on MacBook Pro with LeopardRecently 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...).<br /><br />After googling some time I found <a href="http://bjhess.com/blog/2008/07/15/fixing-slow-rake-on-leopard">this blog entry by Barry Hess.</a><br /><br />Conclusion: I followed the <a href="http://hivelogic.com/articles/view/ruby-rails-leopard/">Hivelogic tutorial</a> 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.<br /><br />I'm quite sure that a lot of rubyists have that problem, but are not aware of it.<br /><br /><span style="font-weight:bold;">Update</span>: this article also applies for Snow Leopard.Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com0tag:blogger.com,1999:blog-5673932053928779589.post-24597338460690003282009-04-01T13:21:00.005+02:002009-10-06T11:57:39.461+02:00Installing the mysql gem for ruby 1.9.1I recently tried to <span style="font-weight: bold;">install the mysql gem for ruby 1.9.1</span> on my macbook (OSX 10.5.6). I started with the 'usual' command to install the (modified) mysql gem:<br /><br /><span style="font-family:courier new;">$ sudo gem19 install kwatch-mysql-ruby --source=http://gems.github.com/ -- --with-mysql-config=mysql_config</span><br /><br />The gem was compiled and installed correctly, but I got the following error when requiring 'mysql':<br /><br /><span style="font-size:100%;">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<br />Referenced from: /usr/local/lib/ruby19/gems/1.9.1/gems/kwatch-mysql-ruby-2.8.1/lib/mysql.bundle<br />Reason: image not found - /usr/local/lib/ruby19/gems/1.9.1/gems/kwatch-mysql-ruby-2.8.1/lib/mysql.bundle<br /></span><br />The problem is that the mysql gem tries to load libmysqlclient.dylib from the wrong directory. The following command <span style="font-weight: bold;">resolved the problem</span>:<br /><br /><span style="font-family:courier new;">$ 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</span><br /><br />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.Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com0tag:blogger.com,1999:blog-5673932053928779589.post-47977187527029819002009-03-31T20:09:00.010+02:002009-10-10T13:53:47.783+02:00Simple Navigation Plugin for RailsOver the last two weeks, I've been working on the <span style="font-weight: bold;">simple-navigation plugin</span> which you can use to create the main navigation for your rails app.<br /><br />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.<br /><br />Please check out the online demo on <a href="http://simple-navigation-demo.andischacke.com/">simple-navigation-demo.andischacke.com</a> or checkout the <a href="http://wiki.github.com/andi/simple-navigation">wiki on github</a>.<br /><br />I'd appreciate your feedback on any missing features or bugs, just go to the <a href="http://groups.google.com/group/simple-navigation">simple navigation discussion group</a> or leave a comment here.<br /><br /><strong>Update: </strong>This post is about an old version of the simple navigation plugin. Please see <a href="http://blog.andischacke.com/2009/10/simple-navigation-gemplugin-version-2.html">this post</a> for the new version.<br /><br /><strong>Update: </strong>The gem is now ruby 1.9.1 compliant (as of version 1.3.1)Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com0tag:blogger.com,1999:blog-5673932053928779589.post-27707434153356056632009-03-26T16:24:00.002+01:002009-03-26T16:26:55.928+01:00Select the first n lines of a fileOn linux, to select the first 1000 lines of a file and write it to another file use<br /><br /><span style="font-family: courier new;">head -n1000 file_name > new_file_name</span>Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com0tag:blogger.com,1999:blog-5673932053928779589.post-91330150004054068682009-03-26T11:07:00.002+01:002009-03-26T11:09:37.421+01:00Remove the first line of a file with sedIf you need to remove the first line of a file use (on linux)<br /><br /><span style="font-family:courier new;">sed 1d file_name > new_file_name</span>Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com0tag:blogger.com,1999:blog-5673932053928779589.post-9862200802146226172009-03-26T10:55:00.004+01:002009-03-26T11:09:49.392+01:00Convert a file to UTF8On linux, if you want to change the encoding of a file from ISO-8559-1 to UTF8 use<br /><br /><span style="font-family:courier new;">iconv -f ISO-8859-1 -t UTF8 file_name > new_file_name</span><br /><br />To get a list of supported encodings use<br /><br /><span style="font-family:courier new;">iconv -l</span>Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com1tag:blogger.com,1999:blog-5673932053928779589.post-12179638827298139232009-03-24T15:04:00.006+01:002009-03-26T11:10:24.656+01:00Problem with rcov and ruby 1.8.7I'm running ruby 1.8.7 and got the following error when running rcov (0.8.1.2.0):<br /><br />usr/local/lib/ruby/1.8/rexml/formatters/pretty.rb:131:in `[]': no implicit conversion from nil to integer (TypeError)<br /><br />To fix it change the following line in lib/rcov/report.rb of your rcov gem<br /><br /><pre class="textmate-source cobalt"><span class="source source_ruby"><span class="keyword keyword_control keyword_control_ruby">if</span> <span class="variable variable_other variable_other_constant variable_other_constant_ruby">RUBY_VERSION</span> <span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_ruby">==</span> <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>1.8.6<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span> <span class="keyword keyword_operator keyword_operator_logical keyword_operator_logical_ruby">&&</span> <span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby">defined?</span> <span class="support support_class support_class_ruby">REXML</span><span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby">::</span><span class="support support_class support_class_ruby">Formatters</span><span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby">::</span><span class="variable variable_other variable_other_constant variable_other_constant_ruby">Transitive</span></span></pre><br />into<br /><pre class="textmate-source cobalt"><span class="source source_ruby"><span class="keyword keyword_control keyword_control_ruby">if</span> <span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby">[</span><span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>1.8.7<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>1.8.6<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby">]</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>include?<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="variable variable_other variable_other_constant variable_other_constant_ruby">RUBY_VERSION</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span> <span class="keyword keyword_operator keyword_operator_logical keyword_operator_logical_ruby">&&</span> <span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby">defined?</span> <span class="support support_class support_class_ruby">REXML</span><span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby">::</span><span class="support support_class support_class_ruby">Formatters</span><span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby">::</span><span class="variable variable_other variable_other_constant variable_other_constant_ruby">Transitive</span></span></pre><br />With that modification rcov runs without problems again.Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com1tag:blogger.com,1999:blog-5673932053928779589.post-51444254329244262712008-11-16T15:42:00.005+01:002008-12-07T19:06:56.407+01:00Don't stop at Rails, check out Seaside!In order to develop web apps, I have <span class="blsp-spelling-corrected" id="SPELLING_ERROR_0">struggled</span> 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.<br /><br />Here are some resources to start with:<br /><ul><li><a href="http://squeakbyexample.org/">Squeak by example</a> (a free book introducing Smalltalk/Squeak)</li><li>The <a href="http://www.seaside.st/">Seaside homepage</a><br /></li><li><a href="http://www.hpi.uni-potsdam.de/swa/seaside/tutorial">Seaside Tutorial</a> (by the <span class="blsp-spelling-error" id="SPELLING_ERROR_1">Hasso</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_2">Plattner</span> Institute)</li><li><a href="http://www.lukas-renggli.ch/smalltalk/seaside">Lukas <span class="blsp-spelling-error" id="SPELLING_ERROR_3">Renggli's</span> Website</a> (one of the core developers of seaside)</li></ul>Once you have got rid of your <span class="blsp-spelling-corrected" id="SPELLING_ERROR_4">resistance</span> against the Smalltalk syntax and the somewhat weird looking windows of <span class="blsp-spelling-corrected" id="SPELLING_ERROR_5">Squeak</span> 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.Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com0tag:blogger.com,1999:blog-5673932053928779589.post-57486533403842794772008-10-08T18:31:00.006+02:002008-10-10T16:46:38.085+02:00Code Syntax Highlighting on Web Pages with TextMateSomehow I felt that there must be an easier way to achieve syntax highlighting on web pages than I described in <a href="http://blog.andischacke.com/2008/10/test.html">this previous post</a>. So after thinking and googling for some more time I came accross this cool function in TextMate:<br /><br />Bundles -> TextMate -> Create HTML from Document<br /><br />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.<br /><span style="font-weight:bold;"><br />Update:</span> It also works for displaying CSS, HTML and Javascript! (and probably for every other language which can be displayed by TextMate)Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com2tag:blogger.com,1999:blog-5673932053928779589.post-44300397391481701002008-10-01T19:12:00.007+02:002008-10-08T18:17:47.390+02:00Add a character set to Vpim's Vcard-ExportIf you are using <a href="http://vpim.rubyforge.org/">Vpim</a> 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:<br /><pre class="textmate-source cobalt"><span class="source source_ruby"><span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span> open up Vpim's DirectoryInfo::Field class<br /></span><span class="meta meta_module meta_module_ruby"><span class="keyword keyword_control keyword_control_module keyword_control_module_ruby">module</span> <span class="entity entity_name entity_name_type entity_name_type_module entity_name_type_module_ruby">Vpim</span></span><br /><span class="meta meta_class meta_class_ruby"> <span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">DirectoryInfo</span></span><br /><span class="meta meta_class meta_class_ruby"> <span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">Field</span></span><br /><span class="meta meta_class meta_class_ruby"> <span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby"><span class="variable variable_other variable_other_object variable_other_object_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby"><<</span> self</span></span></span><br /> <span class="keyword keyword_control keyword_control_pseudo-method keyword_control_pseudo-method_ruby">alias_method</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>orig_create</span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby">:</span>create</span><br /> <br /><span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"> <span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span> we overwrite Field.create for setting the CHARSET<br /></span> <span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"><span class="keyword keyword_control keyword_control_def keyword_control_def_ruby">def</span> <span class="entity entity_name entity_name_function entity_name_function_ruby">create</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">(</span><span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby">name<span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> value<span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span><span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> params<span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span><span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">{}</span></span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">)</span></span><br /><span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"> <span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span> specify the lines you don't want to add a charset to<br /></span> lines_to_ignore <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="string string_quoted string_quoted_other string_quoted_other_literal string_quoted_other_literal_lower string_quoted_other_literal_lower_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">%w(</span>BEGIN END VERSION<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">)</span></span><br /> params<span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>merge!<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">{</span><span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>CHARSET<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span> <span class="punctuation punctuation_separator punctuation_separator_key-value">=></span> <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>ISO-8859-1<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span><span class="punctuation punctuation_section punctuation_section_scope punctuation_section_scope_ruby">}</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span> <span class="keyword keyword_control keyword_control_ruby">unless</span> lines_to_ignore<span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>include? name<br /> orig_create<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span>name<span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> value<span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> params<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span><br /> <span class="keyword keyword_control keyword_control_ruby">end</span><br /> <span class="keyword keyword_control keyword_control_ruby">end</span><br /> <br /> <span class="keyword keyword_control keyword_control_ruby">end</span><br /> <span class="keyword keyword_control keyword_control_ruby">end</span><br /><span class="keyword keyword_control keyword_control_ruby">end</span></span></pre>Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com1tag:blogger.com,1999:blog-5673932053928779589.post-27198474120708938912008-10-01T17:52:00.025+02:002008-10-08T18:44:05.513+02:00Ruby Syntax Highlighting on Web PagesHere's a fast and easy way to do syntax highlighting on web pages (e.g. blogs). This works for ruby and html/xml:<br /><br />First Install Jamis Buck's syntax gem<br /><pre class="textmate-source cobalt"><span class="source source_shell">gem install syntax</span></pre><br />Then create a file ruby2html.rb with the following content<br /><pre class="textmate-source cobalt"><span class="source source_ruby"><span class="meta meta_require meta_require_ruby"><span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby">require</span> <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>rubygems<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span></span><br /><span class="meta meta_require meta_require_ruby"><span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby">require</span> <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>syntax/convertors/html<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span></span><br /><br /><span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span>create a new ruby2Html-converter and convert clipboard-content to html<br /></span>converter <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="support support_class support_class_ruby">Syntax</span><span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby">::</span><span class="support support_class support_class_ruby">Convertors</span><span class="punctuation punctuation_separator punctuation_separator_other punctuation_separator_other_ruby">::</span><span class="support support_class support_class_ruby">HTML</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>for_syntax <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span>ruby<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><br />html_code <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> converter<span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>convert<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="support support_class support_class_ruby">IO</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>popen<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>pbpaste<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>r+<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>read<span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="constant constant_language constant_language_ruby">false</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span><br /><br /><span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span>wrap the code in a pre-tag with class 'ruby'<br /></span>html_code <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby">[</span><span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span><pre class='ruby'><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> html_code<span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="string string_quoted string_quoted_double string_quoted_double_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">"</span></pre><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">"</span></span><span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby">]</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>join<br /><br /><span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span>output the generated html-code to the console<br /></span>puts html_code<br /><br /><span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span>write the html_code back to the clipboard<br /></span><span class="support support_class support_class_ruby">IO</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>popen<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>pbcopy<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="string string_quoted string_quoted_single string_quoted_single_ruby"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby">'</span>r+<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby">'</span></span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>puts html_code</span></pre><br />Then just copy the content of the clipboard into your blog or webpage.<br /><br />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 <a href="http://blog.wolfman.com/articles/2006/05/26/howto-format-ruby-code-for-blogs">this blog post</a>, something similar for windows users is describe <a href="http://brentrubyrails.blogspot.com/2007/12/formatting-ruby-and-html-code-for-blog.html">here</a>.<br /><br />Add this css declarations to the header of your web page (change them to fit your need):<br /><pre class="textmate-source cobalt"><span class="source source_css"><span class="meta meta_selector meta_selector_css"><span class="entity entity_name entity_name_tag entity_name_tag_css">pre</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span><br /> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">background-color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>f1f1f3</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span><br /> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>112</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span><br /> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">padding</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_numeric constant_numeric_css">10</span><span class="keyword keyword_other keyword_other_unit keyword_other_unit_css">px</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span><br /> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">font-size</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_numeric constant_numeric_css">1.1</span><span class="keyword keyword_other keyword_other_unit keyword_other_unit_css">em</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span><br /> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">overflow</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="support support_constant support_constant_property-value support_constant_property-value_css">auto</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span><br /> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">margin</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_numeric constant_numeric_css">4</span><span class="keyword keyword_other keyword_other_unit keyword_other_unit_css">px</span><span class="constant constant_numeric constant_numeric_css"> 0</span><span class="keyword keyword_other keyword_other_unit keyword_other_unit_css">px</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span><br /> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">width</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_numeric constant_numeric_css">95</span><span class="keyword keyword_other keyword_other_unit keyword_other_unit_css">%</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span><br /><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><br /><span class="comment comment_block comment_block_css"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_css">/*</span> Syntax highlighting <span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_css">*/</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>normal</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>comment</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>6a6969</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">font-style</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="support support_constant support_constant_property-value support_constant_property-value_css">italic</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>keyword</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>7f2a53</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">font-weight</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="support support_constant support_constant_property-value support_constant_property-value_css">bold</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>method</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>077</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>class</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>683c2b</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">font-weight</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="support support_constant support_constant_property-value support_constant_property-value_css">bold</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>module</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>050</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>punct</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>000</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">font-weight</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="support support_constant support_constant_property-value support_constant_property-value_css">bold</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>symbol</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>000</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>string</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>2a9a67</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">background</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>e8f5f5</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>char</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>F07</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ident</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>004</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>constant</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>07F</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>regex</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>B66</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">background</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>FEF</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>number</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>F99</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>attribute</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>7BB</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>global</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>7FB</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>expr</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>227</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span><br /><span class="meta meta_selector meta_selector_css"><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>ruby</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_class entity_other_attribute-name_class_css"><span class="punctuation punctuation_definition punctuation_definition_entity punctuation_definition_entity_css">.</span>escape</span> </span><span class="meta meta_property-list meta_property-list_css"><span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">{</span> <span class="meta meta_property-name meta_property-name_css"><span class="support support_type support_type_property-name support_type_property-name_css">color</span></span><span class="meta meta_property-value meta_property-value_css"><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_css">:</span> <span class="constant constant_other constant_other_color constant_other_color_rgb-value constant_other_color_rgb-value_css"><span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_css">#</span>277</span><span class="punctuation punctuation_terminator punctuation_terminator_rule punctuation_terminator_rule_css">;</span></span> <span class="punctuation punctuation_section punctuation_section_property-list punctuation_section_property-list_css">}</span></span></span></pre><br />If you need syntax highlighting for XML or HTML you can modify the ruby2html.rb to use the XML-Converter of the syntax gem.Andi Schackehttp://www.blogger.com/profile/14709071038111082906noreply@blogger.com1