2009-09-22 4 views
4

Im используя камень для мышления сфинкса:Как я включаю Capistrano мышления Sphinx задачи при использовании жемчужины

sudo gem install freelancing-god-thinking-sphinx \ 
    --source http://gems.github.com 

Итак:

require 'vendor/plugins/thinking-sphinx/recipes/thinking_sphinx' 

prescribed on the website Что не работает.

Как я могу включить в свой файл deploy.rb capistrano мышление sphinx при использовании драгоценного камня?

EDIT

Добавление: require 'thinking_sphinx/deploy/capistrano'

дает мне:

 
/usr/lib/ruby/gems/1.8/gems/freelancing-god-thinking-sphinx-1.1.12/lib/thinking_sphinx/deploy/capistrano.rb:1: undefined method `namespace' for main:Object (NoMethodError) 
     from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
     from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' 
     from /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.8/lib/capistrano/configuration/loading.rb:152:in `require' 

+0

Gem или плагин ?? – khelll

ответ

5

Простой запрос, как определено в другом ответе - thinking_sphinx/deploy/capistrano - должен работать. Если это не так, вы видите ошибки? Какую версию драгоценного камня вы используете?

Если это не удастся, попробуйте sudo gem update, если ваши драгоценные камни старые.

+0

Пат, большое спасибо за то, что уделил тебе время, я все равно получаю сообщение об ошибке (используя колпачок 2.5.8 и сфинкс 1.1.12). Я положил полный логин в свой ответ –

+0

OK, * sudo gem update * fixed whatever у меня было. Спасибо за вашу помощь и за потрясающую библиотеку. (Надеюсь, вы не возражаете, что я отредактировал это в вашем ответе) –

+0

Совсем нет, до тех пор, пока у вас это получилось :) Я не думаю, что задачи в шапке были там в 1.1.12 (может быть , это было несколько месяцев), так что это было почти наверняка причиной. – pat

0

Как насчет:

require 'vendor/plugins/thinking_sphinx/lib/thinking_sphinx/deploy/capistrano' 
1

Вы говорите об установке драгоценный камень, а затем требуя плагин. Вы пытались установить плагин версию Thinking Sphinx?

EDIT: Я говорю слишком быстро, четко. Рецепты развертывания находятся в lib/thinking_sphinx/deploy/capistrano. Попробуйте require 'thinking_sphinx/deploy/capistrano', и у вас должен быть доступ к рецептам развертывания - в тестовом проекте я просто бросил это в свой Rakefile, и у меня есть к ним доступ.

На новом проекте, я поставил следующий в моих Capfile:

load 'deploy' if respond_to?(:namespace) # cap2 differentiator 
Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) } 
load 'config/deploy' 
require 'thinking_sphinx/deploy/capistrano' 

Когда я шапка -T, я вижу задачи Капистрано thinking_sphinx. Я думаю, что я написал выше, потому что у меня установлен плагин./меня пахнет собой.

+0

Да, что не удалось –

+0

Хмм, я дважды проверю, не сделал ли я что-то по-другому. – theIV

+0

Хорошо, обновление sudo gem исправлено, какой бы беспорядок у меня не было –

3

@Khelll: не могли бы вы прочитать тему? Вы вставляете код для использования TS в качестве плагина.

Как Gem вы должны использовать:

require 'thinking_sphinx/deploy/capistrano' 

Это прекрасно работает.

Следует также изменить задачи Capistrano, упомянутые на сайте, чтобы отразить новый до и после обратных вызовов от Capistrano, чтобы избавиться от устаревания уведомления:

before "deploy:update_code", "thinking_sphinx:stop" 
after "deploy:symlink", "symlink_sphinx_indexes" 
after "deploy:symlink", "thinking_sphinx:configure" 
after "deploy:symlink", "thinking_sphinx:start" 
+0

Это именно то, что я искал, за одним исключением: мне нужно было изменить последние 3 строки (после «deploy: update_code») на «after» deploy: symlink «'. В противном случае current_path по-прежнему относится к старому каталогу. – carpeliam