← All posts tagged note

yuroker
Rails note всеитакзнают Ruby не забываем, что rake это рубишная утилита, а не рельсовая.
Работает rake по Rakefile в текущей директории, либо по Rakefile в ближайшей директории уровнем выше (т.е. .. ../.. ../../..)
Доки по этому так и не нашел :(,
зато нашел сырцы :) пруф: github.com
yuroker
note dev patterns Ruby еще одна заметка относительно объявлять или нет singleton это:
если у нашего объекта есть состояние — то да, можно. Если же нет — методов класса должно хватить.
yuroker
Rails note Rspec test Очень полезной штукой оказались custom messages for expectations.
Очень часто приходится проверять равенство сразу нескольких полей сразу, как-то так:

[:length, :width, :weight].each{|attr| val1[attr].should == val2[attr] }

то при ошибке в консоле вы увидите что-то вроде:
Failure/Error: [:length, :width, :weight].each{|attr| val1[attr].should == val2[attr] }
expected: 1.0
got: 1.9 (using ==)

то есть нипанятна вообще ничего, какое поле не совпало — хз (диагноз хоть и ясен, но детали неизвестны)

Но можно сделать и красиво, вот так:
[:length, :width, :weight].each{|attr| val1[attr].should eq(val2[attr]), "#{attr} attribute is incorrect #{val1[attr]} != #{val2[attr]}"

тогда консоль нам выдаст красивый, понятный текст вроде:
Failure/Error: [:length, :width, :weight].each{|attr| val1[attr].should eq(val2[attr]), "#{attr} attribute is incorrect #{val1[attr]} != #{val2[attr]}"
width attribute is incorrect 1.5 != 1.2

зы. заодно стало ясно зачем нам == и eq() :)