module GraphQL::Schema::Member::AcceptsDefinition::AcceptsDefinitionDefinitionMethods
Public Instance Methods
accepts_definition(name)
click to toggle source
# File lib/graphql/schema/member/accepts_definition.rb, line 62 def accepts_definition(name) own_accepts_definition_methods << name ivar_name = "@#{name}_args" if self.is_a?(Class) define_singleton_method(name) do |*args| if args.any? instance_variable_set(ivar_name, args) end instance_variable_get(ivar_name) || (superclass.respond_to?(name) ? superclass.public_send(name) : nil) end define_method(name) do |*args| if args.any? instance_variable_set(ivar_name, args) end instance_variable_get(ivar_name) end else # Special handling for interfaces, define it here # so it's appropriately passed down self::DefinitionMethods.module_eval do define_method(name) do |*args| if args.any? instance_variable_set(ivar_name, args) end instance_variable_get(ivar_name) || ((int = interfaces.first { |i| i.respond_to?()}) && int.public_send(name)) end end end end
accepts_definition_methods()
click to toggle source
# File lib/graphql/schema/member/accepts_definition.rb, line 94 def accepts_definition_methods inherited_methods = if self.is_a?(Class) superclass.respond_to?(:accepts_definition_methods) ? superclass.accepts_definition_methods : [] elsif self.is_a?(Module) m = [] ancestors.each do |a| if a.respond_to?(:own_accepts_definition_methods) m.concat(a.own_accepts_definition_methods) end end m else self.class.accepts_definition_methods end own_accepts_definition_methods + inherited_methods end
own_accepts_definition_methods()
click to toggle source
# File lib/graphql/schema/member/accepts_definition.rb, line 112 def own_accepts_definition_methods @own_accepts_definition_methods ||= [] end