Sha256: 61d3161261213f1eaddb4c1faf6b153314899db846e8d3b36e168d171256cda7

Contents?: true

Size: 599 Bytes

Versions: 6

Compression:

Stored size: 599 Bytes

Contents

# frozen_string_literal: true

module Pinata
  class Collection
    attr_reader :data, :next_page_token

    def self.from_response(response, key:, type:)
      body = response.body
      new(
        data: body["data"][key].map { |attrs| type.new(attrs) },
        next_page_token: body.dig("data", "next_page_token")
      )
    end

    def initialize(data:, next_page_token:)
      @data = data
      @next_page_token = (next_page_token.nil? || next_page_token.empty?) ? nil : next_page_token
    end

    def empty?
      data.empty?
    end

    def sample
      data.sample
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
pinata-1.0.5 lib/pinata/collection.rb
pinata-1.0.4 lib/pinata/collection.rb
pinata-1.0.3 lib/pinata/collection.rb
pinata-1.0.2 lib/pinata/collection.rb
pinata-1.0.1 lib/pinata/collection.rb
pinata-1.0.0 lib/pinata/collection.rb