lib/acfs/collections/paginatable.rb in acfs-1.0.0.dev.1.b305 vs lib/acfs/collections/paginatable.rb in acfs-1.0.0

- old
+ new

@@ -1,17 +1,16 @@ module Acfs::Collections - # module Paginatable extend ActiveSupport::Concern included do - def self.operation(action, opts = {}, &block) + def self.operation(_action, opts = {}, &_block) opts[:url] end - attr_reader :total_pages, :current_page + attr_reader :total_pages, :current_page, :total_count end def process_response(response) setup_params response.request.params if response.request setup_headers response.headers @@ -32,16 +31,13 @@ def last_page(&block) page 'last', &block end def page(rel, &block) - if relations[rel] - @resource_class.all nil, url: relations[rel], &block - else - # raise ArgumentError.new "No relative page `#{rel}'." - nil - end + return unless relations[rel] + + @resource_class.all nil, url: relations[rel], &block end private def relations @@ -51,16 +47,20 @@ def setup_headers(headers) if headers['X-Total-Pages'] @total_pages = Integer(headers['X-Total-Pages']) end + if headers['X-Total-Count'] + @total_count = Integer(headers['X-Total-Count']) + end + setup_links headers['Link'] if headers['Link'] end def setup_links(links) links.split(/,\s+/).each do |link| if link =~ /^\s*<([^>]+)>.*\s+rel="([\w_-]+)".*$/ - relations[$2] = $1 + relations[Regexp.last_match[2]] = Regexp.last_match[1] end end end def setup_params(params)