Skip to content

Commit

Permalink
Properly load railtie and init in Rails 3
Browse files Browse the repository at this point in the history
  • Loading branch information
nesquena committed Feb 19, 2011
1 parent 826a635 commit 64ba3f9
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 12 deletions.
3 changes: 3 additions & 0 deletions lib/query_reviewer.rb
Expand Up @@ -49,3 +49,6 @@ def self.enabled?
require "query_reviewer/controller_extensions" require "query_reviewer/controller_extensions"
require "query_reviewer/sql_query_collection" require "query_reviewer/sql_query_collection"
end end

# Rails Integration
require 'query_reviewer/rails' if defined?(Rails)
34 changes: 34 additions & 0 deletions lib/query_reviewer/rails.rb
@@ -0,0 +1,34 @@
require 'query_reviewer'
require 'rails'

if defined?(Rails::Railtie)
module QueryReviewer
class Railtie < Rails::Railtie
rake_tasks do
load File.dirname(__FILE__) + "/tasks.rb"
end

initializer "query_reviewer.initialize" do
QueryReviewer.inject_reviewer if QueryReviewer.enabled?
end
end
end
else # Rails 2
QueryReviewer.inject_reviewer
end

module QueryReviewer
def self.inject_reviewer
# Load adapters
ActiveRecord::Base
adapter_class = ActiveRecord::ConnectionAdapters::MysqlAdapter if defined? ActiveRecord::ConnectionAdapters::MysqlAdapter
adapter_class = ActiveRecord::ConnectionAdapters::Mysql2Adapter if defined? ActiveRecord::ConnectionAdapters::Mysql2Adapter
adapter_class.send(:include, QueryReviewer::MysqlAdapterExtensions)
# Load into controllers
ActionController::Base.send(:include, QueryReviewer::ControllerExtensions)
Array.send(:include, QueryReviewer::ArrayExtensions)
if ActionController::Base.respond_to?(:append_view_path)
ActionController::Base.append_view_path(File.dirname(__FILE__) + "/lib/query_reviewer/views")
end
end
end
12 changes: 0 additions & 12 deletions rails/init.rb
@@ -1,13 +1 @@
# Include hook code here

require 'query_reviewer' require 'query_reviewer'

if QueryReviewer.enabled?
ActiveRecord::ConnectionAdapters::MysqlAdapter.send(:include, QueryReviewer::MysqlAdapterExtensions)
ActionController::Base.send(:include, QueryReviewer::ControllerExtensions)
Array.send(:include, QueryReviewer::ArrayExtensions)

if ActionController::Base.respond_to?(:append_view_path)
ActionController::Base.append_view_path(File.dirname(__FILE__) + "/lib/query_reviewer/views")
end
end

0 comments on commit 64ba3f9

Please sign in to comment.