feedbuilder 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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