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


User.create! \
  :name => 'Вася',
  :password => '12345',
  :login => 'vasya'

name = first_name +
       last_name +
       middle_name

name = "Sabanin" \
       " Ilya" \
       " Vladimirovich"  
# name => "Sabanin Ilya Vladimirovich" 

array.
  find_all {|e| e.position > 5}.
    map {|e| e.symbol}.
      join('/').
        downcase

6 комментариев:

  1. Strock:

    Кошерней будет все же User.create { :name => 'Вася', :password => '12345', :login => 'vasya', }

    И еще как-то фигово смотрится точка на одной строке, вызов на другой. Лучше блоки разделять, типа array.find do |el| el.something end.map do |el| el.something end.join('/').downcase

  2. Strock:

    Блин, все newline'ы убились. В общем, я имел в виду, что красиво, когда параметром в функцию передается хэш, открывать фигурную скобку на той же строке, что и вызов функции, затем построчно перечислять key => value, индентя пробелами так, чтобы смотрелось ровно вертикально, оставлять запятую после последней пары key => value и закрывать фигурную скобку на следующей строке.

  3. Илья:

    Да мы и не пропагандируем эти методы, мы просто демонстрируем возможности Руби.

  4. Strock:

    Возможности, бесспорно, величайшие )))

  5. UserASD:

    Наврали!

    irb(main):001:0> name = “Sabanin” \ irb(main):002:0* “Ilya” \ irb(main):003:0* “Vladimirovich” => “SabaninIlyaVladimirovich”

    =)

  6. Илья Сабанин:

    Наврали!

    Точно, опечатка вышла :)

Извините, но комментарии для этой статьи уже закрыты.