vitaly_kosenko (vitaly_kosenko) wrote,
vitaly_kosenko
vitaly_kosenko

Программирование ради программирования

Редко простые задачки оборачиваются маленькими приключениями, но настройка отладчика RubyOnRails в NetBeans 6.8 как раз из их числа.
Итак, задача: на локальной машине отладить логику RoR приложения, соответствующую url-у www.a.line.ru/site_setup/forum.
Заходим в File → ProjectProperties(...) и видим там поле URL, а прямо под ним замечание в скобках (relative...). Не веря своим глазам, вписываем туда абсолютный адрес и проверяем, что он будет воспринят как относительный, например в нашем случае получится http://localhost:3005/www.a.line.ru/site_setup/forum. Разочаровавшись в NetBeans после пары попыток я пустился в хождения по форумам с целью понять, как избавиться от этого глупого ограничения. Оказалось, что проблему может решить только команда NetBeans, которая уже в курсе и все исправит в новой версии. Не сидеть же сложа руки тем, кому сейчас нужно работать и кого не устраивает один localhost?
Стал просматривать конфигурационные файлы NetBeans и тупо перебирать все пункты меню, чтобы найти хоть какую-то зацепку...И я кое-что нашел!
Во вкладке General пункта Tools → Options есть возможность выбора браузера... Вот если бы был браузер, умеющий подставлять вместо localhost произвольное имя - это бы решило проблему... и почему IE, FireFox и Chrome так делать не научили...
И тут в голове пронеслась мысль: "Ты же программист, возьми и научи". Сел и написал на C#:

using System;
using System.Diagnostics;
using System.Text.RegularExpressions;

namespace browser
{
  class Program
  {
    static void Main(string[] args)
    {
      if (args.Length != 2) return;

      var re = new Regex(@"^(.*?)localhost(.*?)\/([^\/]+)");

      var url = args[0];
      var browser = args[1];

      var m = re.Match(url);

      Func<int,string> f = i => m.Groups[i].Value;

      if (m.Success) url = f(1) + f(3) + f(2);

      Process.Start(
        new ProcessStartInfo(browser, url)
        {
          UseShellExecute = false,
          CreateNoWindow = true
        }
      );
    }
  }
}

Теперь дело за малым:
  • добавляем в Tools → Options новоиспеченный браузер с аргументами {URL} iexplore (к примеру)
  • в File → ProjectProperties(...) пишем site_setup/forum/www.a.line.ru
Tags: netbeans, rubyonrails, Программирование, отладка
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 4 comments