module QueryReviewer::ControllerExtensions
Public Class Methods
included(base)
click to toggle source
# File lib/query_reviewer/controller_extensions.rb, line 10 def self.included(base) if QueryReviewer::CONFIGURATION["inject_view"] alias_name = defined?(Rails::Railtie) ? :process_action : :perform_action base.alias_method_chain(alias_name, :query_review) end base.alias_method_chain :process, :query_review base.helper_method :query_review_output end
Public Instance Methods
add_query_output_to_view(total_time)
click to toggle source
# File lib/query_reviewer/controller_extensions.rb, line 32 def add_query_output_to_view(total_time) if request.xhr? if cookies["query_review_enabled"] if !response.content_type || response.content_type.include?("text/html") response.body += "<script type=\"text/javascript\">"+query_review_output(true, total_time)+"</script>" elsif response.content_type && response.content_type.include?("text/javascript") response.body += ";\n"+query_review_output(true, total_time) end end else if !response.instance_eval{ @body.is_a?(File) || @body.is_a?(Enumerator) } && response.body.is_a?(String) && response.body.match(/<\/body>/i) idx = (response.body =~ /<\/body>/i) html = query_review_output(false, total_time) response.body = response.body.insert(idx, html) end end end
perform_action_with_query_review(*args)
click to toggle source
# File lib/query_reviewer/controller_extensions.rb, line 51 def perform_action_with_query_review(*args) Thread.current["query_reviewer_enabled"] = query_reviewer_output_enabled? t1 = Time.now r = defined?(Rails::Railtie) ? process_action_without_query_review(*args) : perform_action_without_query_review(*args) t2 = Time.now add_query_output_to_view(t2 - t1) r end
Also aliased as: process_action_with_query_review
query_review_output(ajax = false, total_time = nil)
click to toggle source
# File lib/query_reviewer/controller_extensions.rb, line 19 def query_review_output(ajax = false, total_time = nil) faux_view = QueryViewBase.new([File.join(File.dirname(__FILE__), "views")], {}, self) queries = Thread.current["queries"] queries.analyze! faux_view.instance_variable_set("@queries", queries) faux_view.instance_variable_set("@total_time", total_time) if ajax js = faux_view.render(:partial => "/box_ajax.js") else html = faux_view.render(:partial => "/box") end end
query_reviewer_output_enabled?()
click to toggle source
@return [Boolean]. Returns whether or not the user has indicated that query_reviewer output is enabled
# File lib/query_reviewer/controller_extensions.rb, line 68 def query_reviewer_output_enabled? cookie_enabled = (CONFIGURATION["enabled"] == true and cookies["query_review_enabled"]) session_enabled = (CONFIGURATION["enabled"] == "based_on_session" and session["query_review_enabled"]) return cookie_enabled || session_enabled end