Rails footnotes. Побачити все.

Rails footnotes — це зручний для користування інструмент, що надає можливості бачити додаткову інформацію про аплікацію під час розробки. Наприклад: змінні контролера, вміст сесії, запити до бази данних, куки, змінні оточення і т.д.
Щоб все це отримати вам не треба ніц, окрім бровзера.

Ви також можете легко розширити його фунціонал своїми індикаторами.

Нажаль за браком часу @josevalim більше не може здійснювати його підстримку. Тому я пропоную свою адаптацію цього гему для Rails 3.

Зміни які було внесено для гему:

  • Плагін перетворено на гем;
  • Виправлено застарілі виклики(deprecations), що використовувались Rails 2.x;
  • Змінено процес завантаження.


Для використання з Rails 3 треба підключити гем в Gemfile

gem 'rails-footnotes',
   :git => 'git://github.com/josevalim/rails-footnotes.git',
   :branch => 'rails3', :group => :development  

створити config/initializers/footnotes.rb

if defined?(Footnotes) & Rails.env.development?    
    Footnotes.run!
    # Код ініціалізаціі гему
  end

такий підхід дозволить вам гнучко підключати гем в різні середовища розробки, а також організувати опціональне підключення. Створити файл .footnotes в корені аплікації

.footnotes

true

І вичитувати його значення та підключати гем або ні. Це може буті корисно коли над проектом працюють кілька розробників і виористовують різні інструменти діагностики.

Можна гнучко керувати кількустю інформації, що пропонує гем і виводити тільки потрібні іникатори
Footnotes::Filter.notes = [:session, :cookies, :params, :filters, :log]


Приклад створення власного індикатора для відображення інформації про поточного користувача системи.
module Footnotes
  module Notes
    class CurrentUserNote < AbstractNote
      # Тут ми отримуємо поточний контроллер 
      #
      def initialize(controller)
        @current_user = controller.instance_variable_get("@current_user")
      end

      # Тут визначається текст, що буде відображатись як назва індикатора
      #
      def title
        "Current user: #{@current_user.name}"
      end

      # Індикатор буде відображено тільки якщо це метод поверне true
      # 
      def valid?; @current_user; end

      # Інформації, що її надає індикатор
      #
      def content
        escape(@current_user.inspect)
      end
    end
  end
end


Ну а на вигляд воно отаке ;-)

Rails Footnotes
Приємних дебагів.

P.S. Побажання та зауваження приймаються.

XHprof - профайлер PHP от Facebook

Профилирование кода позволяет выявить медленные участки в коде, что позволит в случае необходимости устранить их.

Новый PHP профайлер XHprof от компании Facebook — это альтернатива Xdebug (PHP профайлер Xdebug). XHprof был разработан специально для Facebook и начиная с март 2009 года его исходный код стал доступен для скачивания.


( Читати далі )
  • +4
  • 16 грудня 2009, 12:05
  • ingvar
  • 3

Поглиблений дебаг в JavaScript

enAdvanced Debugging with JavaScript

ruПродвинутая отладка в Javascript

uaПоглиблений дебаг в JavaScript

При правильному використанні, дебагери JavaScript допомагають знайти і усунути помилки у вашому коді. Щоб ефективно користуватися дебагером, вам необхідно знати про доступні інструменти, про звичайний робочий процес налагодження в JavaScript і вимоги до коду для його ефективної налагодження. У цій статті ми обговоримо прийоми поглибленого налагодження для знаходження та виправлення помилок, використовуючи типовий веб-додаток.
Читати далі