lib/graphql/schema/interface.rb in graphql-1.10.0.pre1 vs lib/graphql/schema/interface.rb in graphql-1.10.0.pre2

- old
+ new

@@ -5,10 +5,11 @@ include GraphQL::Schema::Member::GraphQLTypeNames module DefinitionMethods include GraphQL::Schema::Member::CachedGraphQLDefinition include GraphQL::Relay::TypeExtensions include GraphQL::Schema::Member::BaseDSLMethods + # ConfigurationExtension's responsibilities are in `def included` below include GraphQL::Schema::Member::TypeSystemHelpers include GraphQL::Schema::Member::HasFields include GraphQL::Schema::Member::HasPath include GraphQL::Schema::Member::RelayShortcuts include GraphQL::Schema::Member::Scoped @@ -19,18 +20,13 @@ # - Added as class methods to all child interfaces def definition_methods(&block) self::DefinitionMethods.module_eval(&block) end - # The interface is visible if any of its possible types are visible + # @see {Schema::Warden} hides interfaces without visible implementations def visible?(context) - context.schema.possible_types(self).each do |type| - if context.schema.visible?(type, context) - return true - end - end - false + true end # The interface is accessible if any of its possible types are accessible def accessible?(context) context.schema.possible_types(self).each do |type| @@ -61,9 +57,14 @@ if !child_class.instance_variable_defined?(:@_definition_methods) defn_methods_module = Module.new child_class.instance_variable_set(:@_definition_methods, defn_methods_module) child_class.const_set(:DefinitionMethods, defn_methods_module) child_class.extend(child_class::DefinitionMethods) + end + child_class.introspection(introspection) + child_class.description(description) + if overridden_graphql_name + child_class.graphql_name(overridden_graphql_name) end elsif child_class < GraphQL::Schema::Object # This is being included into an object type, make sure it's using `implements(...)` backtrace_line = caller(0, 10).find { |line| line.include?("schema/object.rb") && line.include?("in `implements'")} if !backtrace_line