From de33b23adb92090df60cfa5e421900a2f04c20b7 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Sun, 11 Aug 2013 03:08:20 -0700 Subject: [PATCH] Added logger for Rails --- lib/searchkick.rb | 1 + lib/searchkick/logger.rb | 19 +++++++++++++++++++ searchkick.gemspec | 1 + 3 files changed, 21 insertions(+), 0 deletions(-) create mode 100644 lib/searchkick/logger.rb diff --git a/lib/searchkick.rb b/lib/searchkick.rb index fe38fe1..6bdb550 100644 --- a/lib/searchkick.rb +++ b/lib/searchkick.rb @@ -5,6 +5,7 @@ require "searchkick/results" require "searchkick/search" require "searchkick/model" require "searchkick/tasks" +require "searchkick/logger" if defined?(Rails) # TODO find better ActiveModel hook ActiveModel::AttributeMethods::ClassMethods.send(:include, Searchkick::Model) diff --git a/lib/searchkick/logger.rb b/lib/searchkick/logger.rb new file mode 100644 index 0000000..096dbe8 --- /dev/null +++ b/lib/searchkick/logger.rb @@ -0,0 +1,19 @@ +require "tire/rails/logger" +require "tire/rails/logger/log_subscriber" + +class Tire::Rails::LogSubscriber + + # better output format + def search(event) + self.class.runtime += event.duration + return unless logger.debug? + + payload = event.payload + + name = "%s (%.1fms)" % [payload[:name], event.duration] + query = payload[:search].to_s + + debug " #{color(name, YELLOW, true)} #{query}" + end + +end diff --git a/searchkick.gemspec b/searchkick.gemspec index 4d8b4e9..97cd837 100644 --- a/searchkick.gemspec +++ b/searchkick.gemspec @@ -19,6 +19,7 @@ Gem::Specification.new do |spec| spec.require_paths = ["lib"] spec.add_dependency "tire" + spec.add_dependency "tire-contrib" spec.add_development_dependency "bundler", "~> 1.3" spec.add_development_dependency "rake" -- libgit2 0.21.0