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

    −110

    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
    columns.each do |c|
            case c
            when 'Device'
              h << c
            when 'Usage'
              h << c
            when 'Status'
              h << c
            when 'Battery'
              h << c
            when 'GPS status'
              h << c
            when 'Wi-Fi status'
              h << c
            when 'Temperature'
              h << c
            when 'Alerts'
              h << c
            end
          end

    случайно вот родил )

    Dreamfall, 23 Декабря 2010

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

    −115

    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
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    #!/usr/bin/ruby1.8
    
    require 'mysql'
    $KCODE = 'UTF8'
    
    class Country
      @@country = Array.new
      @@insert_query = String.new
      @@db = Mysql
    
      def initialize(filename)
        file = File.open(filename)
        while !file.eof?
          value, index = file.readline.split(/\s+/u)
          @@country[index.to_i] = value.to_s
        end
        file.close
      end
    
      def database_connect
        @@db = Mysql.new('localhost','username','userpass','userdatabase')
        begin
          @@db.query("SET NAMES utf8")
        rescue
          puts @@db.error
        end
      end
    
      def create_query
        begin
          result = @@db.query("SELECT * FROM table")
        rescue
          puts @@db.error
        end
        result.each_hash do |field|
          @@country.each_index do |index|
          @@insert_query += "UPDATE table SET position = #{index} WHERE caption = '#{field['caption']}';" if @@country[index] == field['caption']
          end
        end
      end
    
      def execute_query
        begin
          @@insert_query.split(/;/u).each { |query| @@db.query(query) }
          puts "result: #{@@db.errno}" if @@db.errno
        rescue
          puts @@db.error
        end
      end
    
      def database_disconnect
        @@db.close
      end
    end
    
    cnt = Country.new('country.txt')
    # connect to DB
    cnt.database_connect
    # construct query
    cnt.create_query
    # execute constructed query
    cnt.execute_query
    # close connect
    cnt.database_disconnect

    Ну можно же как-то сделать лучше?

    avastor, 19 Декабря 2010

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

    −98

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    def non_blank_attrs_amount
        return_value = 4
        return_value = return_value + 1 if (!country.blank?)
        return_value = return_value + 1 if (!address.blank?)
        return_value = return_value + 1 if (!phone.blank?)
        return_value = return_value + 1 if (!email.blank?)
        return_value = return_value + 1 if (!skype.blank?)
        return_value = return_value + 1 if (!site.blank?)
        return_value = return_value + 1 if (!comment.blank?)
        return_value.to_s
      end

    Dreamfall, 13 Декабря 2010

    Комментарии (5)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. 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)
  10. 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)