Sha256: 7e71caccd12fcc76154a7fb558b0a1186404d361725aa3bbba96c82fcc142f47

Contents?: true

Size: 565 Bytes

Versions: 3

Compression:

Stored size: 565 Bytes

Contents

# frozen_string_literal: true

module DevRuby
  class Collection
    attr_reader :page, :per_page, :next_page, :prev_page, :data

    def self.from_response(response:, type:, params:)
      new(data: response.body.map { |attrs| type.new(attrs) },
          page: params[:page],
          per_page: params[:per_page])
    end

    def initialize(data:, page:, per_page:)
      @data = data
      @page = page
      @per_page = per_page
      @next_page = data.count.positive? ? (page + 1) : nil
      @prev_page = page.positive? ? (page - 1) : nil
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dev_ruby-1.0.0 lib/dev_ruby/collection.rb
dev_ruby-0.2.0 lib/dev_ruby/collection.rb
dev_ruby-0.1.2 lib/dev_ruby/collection.rb