вторник, 11 сентября 2007 г.

tar и win32

Не ожиданно натолкнулся на проблему с архиватором tar. Оказалось, что версия для win32 не поддерживает сжатие архива gzip-ом! Как натолкнулся - захотел собрать gem из trunk-версии camping. Захожу в каталог, запускаю rake, получаю отлуп. Естественно, возник вопрос - где взять нормальный tar. Оказалось, что нормальной версии tar для win32 просто нет. Тем не менее решение нашлось - bsdtar. Оказалось достаточно переименовать исполнимый модуль в tar и всё заработало.

понедельник, 10 сентября 2007 г.

Markaby fix

Набрался наглости и напрямую залил исправление в markaby svn. Исправил путь к DTD. Посмотрим, как на это отреагирует _why.
На текущий момент получается, что trunk-версия не содержит ошибок мешающих жизни. Единственное, что необходимо для русскоязычного сайта, так это поправить Builder::XChar и переопредилить @@default на нужный манер.

Примерно так:

class Fixnum #:nodoc:
  XChar = Builder::XChar if ! defined?(XChar)

  # XML escaped version of chr (inlines cyrillic unicode range)
  def xchr
   case self when *XChar::VALID
     n = self
     XChar::PREDEFINED[n] or [n].pack 'U'
   else
     '*'
   end
  end
end

module Markaby
  class Builder
   @@default = {
     :indent => 0,
     :output_helpers => true,
     :output_xml_instruction => false, # !
     :output_meta_tag => true,
     :auto_validation => true,
     :tagset => Markaby::XHTMLStrict,
     :root_attributes => { # !
       :xmlns => 'http://www.w3.org/1999/xhtml', :'xml:lang' => 'ru', :lang => 'ru'
     }
   }
  end
end

воскресенье, 9 сентября 2007 г.

rhtml2mab - markaby for Ruby On Rails

Я, помнится, сожалел об отсутствии утилиты html2markaby. Ну, именно такой утилиты до сих пор нет, но нашлась утилита способная облечить труд по переводу rhtml на markaby. Называется mablate. Если на неё накатить исправления описанные у _why, то результатом даже слегка можно пользоваться. Общее впечатление — глюконат кальция. Но лучше чем ничего.
 

воскресенье, 2 сентября 2007 г.

command line и environment

Обнаружил две странные вещи в своей WinXP:

  1. Оказывается, в окружении отсутствует переменная HOME. Ранее как-то не обращал на это внимания, а тут смотрю - в ruby не отрабатывает конструкция File.expand_path('~/.camping.db'). Ругается на невозможность обнаружить эту переменную. Лечится через set home=%homedrive%%homepath%
  2. При работе с командной строкой оказалось, что командный интерпретатор стал понимать ассоциации между ruby-файлами и ruby-интерпретатором. Внезапно ощутил себя в Linux. 8-) Т.е. берешь, например, набираешь в командной строке rv, нажимаешь Tab, имя дополняется до rv_harness.rb, нажимаешь Enter и командный интерпретатор запускает его на выполнение, как будто было набрано ruby rv_harness.rb! В чем дело, непонятно. Ранее такого точно не было. Поизучал список подгружаемых в процесс cmd.exe модулей - ясности не прибавилось.