Нам нужны твои мозги

Хотите расти как разработчик и найти крутую работу? Не протирайте штаны — займитесь Open Source проектами. Так легче всего попасть в лучшие команды разработчиков и положить себе в резюме настоящий проект, вместо нелепых «примеров кода». Но найти подходящий проект для участия сложно. Начинаются лень и отговорки, а за ними — отсутствие профессионального роста, критики по-настоящему крутых программистов, уныние и застой.

На Cult of Martians мы собираем интересные задачи для современных веб-программистов. Можно выбрать подходящую по сложности, продолжительности и специализации. Задачи не выдуманы «из воздуха» — каждая решает насущную проблему, и решить ее можно через создание нового Open Source проекта или улучшение существующего. Решайте задачи, прокачивайтесь, присылайте решение на оценку. Лучших могут пригласить к себе на работу компании, программистам которых понравится ваше решение.

Бэк: Поддержка Action Policy для гема ckeditor

Для новичков, задача на пару дней

Гем ckeditor позволяет легко и просто интегрировать популярный WYSIWYG текстовый редактор CKEditor в Ruby on Rails приложения.

Данная интеграция в том числе позволяет прикреплять картинки и произвольные файлы к тексту, что требует установки защиты на стороне сервера — авторизации.

Сейчас гем ckeditor предлагает из коробки интеграции с такими библиотеками, как Pundit и CanCanCan. Помимо них в мире Ruby есть ещё один инструмент для авторизации, который набирает популярность, — Action Policy.

Предлагается добавить поддержку Action Policy в гем ckeditor.

Польза: познакомиться с CKEditor и Action Policy, принести пользу Ruby сообществу.

Описание

В итогом варианте интеграция должна работать по аналогии с существующими:

  • Конфигурация:
Ckeditor.setup do |config|
  config.authorize_with :action_policy
end
  • Создание политик:
rails g ckeditor:action_policy

На выходе должны получится политики:

app/policies/ckeditor/picture_policy.rb
app/policies/ckeditor/attachment_file_policy.rb

В интеграции рекомендуется использовать функционал Behaviour, который добавляет необходимые хэлперы в любой Ruby class.

Инструкции по выполнению

  1. Форкнуть проект ckeditor на GitHub.
  2. Реализовать необходимый функционал.
  3. Сделать Pull Request и упомянуть в комментариях @palkan.
  4. Если возникли дополнительные вопросы, то можно создать Draft Pull Request и обсудить их с @palkan.