Скорая помощь

8 октября 2008 03:40 | Ссылка | Комментарии (1)

В этом посте я расскажу какие справочные системы по Ruby и Rails (и не только) доступны разработчикам в Интернете.

* * *

Выбираем хостинг

13 октября 2008 01:36 | Ссылка | Комментарии (2)
Rack

Тема поиска хостинга, на котором нестрашно будет разместить свой сайт, является одной из самых больных тем для любого разработчика. Я не раз и не два видел (да и вы я тоже думаю замечали) на форумах посты с просьбой подсказать наилучший хостинг для сайта. Надеюсь что в скором времени количество таких постов поубавиться т.к. на горизонте появился сервис который поможет справиться с этой проблемой.

* * *

Получаем exit code в net-ssh

26 октября 2008 21:23 | Ссылка | Комментарии (0)
Exit Code in net-ssh

Получение кода завершения команды в net-ssh задача не сложная, но с первого взгляда интуитивно не очевидная (т.к. методы которые выполняют команду не возвращают его, так же нет свойств через которое этот код был бы доступен). Чтобы всё таки получить код завершения команды надо опуститься на уровень ниже.

Для этого потребуется открыть канал и выполнить команду в контексте этого канала и уже после этого из канала можно извлечь информацию о коде завершения. Выглядит это вот так:

Net::SSH.start("host", "login", :password => "password") do | ssh |
  ssh.open_channel do | ch |
    ch.exec("[ -d #{directory} ]") do | ch, success |
      ch.on_request("exit-status") do | ch, data |
        exit_code = data.read_long
      end
    end
  end
end
* * *

Вывод информации в виде N колонок

8 ноября 2008 00:03 | Ссылка | Комментарии (1)

Нашёл ещё один повод для восхищения Ruby :) Потребовалось мне расположить несколько записей из таблицы с товарами в виде небольшой таблицы размером две на три ячейки т.е. чтобы получился примерно такой результат:

Таблица с товарами которая мне нужна
Таблица с товарами которая мне нужна

Понятно что получить 6 записей из таблицы не проблема, но вот как их сгруппировать по две на ряд чтобы облегчить создание разметки? Я уже было приготовился писать велосипед, но тем не менее меня одолели сомнения: не может быть такого чтобы в Ruby или Rails не было бы какого-нибудь вспомогательного метода который бы умел группировать записи из массива или по крайней мере делать что-то подобное. И сомнения были не напрасными, буквально через несколько минут я наткнулся на метод #each_slice который делал всю грязную работу. Осталось лишь подключить библиотеку require ‘enumerator’ в контроллере и написать примерно такой код:

<table cellpadding="0" cellspacing="0">
  <% @products.each_slice(2) do | product_row | %>
    <tr>
      <% product_row.each do | product | %>
        <td>
          <%= render :partial => 'product', :locals => {:product => product} %>
        </td>
      <% end %>
    </tr>
  <% end %>
</table>

Таким вот образом Ruby сэкономил мне пол часа времени :)

P.S.

Камень в сторону noobkit.com: noobkit.com почему то считает что такого метода не существует.

* * *