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

    0

    1. 1
    2. 2
    3. 3
    def self
      self
    end

    irb(main):002:0> self
    => main
    irb(main):003:0> self.self
    => main
    irb(main):004:0> # уииииииииииииииииииииииииииииииии
    irb(main):005:0* self.self.self.self.self.self.self.self.self.self.self.self.self.self.self.self.self
    => main

    Stallman, 01 Ноября 2017

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    # как надо укуриться чтобы придумать такой синтаксис? вам не кажется что стрелочка немного не там?
    my_sum = -> (arg1, arg2) {arg1 + arg2}
    
    # тем более что это полный алиас
    my_sum = lambda {|arg1, arg2| arg1 + arg2}
    # нафига?!

    SemaReal, 01 Ноября 2017

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

    +6

    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
    Ruby programmers are very particular about how their for-loops are written and will declare you a bad programmer for simply using this one construct wrong. 
    They went so far as to break the for-each version of looping so that there are problems with using it, forcing you to conform to their culture. Heed my warning that
     you should always use .each and never for-each for fear of being forever branded bad and shunned. Yes, it is as ridiculous as it sounds.
    
    # запишут в пидарасы
    for i in (1..10)
      puts i
    end
    
    # зауважают
    (1..10).each do |i|
      puts i
    end

    SemaReal, 31 Октября 2017

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

    0

    1. 1
    2. 2
    3. 3
    and is the same as && but with lower precedence. They both use short-circuit evaluation.
    
    WARNING: and even has lower precedence than = so you'll want to avoid and always

    SemaReal, 31 Октября 2017

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

    +1

    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
    def with_batched_ids(count, ids)
      if ids.is_a? Array
        if ids.length > 1
          ids.each_slice(count) do |ids|
            yield(ids)
          end
        else
          yield(ids)
        end
      else
        yield(ids)
      end
    end

    Заshitное программирование и просто красивая портянка из yield - end - else. Как на ровном месте придумать целый метод.

    strax, 10 Октября 2017

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    Руби говно на всей Земле
    Руби говно другим во благо
    Не за красивое "спасибо"
    А за хорошее бабло

    inho, 05 Октября 2017

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

    +1

    1. 1
    https://github.com/ruby/ruby/blob/trunk/parse.y

    Как распарсить Руби код.

    wvxvw, 25 Сентября 2017

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

    +1

    1. 1
    2. 2
    3. 3
    def gsubn text
      text.gsub('\n','').gsub('\t','').gsub('\r','').gsub(/\"/,'').gsub('@@@@','. ').gsub("  "," ")
    end

    последний gsub меняет два пробела на один

    ll14m4n, 04 Июля 2017

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    def self.allowed_symbols
      @allowed_symbols ||= (('A'..'Z').to_a + (0..9).to_a).shuffle
    end
    
    def self.forbidden_symbols_regexp
      @allowed_symbols_regexp ||= Regexp.new("[^#{allowed_symbols.join}]")
    end

    Проверка формата промокода

    atipugin, 29 Мая 2017

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

    −137

    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
    begin
          # Это пиздец
          artist_title = row.title.split(/ - /)
          if artist_title.length > 1
            row.artist = artist_title[0]
            row.title  = artist_title[1]
          else
            artist_title = row.title.split(/ — /)
            if artist_title.length > 1
              row.artist = artist_title[0]
              row.title  = artist_title[1]
            else
              artist_title = row.title.split(/ - /)
              if artist_title.length > 1
                row.artist = artist_title[0]
                row.title  = artist_title[1]
              else
                artist_title = row.title.split(/ – /)
                if artist_title.length > 1
                  row.artist = artist_title[0]
                  row.title  = artist_title[1]
                else
                  artist = row.title.match(/\((.*?)\)/)
                  artist = artist.captures[0]
                  # puts artist_title
                  # puts row.title
                  # puts artist
                  row.artist = artist
                  row.title  = row.title.gsub('('+artist+')', '').strip
                end
              end
            end
          end
        rescue
          next
        end

    gerasim13, 21 Июля 2015

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