Sha256: 52a69da0513a3b62787aa67a3c0cb64d0f5599aa2f7bdcb3afc2a92eafc885a5

Contents?: true

Size: 788 Bytes

Versions: 12

Compression:

Stored size: 788 Bytes

Contents

module GraphitiGraphQL
  module Federation
    class FederatedResource
      attr_reader :type_name, :relationships

      def initialize(type_name)
        @type_name = type_name
        @relationships = {}
      end

      def add_relationship(
        kind,
        name,
        local_resource_class,
        foreign_key,
        &blk
      )
        @relationships[name] = FederatedRelationship
          .new(kind, name, local_resource_class, foreign_key)
        if blk
          @relationships[name].instance_eval(&blk)
        end
      end

      def polymorphic?
        @type_name.is_a?(Hash)
      end

      def klass_name
        if polymorphic?
          "I#{@relationships.keys[0].to_s.camelize}"
        else
          @type_name
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
graphiti_graphql-0.1.17 lib/graphiti_graphql/federation/federated_resource.rb
graphiti_graphql-0.1.16 lib/graphiti_graphql/federation/federated_resource.rb
graphiti_graphql-0.1.15 lib/graphiti_graphql/federation/federated_resource.rb
graphiti_graphql-0.1.14 lib/graphiti_graphql/federation/federated_resource.rb
graphiti_graphql-0.1.12 lib/graphiti_graphql/federation/federated_resource.rb
graphiti_graphql-0.1.11 lib/graphiti_graphql/federation/federated_resource.rb
graphiti_graphql-0.1.10 lib/graphiti_graphql/federation/federated_resource.rb
graphiti_graphql-0.1.9 lib/graphiti_graphql/federation/federated_resource.rb
graphiti_graphql-0.1.8 lib/graphiti_graphql/federation/federated_resource.rb
graphiti_graphql-0.1.7 lib/graphiti_graphql/federation/federated_resource.rb
graphiti_graphql-0.1.6 lib/graphiti_graphql/federation/federated_resource.rb
graphiti_graphql-0.1.5 lib/graphiti_graphql/federation/federated_resource.rb