1. Ruby / Говнокод #6567

    −102

    1. 1
    Task.joins(:owners).where(:users => {:id => current_user}).order("tasks.weight DESC").limit(1).first

    intale, 06 Мая 2011

    Комментарии (15)
  2. Ruby / Говнокод #6489

    −102

    1. 1
    2. 2
    3. 3
    def route_match? origin, destination
      origin.iata == origin and destination.iata == destination
    end

    В классе конечно определены методы origin и destination

    rakoth3d, 27 Апреля 2011

    Комментарии (15)
  3. Ruby / Говнокод #6419

    −100

    1. 1
    File.basename(File.basename(name, '.jpg'), '.png')

    Файл либо с расширением .png, либо .jpg

    e2718, 20 Апреля 2011

    Комментарии (4)
  4. Ruby / Говнокод #6418

    −107

    1. 1
    require File.expand_path(File.dirname(__FILE__) + '/../../../../../../usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/connection_adapters/sqlite3_adapter.rb')

    e2718, 20 Апреля 2011

    Комментарии (13)
  5. Ruby / Говнокод #6357

    −97

    1. 1
    hash.to_a.select{|elem| elem[1].map{|st| st.from}.include? state}.map{|elem| elem[1].map{|inner| inner.to}.uniq}.flatten

    e2718, 14 Апреля 2011

    Комментарии (5)
  6. Ruby / Говнокод #6265

    −106

    1. 1
    Dir["#{Rails.root}/lib/**/*"].select { |f| File.directory? f }.join(' ')

    Рекурсивный список каталогов lib проекта Rails.

    e2718, 07 Апреля 2011

    Комментарии (4)
  7. Ruby / Говнокод #6264

    −99

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    Было (плохо):
    
    <% @collection.each_with_index do |item, counter| -%>
      <%= "<div class='group'>" if ((counter)/items_in_block).to_i*items_in_block == (counter) %>
      <%= render :partial => 'item', :locals => { :item => item} %>
      <%= "</div>" if (counter > 0 and (((counter+1)/items_in_block).to_i*items_in_block == (counter+1)) or ((counter+1) == @collection.size)) %>
    <% end -%>
    
    Стало (чуть лучше ;):
    
    <% @collection.in_groups_of(items_in_block).each do |items| %>
      <div class="group">
        <% items.each do |item| %>
          <%= render :partial => 'item', :locals => { :item => item} %>
        <% end %>
      </div>
    <% end %>

    Группировка элементов в группы div'ов.

    e2718, 07 Апреля 2011

    Комментарии (3)
  8. Ruby / Говнокод #6086

    −106

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    # progress bar
    
    width = 60  # width of bar
    com   = 540 # input data
    
    pr = com * 0.01
    i = 0
    j = width
    
    v = 1
    puts
    while pr <= com
    
      print "\r#{v}% [#{"|"*i}#{" "*j}]"
    
      pr += com * 0.01  
    
      i += width * 0.01
      j -= width * 0.01
    
      v += 1  
      
      sleep(0.01)
      
    end
    puts

    Консольный прогресс-бар.

    delmind, 25 Марта 2011

    Комментарии (1)
  9. Ruby / Говнокод #5250

    −104

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    def query(sql)
    		begin
    			@mysql.query(sql)
    		rescue StandardError => err
    			@log.error("Mysql query: '#{sql}\n#{err}'") if @log.class == LoggerHandler
    		end
    	end

    Говнообертка. LoggerHandler - класс, наследующийся от Logger.
    Говнонюанс в том, что Logger.error возвращает true/false в зависимости от того была ли запись в лог успешной, что приводит потом к ошибкам вида NoMethodError: undefined method `each' for true:TrueClass

    govnozmey, 12 Января 2011

    Комментарии (1)
  10. Ruby / Говнокод #5180

    −100

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    N = 5
    $mas = (1..N).to_a
    $c = 0
     
    def generate(l = 0)
        if l == N-1
            for i in 0..N-1 do
                print("#{$mas[i]} ")
            end
            $c += 1; print("\n")
        else
            for i in l..N-1 do
                t = $mas[l]; $mas[l] = $mas[i]; $mas[i] = t;
                generate(l+1)
                t = $mas[l]; $mas[l] = $mas[i]; $mas[i] = t;
            end
        end
        return $c
    end
     
    p generate(0);

    qbasic, 08 Января 2011

    Комментарии (7)