Sha256: 9b1291e85269a4d06ed21570ee7f9ce6f9db3b0b517f5bafe04121ee15376c91

Contents?: true

Size: 923 Bytes

Versions: 1

Compression:

Stored size: 923 Bytes

Contents

# frozen_string_literal: true

module Qismo
  module Model
    class Data < OpenStruct # rubocop:disable Style/OpenStructUse
    end

    class Collection < Array
      def initialize(data, prev_page: nil, next_page: nil, prev_func: -> { nil }, next_func: -> { nil })
        super(data)

        @prev_page = prev_page
        @next_page = next_page
        @prev_func = prev_func
        @next_func = next_func
      end

      def has_next_page?
        @next_page != nil
      end

      alias_method :next_page?, :has_next_page?

      def has_prev_page?
        @prev_page != nil
      end

      alias_method :prev_page?, :has_prev_page?

      def next_page
        @next_func.call
      end

      def prev_page
        @prev_func.call
      end
    end

    class Response
      attr_reader :data, :meta

      def initialize(data, meta = {})
        @data = data
        @meta = meta
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
qismo-0.5.0 lib/qismo/model.rb