Блог пользователя spine
Как определить версию сервис пака под windows
чт, 11/12/2008 - 18:04 — spineЗадача состоит в следующем - операционная система WindowsXP, необходимо из скрипта на Ruby определить версию установленного Service Pack.
Решил путем чтения соответствующего ключа из реестра Windows:
def getServicePackString
Win32::Registry::HKEY_LOCAL_MACHINE.open('SOFTWARE\Microsoft\Windows NT\CurrentVersion') do |reg|
reg_typ, reg_val = reg.read('CSDVersion')
return reg_val
end
end
puts getServicePackString #=> Service Pack 2
Черновик перевода страницы Libraries официального сайта Ruby
ср, 12/11/2008 - 20:59 — spineС недавних пор я вхожу в команду по переводу на русский язык и мне был поручен перевод раздела . Первичный, черновой вариант приведен ниже, приветствуется здравая критика и комментарии к переводу.
Ruby FTP, копирование файла на FTP
чт, 06/11/2008 - 15:06 — spineПонадобилось из Руби скрипта положить файл на FTP Server, вот как я это оформил:
# Устанавливаес соединение с FTP сервером
session = Net::FTP.new( ftp_server, ftp_login, ftp_password )
# Указываем, что файлы надо воспринимать как бинарные
session.binary = true
# Переводим клиента в пассивный режим
session.passive = true
# Перемещаемся в заданный каталог на FTP сервере
files = session.chdir( 'ruby ftp example' )
# Отправляем файл на сервер
session.putbinaryfile('file_name')
# Закрываем соединение
session.close
Возможно кому-то пригодится. net/ftp это стандартный модуль, дополнительных библиотек не требуется.
А ведь Ruby мог быть назван другим именем
чт, 30/10/2008 - 20:37 — spineЗабавный факт тут выяснился, оказывается когда придумывали название для Visual Basic, создателей посетила мысль назвать его Ruby, почему они передумали написано
Сохранение Hash в формате XML и наоборот
ср, 22/10/2008 - 02:38 — spineВместо того что бы тратить время на написание своего собственного метода для конвертирования Hash в XML, воспользуйтесь готовым решением из фрейморка Ruby On Rails. ActiveSupport gem уже располагает всем необходимым функционалом.
Необходимо подключить следующие модули:
require 'active_support'
Для записи Hash в XML:
Для чтения ранее сохраненного Hash из XML:
Удачи!)
Ruby Юнит тесты и Continuous Integration
пт, 17/10/2008 - 11:25 — spineИз коробки с Ruby идет великолепный модуль для написания тестов для ваших программ:
Test::Unit - Ruby Unit Testing Framework
Вот как выглядит самый простой теcт:
class TC_Sample < Test::Unit::TestCase
def test_It
assert( false )
end
end
Результаты выполнения тестов печатаются на экран и по коду возврата можно узнать о том были ли ошибки, этого уже достаточно что бы подцепить запуск тестов к Continuous Integration серверу, например к CruiseControl, веб сайт проекта --
Что можно улучшить?
Деструктор объекта в Ruby (define_finalizer)
ср, 15/10/2008 - 13:53 — spineЗа удаление объектов в Ruby отвечает сборщик мусора. Момент когда будет уничтожен объект не известен, но произойдет это только после того как не останется ни одной ссылки на данный объект. Исходя из этого, прямой поддержки деструктора, в типичном его проявлении, в Ruby нет.
Однако мы можем подписаться на удаление любого объекта посредством метода ObjectSpace#define_finalizer, передав объект класса Proc, который будет вызван после уничтожения объекта.
Вот как мог бы выглядеть деструктор в Ruby
Первый ...))
вт, 14/10/2008 - 22:46 — spineТеперь могу публиковать свои заметки о Ruby Rails, это здорово!
