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

    −111

    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
    def get_line_from_file(path, line)
      result = nil
    
      File.open(path, "r") do |f|
        while line > 0
          line -= 1
          result = f.gets
        end
      end
    
      return result
    end
    
    get_line_from_file("/tmp/foo.txt", 20)

    (с) stackoverflow.com

    Nakilon, 25 Октября 2010

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

    −155

    1. 1
    2. 2
    3. 3
    4. 4
    @image = (image unless image.nil?) or 
             (Rubygame::Surface.autoload(image_file) unless image_file.nil?) or 
             (Rubygame::Surface.autoload("#{@name}.png") unless @name.nil?) or 
             Rubygame::Surface.new([16, 16])

    (c) http://stackoverflow.com/questions/3690508

    Nakilon, 11 Сентября 2010

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

    −108

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    self.values.each do |v|
          if v.is_a? Hash
            v.recursively_symbolize_keys!
          elsif v.is_a? Array
            v.recursively_symbolize_keys!
          end
    end

    Замечательная логика из одного сниппета :)

    smileart, 10 Сентября 2010

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

    −96

    1. 1
    2. 2
    3. 3
    4. 4
    accounts=[]
    clients_accounts.each_key do |key|
       accounts.push key
    end

    vlad-druzh, 12 Августа 2010

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

    −104

    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
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    i = -1
    ans = threes.map do |s|
      i+= 1
      n = s.to_i
      next if n == 0
      if i == 0
        nums[n]
      elsif i == 1
        # тысячи
        e = n % 10
        d = n % 100
        suff = ok_z[e]
        suff = ok_z[0] if d > 10 and d < 20
        t = nums[n]
        if e == 1 or e == 2 and not (d > 10 and d < 20)
          # один и два перед тысячами меняются.
          # не регексп, чтобы работал и юникод и однобайтные кодировки
          t = " " + t + " "
          t = t.sub(" один "," одна ").sub(" два "," две ")
          t = t[1..99].chop
        end
        t + (n!=0 ? " " : "") + threes_names[i-1] + suff
      else
        e = n % 10
        d = n % 100
        suff = ok_m[e]
        suff = ok_m[0] if d > 10 and d < 20
        nums[n] + (n!=0 ? " " : "") + threes_names[i-1] + suff
      end
    end.reverse.compact.join(" ")
     
    puts ans

    evrial, 08 Августа 2010

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

    −105

    1. 1
    rhour=hour[0].to_s+hour[1].to_s+':'+hour[2].to_s+hour[3].to_s;

    нужна была сортировка по времени, я сначала поубивал : потом надо отобразить в норм виде.. получилось это

    homakov, 01 Августа 2010

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

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    @timestart = MyModel.lastUpdateTime - 1.hour
    
    day = "#{@timestart.day}"
    day = "0#{day}" if day.size<2
    mon = "#{@timestart.mon}"
    mon = "0#{mon}" if mon.size<2
    
    start1 = "'#{@timestart.year}-#{mon}-#{day} #{@timestart.hour}:#{@timestart.min}:#{@timestart.sec}'"
    a = MyModel.find(:all, :conditions=>[ "`datetime` > #{start1}" ]

    без комментариев

    vlad-druzh, 27 Июля 2010

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

    −92

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if html_content.product_id == 11 || html_content.product_id == 8 || html_content.product_id == 15 || html_content.product_id == 20 
      @terms_and_conditions = Page.find(212).contents
    else 
      @terms_and_conditions = Page.find(213).contents  
    end

    paveldruzyak, 09 Июля 2010

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

    −94

    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
    unless cs.blank?
    cs.each do |cc|
    unless cc.nil?
    unless cc['StatsDetail'].nil?
    ccs=cc['StatsDetail']
    ccs=cc['StatsDetail'].to_a
    ccs.each do |cc1|
    cc2=cc1
    ctime = Time.at(cc2.time.to_i).midnight
    c_url_keyword[ctime] = {} if c_url_keyword[ctime].nil?
    k = {:url=>cc2.url, :keyword=>cc2.keyword, um=>0.0}
    c_url_keyword[ctime][k] = {um=>0, :clicks=>0, :id=>cc2.adConditionId} if c_url_keyword[ctime][k].nil?
    c_url_keyword[ctime][k][um]+=cc2.bid.to_f
    c_url_keyword[ctime][k][:clicks]+=1
    end
    end
    end
    end
    end

    что хотелось этим сказать я не помню, а сейчас фиг разберешь

    piroman171, 08 Июля 2010

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

    −92

    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
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    def get_next_line(max_level, current_level, current_line_items)
            next_line_items = []
            result_string = ''
    
            if current_level == 1
                    next_line_items.push(1)
                    result_string = "1\n"
            else
                    current_line_number = false
                    current_line_number_count = 0
                    current_index = 0
    
                    current_line_items.each do |line_number|
                            if current_index == 0
                                    current_line_number = line_number
                                    current_line_number_count = 1
                            else
                                    if line_number == current_line_number
                                            current_line_number_count = current_line_number_count + 1
                                    else
                                            next_line_items.push(current_line_number_count)
                                            next_line_items.push(current_line_number)
    
                                            current_line_number_count = 1
                                            current_line_number = line_number
                                    end
                            end
    
                            if current_index >= current_line_items.length - 1
                                    next_line_items.push(current_line_number_count)
                                    next_line_items.push(current_line_number)
                            end
    
                            current_index = current_index + 1
                    end
    
                    result_string = next_line_items.join(' ') + "\n"
            end
    
            if current_level < max_level
                    result_string = result_string + get_next_line(max_level, current_level + 1, next_line_items).to_s
            end
    
            # return result
            result_string
    end
    
    puts 'Input max level:'
    level = gets
    
    puts ''
    puts get_next_line(level.to_i, 1, [])

    реальное тестовое задание кандитата.
    задача - вывести несколько членов последовательности
    1
    11
    21
    1211
    ....

    malleus, 04 Июня 2010

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