...
Just my blog

Blog about everything, mostly about tech stuff I made. Here is the list of stuff I'm using at my blog. Feel free to ask me about implementations.

Soft I recommend
Py lib I recommend

I'm using these libraries so you can ask me about them.

Redmine кривые плагины ч2

Всегда, если что-то не работает, нужно делать --trace Тогда можно будет обнаружить много интересного, например:

root@tet-redmine www/redmine# rake redmine:send_digest RAILS_ENV="production"
rake aborted!
IndexError: string not matched
/var/www/redmine/plugins/redmine_digest/lib/tasks/digest.rake:47:in `[]='
/var/www/redmine/plugins/redmine_digest/lib/tasks/digest.rake:47:in `block (2 levels) in <top (required)>'
Tasks: TOP => redmine:send_digest
(See full trace by running task with --trace)
root@tet-redmine www/redmine# rails -v
Rails 3.2.19

Интересно, что если поправить требования версии с 3 на 3.2 - все непременно заработает! Спасибо автору плагина, что так жестко привязал версии!

require 'rake'
if Rails::VERSION::MAJOR >= 3.2
 require File.expand_path(File.dirname(__FILE__) + "/../../../../redmine/config/environment")
else
 require File.expand_path(File.dirname(__FILE__) + "/../../../../../redmine/config/environment")
end

На этом сюрпризы не заканчиваются:

root@tet-redmine www/redmine# rake redmine:send_digest days=7 RAILS_ENV="production"
rake aborted!
LoadError: cannot load such file -- /var/www/config/environment
...
/var/www/redmine/plugins/redmine_digest/lib/tasks/digest.rake:34:in `<top (required)>'

Оказывается, у нас в плагине в 34 строке что-то не так: require File.expand_path(File.dirname(FILE) + "/../../../../../redmine/config/environment") автор забыл указать абсолютный путь. Теперь все работает!