On 01.11.2008, at 13:12, Alex Dmitriev wrote:
> Буду рад конструктивной критике.
Конструктивно тебя покритикуют другие
персонажи, это скучно -)
Я неконструктивно скажу:
1. Лолкэт и назание в ридми прикольные.
2. Английский язык следует тренировать.
Хотя бы перечитывать писанину на
наличие опечаток, которых там, как
сказок шехерезады, ровно тысяча и одна
штука.
3. Вот такой код: "admin | (product_manager & :pending)"
или "admin | .owner" я бы непозволил писать в
своем проекте. Потому что это ненужное изобретение недоязыка в языке (htt
p://
oleganza.tumblr.com/post/55426373/respect-the-language)
Это относится, наверное, больше к
acl_system2, чем к шерстеволу.
В целом, мне acl_system2 как-то не нужен, под
задачу сейчас не подходит.
А за такое:
<% restrict_to "(admin | moderator) & !blacklist" do %>
<%= link_to "Admin & Moderator only link", :action =>'foo' %>
<% end %>
нужно вырывать ноги. Потому что в их
(caboose) имплементации при каждом
рендеринге вью будет парсится строка
правил. Это исправляется
генерированием кода в какой-нить метод
с именем == хешу строки правил. А их
метод process(logicstring, context) не супербыстрый.
И всех этих проблем бы не было, если бы
правила задавались лямбдой:
proc {|r| (r.admin || r.moderator) && !r.blacklist }
Кстати, оказывается, в MRI не все так
плохо с регэкспами:
5.times{ puts "literal string".object_id }
3718630
3718610
3718590
3718570
3718550
5.times{ puts /literal regexp/.object_id }
3713210
3713210
3713210
3713210
3713210