Листинг директорий на руби

Было дело, надо в одном проекте выводить список файлов лежащих в определенной директории, с возможностью их скачать, как говориться в натуральную величину. Это был мой первый кусочек кода написанный на ruby, а поскольку rails для меня тогда еще были не доступны, их фишками я не пользовался. Встречайте, чистый ERB:


<%
vendors = Hash.new { |hash, key| hash[key] = Array.new }
Dir.open('public/files').each do |file|

    # Заполняем хэш vendors файлами из директории, перебирая по очереди каждый из них
    next if file[-4..-1] != '.pdf'
    next if file =~ /^..?$/
    file.gsub!('.pdf', '')
    f = file.split(' ')

    # Разбиваем имя файла, получая необходимые логические части Прозводитель и Модель. 
    # Заполняем хэш полученными значениями.

    model = f[-1] # Пробельчик чик-чик
    vendor = f[0..-2].join(' ')
    vendors [vendor] << model
end
%>

<% for v in vendors.keys.sort do %>

<h2><%= v ></h2>
<ul><% for m in vendors[v].sort do %>
<li><a href=”/files/<%= v + ‘ ‘ + m + ‘ .jpg’ %>” target=”_blank”><%= m %>

<% end %>


<% end %> 

2 April 2009

Как видите, на Ruby можно тоже писать коряво, как на PHP 🙂