Pull to refresh

Gem, находящий проблемы в Rails приложении

Reading time 2 min
Views 5.3K
Приветствую, уважаемые хабравчане.
Уже некоторое время вынашиваю идею написания гема, который мог бы находить типичные ошибки при разработке приложений на Ruby On Rails.



Больше всего меня достали:
1. Отсутствие индексов в базе данных на ключи ассоциаций
2. Нахождение дублирующих ключей в файлах локализации
3. Поиск отсутствующих переводов
4. Строки — одинарные и двойные кавычки

Отсутствие индексов в базе данных на ключи ассоциаций




class User < ActiveRecord::Base
  has_many :comments # без индекса на ключ user_id в модели Comment ассоциация будет работать медленнее
...
end

При желании можно будет автоматически добавить недостающие индексы сгенерировав миграцию
def AddIndexToComments < ActiveRecord::Migration
  def change
    add_index :comments, :user_id
  end
end


Нахождение дублирующих ключей в файлах локализации



config/locales/ru.yml
welcome:
  user: Добро пожаловать
...
# ближе к концу файла
welcome:
  user: Здравствуйте

Если мы вызовем данный перевод
I18n.t('welcome.user')
# то получим
"Здравсвуйте"

Что может вызвать недоумение, так как ищем мы обычно сверху-вниз и менять будем только первый перевод, который никак не будет влиять на вывод I18n и даже перезапуск сервера нам не поможет :)

Поиск отсутствующих переводов


%title= t('title') # в файле локализации данный перевод отсутствует, сверху при получении подтверждения от пользователя добавим TODO

Или же можно добавлять в файл локали переводы с текстом TODO для того, чтобы можно было за один раз добавить все отсутствующие переводы.

Строки — одинарные и двойные кавычки


Вывод статистики и автоматическое исправление строк с двойными кавычками на одинарные, которые работают быстрее, так как при выполнении кода не происходит поиск специальных символов внутри строки.
"Welcome" # Превратится в
'Welcome'
# Эта строка останется нетронутой
"Welcome #{name}"


Экспорт


Экспорт отчета в html формат, по умолчанию будет использоваться текстовый режим. Для генерации будет использоваться дополнительный gem, который будет генератором красивого html.

Интересно было бы услышать ваше мнение.
Tags:
Hubs:
+5
Comments 13
Comments Comments 13

Articles