simplify load process
This commit is contained in:
parent
52758797d2
commit
c3223aaacd
|
@ -1,32 +1,18 @@
|
|||
module Kaminari
|
||||
def self.frameworks
|
||||
frameworks = []
|
||||
case
|
||||
when rails? then frameworks << 'rails'
|
||||
when sinatra? then frameworks << 'sinatra/base'
|
||||
when grape? then frameworks << 'grape'
|
||||
end
|
||||
frameworks
|
||||
end
|
||||
end
|
||||
|
||||
def self.load_framework!
|
||||
show_warning if frameworks.empty?
|
||||
frameworks.each do |framework|
|
||||
begin
|
||||
require framework
|
||||
rescue NameError => e
|
||||
raise "Failed to load framework #{framework.inspect}. Have you added it to Gemfile?"
|
||||
end
|
||||
end
|
||||
end
|
||||
# load Rails/Railtie
|
||||
begin
|
||||
require 'rails'
|
||||
rescue LoadError
|
||||
#do nothing
|
||||
end
|
||||
|
||||
def self.show_warning
|
||||
$stderr.puts <<-EOC
|
||||
$stderr.puts <<-EOC if !defined?(Rails) && !defined?(Sinatra) && !defined?(Grape)
|
||||
warning: no framework detected.
|
||||
would you check out if your Gemfile appropriately configured?
|
||||
---- e.g. ----
|
||||
when Rails:
|
||||
gem 'rails'
|
||||
gem 'kaminari'
|
||||
|
||||
when Sinatra/Padrino:
|
||||
|
@ -35,49 +21,18 @@ when Sinatra/Padrino:
|
|||
when Grape:
|
||||
gem 'kaminari', :require => 'kaminari/grape'
|
||||
|
||||
EOC
|
||||
end
|
||||
EOC
|
||||
|
||||
def self.load_kaminari!
|
||||
require 'kaminari/config'
|
||||
require 'kaminari/helpers/action_view_extension'
|
||||
require 'kaminari/helpers/paginator'
|
||||
require 'kaminari/models/page_scope_methods'
|
||||
require 'kaminari/models/configuration_methods'
|
||||
end
|
||||
# load Kaminari components
|
||||
require 'kaminari/config'
|
||||
require 'kaminari/helpers/action_view_extension'
|
||||
require 'kaminari/helpers/paginator'
|
||||
require 'kaminari/models/page_scope_methods'
|
||||
require 'kaminari/models/configuration_methods'
|
||||
require 'kaminari/hooks'
|
||||
|
||||
def self.hook!
|
||||
load_framework!
|
||||
load_kaminari!
|
||||
require 'kaminari/hooks'
|
||||
if rails?
|
||||
require 'kaminari/railtie'
|
||||
require 'kaminari/engine'
|
||||
elsif sinatra?
|
||||
require 'kaminari/sinatra'
|
||||
elsif grape?
|
||||
require 'kaminari/grape'
|
||||
else
|
||||
Kaminari::Hooks.init!
|
||||
end
|
||||
end
|
||||
|
||||
def self.load!
|
||||
hook!
|
||||
end
|
||||
|
||||
private
|
||||
def self.rails?
|
||||
defined?(::Rails)
|
||||
end
|
||||
|
||||
def self.sinatra?
|
||||
defined?(::Sinatra)
|
||||
end
|
||||
|
||||
def self.grape?
|
||||
defined?(::Grape)
|
||||
end
|
||||
# if not using Railtie, call `Kaminari::Hooks.init!` directly
|
||||
if defined? Rails
|
||||
require 'kaminari/railtie'
|
||||
require 'kaminari/engine'
|
||||
end
|
||||
|
||||
Kaminari.load!
|
||||
|
|
|
@ -1,10 +1,4 @@
|
|||
begin
|
||||
require 'grape'
|
||||
rescue LoadError
|
||||
raise LoadError, "couldn't load `grape`, check out if appropriately bundled grape gem?"
|
||||
end
|
||||
|
||||
require 'grape'
|
||||
require 'kaminari'
|
||||
|
||||
Kaminari::Hooks.init!
|
||||
|
||||
|
|
|
@ -6,10 +6,19 @@ module Kaminari
|
|||
::ActiveRecord::Base.send :include, Kaminari::ActiveRecordExtension
|
||||
end
|
||||
|
||||
begin; require 'data_mapper'; rescue LoadError; end
|
||||
if defined? ::DataMapper
|
||||
require 'kaminari/models/data_mapper_extension'
|
||||
::DataMapper::Collection.send :include, Kaminari::DataMapperExtension::Collection
|
||||
::DataMapper::Model.append_extensions Kaminari::DataMapperExtension::Model
|
||||
# ::DataMapper::Model.send :extend, Kaminari::DataMapperExtension::Model
|
||||
end
|
||||
|
||||
begin; require 'mongoid'; rescue LoadError; end
|
||||
if defined? ::Mongoid
|
||||
require 'kaminari/models/mongoid_extension'
|
||||
::Mongoid::Document.send :include, Kaminari::MongoidExtension::Document
|
||||
::Mongoid::Criteria.send :include, Kaminari::MongoidExtension::Criteria
|
||||
::Mongoid::Document.send :include, Kaminari::MongoidExtension::Document
|
||||
end
|
||||
|
||||
ActiveSupport.on_load(:mongo_mapper) do
|
||||
|
@ -18,13 +27,6 @@ module Kaminari
|
|||
::Plucky::Query.send :include, Kaminari::PluckyCriteriaMethods
|
||||
::Plucky::Query.send :include, Kaminari::PageScopeMethods
|
||||
end
|
||||
|
||||
if defined? ::DataMapper
|
||||
require 'kaminari/models/data_mapper_extension'
|
||||
::DataMapper::Collection.send :include, Kaminari::DataMapperExtension::Collection
|
||||
::DataMapper::Model.append_extensions Kaminari::DataMapperExtension::Model
|
||||
# ::DataMapper::Model.send :extend, Kaminari::DataMapperExtension::Model
|
||||
end
|
||||
require 'kaminari/models/array_extension'
|
||||
|
||||
ActiveSupport.on_load(:action_view) do
|
||||
|
|
|
@ -1,13 +1,5 @@
|
|||
begin
|
||||
require 'sinatra/base'
|
||||
rescue LoadError
|
||||
raise LoadError, "couldn't load `sinatra/base`, check out if appropriately bundled sinatra gem?"
|
||||
end
|
||||
|
||||
require 'sinatra/base'
|
||||
require 'kaminari'
|
||||
module Kaminari::Helpers
|
||||
end
|
||||
require 'kaminari/helpers/sinatra_helpers'
|
||||
|
||||
Kaminari::Hooks.init!
|
||||
|
||||
|
|
Loading…
Reference in New Issue