Skip to content

Commit

Permalink
w00t added real/full Merb support
Browse files Browse the repository at this point in the history
  • Loading branch information
mattetti authored and mislav committed Nov 9, 2008
1 parent 5e165ef commit 16d2762
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 2 deletions.
1 change: 1 addition & 0 deletions lib/will_paginate.rb
Expand Up @@ -42,4 +42,5 @@ def self.enable_named_scope(patch = true)
Merb::AbstractController.send(:include, WillPaginate::ViewHelpers::Base)
adapter = { :datamapper => 'data_mapper', :activerecord => 'active_record' }[Merb.orm]
require "will_paginate/finders/#{adapter}"
require 'will_paginate/view_helpers/merb_renderer_ext'
end
2 changes: 2 additions & 0 deletions lib/will_paginate/view_helpers/base.rb
Expand Up @@ -18,6 +18,8 @@ module Base
# * <tt>:param_name</tt> -- parameter name for page number in URLs (default: <tt>:page</tt>)
# * <tt>:params</tt> -- additional parameters when generating pagination links
# (eg. <tt>:controller => "foo", :action => nil</tt>)
# * <tt>:base_url</tt> -- specify the action url, the helper will only add the page # attribute
# to the url
# * <tt>:renderer</tt> -- class name, class or instance of a link renderer (default:
# <tt>WillPaginate::LinkRenderer</tt>)
# * <tt>:page_links</tt> -- when false, only previous/next links are rendered (default: true)
Expand Down
6 changes: 4 additions & 2 deletions lib/will_paginate/view_helpers/link_renderer.rb
Expand Up @@ -90,7 +90,7 @@ def url(page)
url_params = @base_url_params.dup
add_current_page_param(url_params, page)

generate_url(url_params)
generate_url(url_params, page)
end

def default_url_params
Expand Down Expand Up @@ -123,7 +123,9 @@ def get_request?
@template.request.get?
end

def generate_url(params)
# Url generation method
# it's being overwritten by merb_renderer_ext
def generate_url(params, page)
@template.url(params)
end

Expand Down
18 changes: 18 additions & 0 deletions lib/will_paginate/view_helpers/merb_renderer_ext.rb
@@ -0,0 +1,18 @@
module WillPaginate
module ViewHelpers
class LinkRenderer < LinkRendererBase

# Overwrite the default generate_url method so will_paginate
# can handle merb nested urls
def generate_url(params, page)
if @options[:base_url]
"#{@options[:base_url]}?page=#{page}"
else
# soon to be replaced by @template.url(:this, :page => page)
@template.url(@template.request.route.name, @template.request.params.except(:action, :controller).merge(:page => page))
end
end

end
end
end

0 comments on commit 16d2762

Please sign in to comment.