Module: GraphQL::Schema::Member::AcceptsDefinition::AcceptsDefinitionDefinitionMethods Private
- Defined in:
- lib/graphql/schema/member/accepts_definition.rb
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Instance Method Summary collapse
- 
  
    
      #accepts_definition(name)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  private
  
    
- 
  
    
      #accepts_definition_methods  ⇒ Object 
    
    
  
  
  
  
  
  
  
  private
  
    
- 
  
    
      #own_accepts_definition_methods  ⇒ Object 
    
    
  
  
  
  
  
  
  
  private
  
    
Instance Method Details
#accepts_definition(name) ⇒ Object
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.
| 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | # File 'lib/graphql/schema/member/accepts_definition.rb', line 63 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) else if (v = instance_variable_get(ivar_name)) v elsif (ancestor = ancestors.find { |i| i.respond_to?(name) && i != self }) ancestor.public_send(name) else nil end end end end end end | 
#accepts_definition_methods ⇒ Object
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.
| 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | # File 'lib/graphql/schema/member/accepts_definition.rb', line 102 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 ⇒ Object
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.
| 120 121 122 | # File 'lib/graphql/schema/member/accepts_definition.rb', line 120 def own_accepts_definition_methods @own_accepts_definition_methods ||= [] end |