пятница, 4 сентября 2009 г.

Генераия word-документов.

В первом посте я говорил, что у меня не получилось менять стиль для вновь вставляемого текста. Оказывается, сделать это все же можно:

document.Bookmarks("bookmark").Select
word.Selection.Font.Size = 22
word.Selection.TypeText("Hi, Jack!")


Оказалось вот так просто!

За это время у меня так же появился относительно удобный способ разработки.
Просто открываем ворд, включаем запись макроса, выполняем необходимое вам автоматизировать действие. Далее открываем макрос, там код на VBA. Берем и переводи его на руби. Дело сделано! Если какие-то параметры вам не понятны - открываем msdn help, выбираем office и удовлетворяемся с помощью него. Весело проведете время, я вам обещаю :)
Кстати, если вы собрались заниматься серверной автоматизацией рекомендую ознакомиться
http://support.microsoft.com/?scid=kb%3Bru%3B257757&x=6&y=14

Если msdn у вас нет - идем в интернет
http://msdn.microsoft.com/ru-ru/default.aspx

вторник, 1 сентября 2009 г.

Синтаксическая глазурь для возвращаемого значенияс в Ruby

Мне всегда нравился Ruby своим "человеко подобным" синтаксисом.
Но была одна вещь, которую пальцы всегда отказывались писать.
Это код вида

def ugly
results = {}

[:x, :y, :z].each do |letter|
results[letter] = rand(100)
end

results
end



Не по-рубически это как то :).
Оказывается DHH о нас позаботился и в active support есть такая приятная штучка returning.

def sexy
returning({}) do |results|
[:x, :y, :z].each do |letter|
results[letter] = rand(100)
end
end
end


Другого названия кроме как секси и не подберешь :)
Да, и не пытайтесь это использовать не с ссылочными типами - ничего не выйдет.
Ибо выглядит returrning следующим образом

# File vendor/rails/activesupport/
#lib/active_support/core_ext/object/misc.rb, line 27
def returning(value)
yield(value)
value
end