NetManiac

Witold Rugowski on web20 wave with Ruby on Rails

Copy&Paste factory pattern

Posted on May 24, 2008 - Filed Under RubyOnRails

When You take project over, after it being very long time in development, You can find very funny code snippets. Then You understand why project was soooo long in development. It is related rather with developer’s (not so)high skills ;)

One example (and there is more pieces, even better qualified as entry for The Daily WTF). It seems that is perfect example of design pattern known as Copy&Paste factory:

<a href="#">
<% if session[:lang] && session[:lang] == "fr" %><img src="/images/LanguageToolFlags/flag-fr.gif" alt="fr_flag"/><% end -%>
<% if session[:lang] && session[:lang] == "en" %><img src="/images/LanguageToolFlags/flag-gb.gif" alt="gb_flag"/><% end -%>
<% if session[:lang] && session[:lang] == "es" %><img src="/images/LanguageToolFlags/flag-es.gif" alt="es_flag" /><% end -%>
<% if session[:lang] && session[:lang] == "nl" %><img src="/images/LanguageToolFlags/flag-nl.gif" alt="nl_flag" /><% end -%>
<% if session[:lang] && session[:lang] == "it" %><img src="/images/LanguageToolFlags/flag-it.gif" alt="it_flag" /><% end -%>
<% if session[:lang] && session[:lang] == "ru" %><img src="/images/LanguageToolFlags/flag-ru.gif" alt="ru_flag" /><% end -%>
<% if session[:lang] && session[:lang] == "de" %><img src="/images/LanguageToolFlags/flag-de.gif" alt="de_flag" /><% end -%>
 <%=_("Languages") %></a>

Do I have to say, that it was written as a single line :) ?

Now You know why customer had to find someone to finish application (read – rewrite)…

Popularity: 5% [?]

Hits for this post: 2926

Similar Posts

Comments

5 Responses to “Copy&Paste factory pattern”

  1. jarek on May 24th, 2008 15:37

    Good qualified workaholic can kill project in one morning ;) Or produce many WTF per hour.

  2. Sebastian on June 1st, 2008 17:51

    What is answer? own helper?

  3. NetManiac on June 3rd, 2008 23:25

    @Sebastian
    I would start with something like:

    <% if session[:lang] -%>
    <img src="/images/LanguageToolFlags/flag-<%= session[:lang]%>.gif" alt="<%= session[:lang]%>_flag"/>
    <% else -%>
    <%= _("Language") %>
    <% end -%>
    
  4. 2mind - transcedentalne tworzenie oprogramowania» Archiwalia » Refaktoryzacja - wstęp oraz wzorzec copy & paste on June 17th, 2008 6:20

    [...] wklej” w projektach. Abyście nie czuli się samotni polecam lekturę wpisu “Copy & Paste factory pattern” z blogu [...]

  5. Shoulda You abandon Test::Unit? : NetManiac on June 28th, 2008 1:53

    [...] Copy&Paste factory pattern [...]

Leave a Reply