Permalink
Fetching contributors…
Cannot retrieve contributors at this time
74 lines (63 sloc) 1.43 KB
module Kaminari
def self.frameworks
frameworks = []
case
when rails? then frameworks << 'rails'
when sinatra? then frameworks << 'sinatra/base'
end
frameworks
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
def self.show_warning
$stderr.puts <<-EOC
warning: no framework detected.
would you check out if your Gemfile appropriately configured?
---- e.g. ----
when Rails:
gem 'rails'
gem 'kaminari'
when Sinatra/Padrino:
gem 'kaminari', :require => 'kaminari/sinatra'
EOC
end
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
def self.hook!
load_framework!
load_kaminari!
require 'kaminari/hooks'
if rails?
require 'kaminari/railtie'
require 'kaminari/engine'
elsif sinatra?
require 'kaminari/sinatra'
else
Kaminari::Hooks.init!
end
end
def self.load!
hook!
end
private
def self.rails?
defined?(::Rails)
end
def self.sinatra?
defined?(::Sinatra)
end
end
Kaminari.load!