Method: GraphQL::Schema::Member::HasFields::InterfaceMethods#fields
- Defined in:
- lib/graphql/schema/member/has_fields.rb
#fields(context = GraphQL::Query::NullContext.instance) ⇒ Hash<String => GraphQL::Schema::Field>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns Fields on this object, keyed by name, including inherited fields.
198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 |
# File 'lib/graphql/schema/member/has_fields.rb', line 198 def fields(context = GraphQL::Query::NullContext.instance) warden = Warden.from_context(context) # Local overrides take precedence over inherited fields visible_fields = {} for ancestor in ancestors if ancestor.respond_to?(:own_fields) ancestor.own_fields.each do |field_name, fields_entry| # Choose the most local definition that passes `.visible?` -- # stop checking for fields by name once one has been found. if !visible_fields.key?(field_name) && (f = Warden.visible_entry?(:visible_field?, fields_entry, context, warden)) visible_fields[field_name] = f.ensure_loaded end end end end visible_fields end |