Sha256: 014d65e908696bb5f9e52c20a74fa869afa1670c6da4721149a5b9c65d55811e
Contents?: true
Size: 1.58 KB
Versions: 3
Compression:
Stored size: 1.58 KB
Contents
# frozen_string_literal: true module GraphQL class Schema class Member # Shared code for Object and Interface module HasFields # Add a field to this object or interface with the given definition # @see {GraphQL::Schema::Field#initialize} for method signature # @return [void] def field(*args, &block) field_defn = field_class.new(*args, &block) add_field(field_defn) nil end # @return [Hash<String => GraphQL::Schema::Field>] Fields on this object, keyed by name, including inherited fields def fields inherited_fields = (superclass.is_a?(HasFields) ? superclass.fields : {}) # Local overrides take precedence over inherited fields inherited_fields.merge(own_fields) end # Register this field with the class, overriding a previous one if needed # @param field_defn [GraphQL::Schema::Field] # @return [void] def add_field(field_defn) own_fields[field_defn.name] = field_defn nil end # @return [Class] The class to initialize when adding fields to this kind of schema member def field_class(new_field_class = nil) if new_field_class @field_class = new_field_class else @field_class || superclass.field_class end end private # @return [Array<GraphQL::Schema::Field>] Fields defined on this class _specifically_, not parent classes def own_fields @own_fields ||= {} end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
graphql-1.8.0.pre6 | lib/graphql/schema/member/has_fields.rb |
graphql-1.8.0.pre5 | lib/graphql/schema/member/has_fields.rb |
graphql-1.8.0.pre4 | lib/graphql/schema/member/has_fields.rb |