Sha256: 595d265dac2544d2694305be7466a80af6b5908178e5d607bf51d3d311ac3b58

Contents?: true

Size: 882 Bytes

Versions: 7

Compression:

Stored size: 882 Bytes

Contents

module Ecoportal
  module API
    class GraphQL
      module Logic
        class Connection < Ecoportal::API::GraphQL::Base::Model
          class GenericNode
            def initialize(*_args, **_kargs)
              raise "Missuse error. You should define a node_class for a class that inherits from GraphqlConnection class."
            end
          end

          include Enumerable

          class_resolver :node_class, GenericNode

          passthrough :edges
          passthrough :totalCount
          embeds_many :nodes, klass: :node_class
          embeds_one :pageInfo, klass: Ecoportal::API::GraphQL::Base::PageInfo

          def empty?
            count < 1
          end

          def each(&block)
            return to_enum(:each) unless block
            nodes.each(&block)
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ecoportal-api-graphql-0.4.3 lib/ecoportal/api/graphql/logic/connection.rb
ecoportal-api-graphql-0.4.2 lib/ecoportal/api/graphql/logic/connection.rb
ecoportal-api-graphql-0.4.1 lib/ecoportal/api/graphql/logic/connection.rb
ecoportal-api-graphql-0.4.0 lib/ecoportal/api/graphql/logic/connection.rb
ecoportal-api-graphql-0.3.16 lib/ecoportal/api/graphql/logic/connection.rb
ecoportal-api-graphql-0.3.15 lib/ecoportal/api/graphql/logic/connection.rb
ecoportal-api-graphql-0.3.14 lib/ecoportal/api/graphql/logic/connection.rb