feedbuilder 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,16 +26,20 @@ module FeedBuilder
26
26
  feed.updated = feed_updated
27
27
  feed.links << Atom::Link.new(:href => url_builder.html_url, :rel => :via, :type => 'text/html')
28
28
  feed.links << Atom::Link.new(:href => url_builder.self_url, :rel => :self, :type => 'application/atom+xml')
29
- if collection.respond_to?(:total_pages) && collection.respond_to?(:current_page)
29
+ if collection.respond_to?(:total_pages) && collection.respond_to?(:current_page) &&
30
+ collection.respond_to?(:per_page)
30
31
  if collection.total_pages > 1
31
- feed.links << Atom::Link.new(:href => url_builder.first_url, :rel => :first)
32
+ feed.links << Atom::Link.new(:href => url_builder.first_url(collection.per_page), :rel => :first)
32
33
  if collection.current_page > 1
33
- feed.links << Atom::Link.new(:href => url_builder.prev_url(collection.current_page), :rel => :previous)
34
+ feed.links << Atom::Link.new(:href => url_builder.prev_url(collection.current_page, collection.per_page),
35
+ :rel => :previous)
34
36
  end
35
37
  if collection.current_page < collection.total_pages
36
- feed.links << Atom::Link.new(:href => url_builder.next_url(collection.current_page), :rel => :next)
38
+ feed.links << Atom::Link.new(:href => url_builder.next_url(collection.current_page, collection.per_page),
39
+ :rel => :next)
37
40
  end
38
- feed.links << Atom::Link.new(:href => url_builder.last_url(collection.total_pages), :rel => :last)
41
+ feed.links << Atom::Link.new(:href => url_builder.last_url(collection.total_pages, collection.per_page),
42
+ :rel => :last)
39
43
  end
40
44
  end
41
45
  collection.each {|model| feed.entries << build_entry(model, &block)}
@@ -16,32 +16,33 @@ module FeedBuilder
16
16
  end
17
17
  end
18
18
  @page_param = options[:page_param] || :page
19
- @page_size_param = options[:page_size_param] || :page_size
19
+ @per_page_param = options[:per_page_param] || :per_page
20
20
  end
21
21
 
22
- def first_url(page_size)
23
- add_params(self_url, @page_param => 1, @page_size_param => page_size)
22
+ def first_url(per_page)
23
+ add_params(self_url, @page_param => 1, @per_page_param => per_page)
24
24
  end
25
25
 
26
- def next_url(current_page, page_size)
27
- add_params(self_url, @page_param => current_page + 1, @page_size_param => page_size)
26
+ def next_url(current_page, per_page)
27
+ add_params(self_url, @page_param => current_page + 1, @per_page_param => per_page)
28
28
  end
29
29
 
30
- def prev_url(current_page, page_size)
31
- add_params(self_url, @page_param => current_page - 1, @page_size_param => page_size)
30
+ def prev_url(current_page, per_page)
31
+ add_params(self_url, @page_param => current_page - 1, @per_page_param => per_page)
32
32
  end
33
33
 
34
- def last_url(total_pages, page_size)
35
- add_params(self_url, @page_param => total_pages, @page_size_param => page_size)
34
+ def last_url(total_pages, per_page)
35
+ add_params(self_url, @page_param => total_pages, @per_page_param => per_page)
36
36
  end
37
37
 
38
38
  def add_params(url, params = {})
39
+ copy = url.dup
39
40
  unless params.empty?
40
41
  qs = params.inject([]) {|m, kv| m << "#{kv[0]}=#{kv[1]}"}
41
- sep = url =~ /\?/ ? '&' : '?'
42
- url << "#{sep}#{URI.escape(qs.join('&'))}"
42
+ sep = copy =~ /\?/ ? '&' : '?'
43
+ copy << "#{sep}#{URI.escape(qs.join('&'))}"
43
44
  end
44
- url
45
+ copy
45
46
  end
46
47
  end
47
48
  end
@@ -1,3 +1,3 @@
1
1
  module FeedBuilder
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feedbuilder
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Brian Moseley