Sha256: 168718ad4e29242a9268e65b81bb54fe767e7cc260bbbdca1093cd0fe41cd61d

Contents?: true

Size: 1.22 KB

Versions: 28

Compression:

Stored size: 1.22 KB

Contents

class Refinery::LinkRenderer < WillPaginate::LinkRenderer
	
	def url_for(page)
		page_one = page == 1
    @url_params = {}
    # page links should preserve GET parameters
    stringified_merge @url_params, @template.params if @template.request.get?
    stringified_merge @url_params, @options[:params] if @options[:params]

    if complex = param_name.index(/[^\w-]/)
      page_param = parse_query_parameters("#{param_name}=#{page}")
      
      stringified_merge @url_params, page_param
    else
      @url_params[param_name] = page_one ? 1 : 2
    end

		url = @template.url_for(@url_params.merge!(@options[:url]||{}).to_options)
		#@options.delete(:url) # no, don't! We want it to use the url every time.
    return url if page_one
    
    if complex
      @url_string = url.sub(%r!((?:\?|&amp;)#{CGI.escape param_name}=)#{page}!, '\1@')
      return url
    else
      @url_string = url
      @url_params[param_name] = 3
      @template.url_for(@url_params).split(//).each_with_index do |char, i|
        if char == '3' and url[i, 1] == '2'
          @url_string[i] = '@'
          break
        end
      end
    end
    # finally!
    @url_string.sub '@', page.to_s
	end
	
private
	
	def param_name
    @options[:param_name].to_s
  end
	
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
refinerycms-0.9.5.13 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.12 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.11 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.10 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.9 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.8 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.7 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.6 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.5 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.4 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.3 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.2 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5.1 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.5 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.4.5 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.4.4 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.4.3 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.4.2 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.4.1 vendor/plugins/refinery/lib/refinery/link_renderer.rb
refinerycms-0.9.4 vendor/plugins/refinery/lib/refinery/link_renderer.rb