1. 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) RSS

    • Я пока это читал — думаю, выучил ruby. Спасибо :-)
      Ответить
    • Быстрей комментируйте, пока komprenda не вернулся со школы и не въебал всем по минусу.
      Ответить
    • Ruby не изучал, но осуждаю. Не нравится первая строка (в которой комментарий для оболочки). Вдруг на машине не окажется ruby1.8, а окажется другая, но совместимая, версия?
      Ответить
      • Я думаю, это пустяк с #! можно выполнять как
        $ ruby country.rb
        и тогда будет учтен дефолтный интерпретатор, а если
        $ ./country.rb
        тогда уже тот что в #!

        Я уже заметил, что в строчку 31 нужно было указать
        result = @@db.query("SELECT `caption` FROM table")
        так как мне нужен только заголовок
        Ответить
      • показать все, что скрытоЕбанутый у этого Ruby синтаксис какой-то, излишне избыточный, Python красивее
        Ответить
        • Как ты смеешь пропускать уроки?!
          Ответить
          • показать все, что скрыто??? может быть творожка подзалупного со сметанкой покушаешь?
            Ответить
          • хм, а ведь действительно пора внедрять воскресные школы на просторах засиженного школьниками совка. там специально подготовленный поп, вооруженный священным паникадилом и prist's staff +3 будет отвлекать из интернетов малолетних долбоебов рассказами о непорочных залётах и resurrectах и flood control

            crossposted to: orthodox.ru
            Ответить
      • Не существует.
        Ответить
    • Да это же PHP!

      Зачем писать такое на Ruby?
      Ответить

    Добавить комментарий