Class: GraphQL::Upgrader::Member
- Inherits:
- 
      Object
      
        - Object
- GraphQL::Upgrader::Member
 
- Defined in:
- lib/graphql/upgrader/member.rb
Defined Under Namespace
Classes: FieldFinder
Constant Summary collapse
- DEFAULT_TYPE_TRANSFORMS =
- [ TypeDefineToClassTransform, MutationResolveProcToMethodTransform, # Do this before switching to class, so we can detect that its a mutation UnderscorizeMutationHashTransform, MutationDefineToClassTransform, NameTransform, InterfacesToImplementsTransform, PossibleTypesTransform, ProcToClassMethodTransform.new("coerce_input"), ProcToClassMethodTransform.new("coerce_result"), ProcToClassMethodTransform.new("resolve_type"), ] 
- DEFAULT_FIELD_TRANSFORMS =
- [ RemoveNewlinesTransform, RemoveMethodParensTransform, PositionalTypeArgTransform, ConfigurationToKwargTransform.new(kwarg: "property"), ConfigurationToKwargTransform.new(kwarg: "description"), ConfigurationToKwargTransform.new(kwarg: "deprecation_reason"), ConfigurationToKwargTransform.new(kwarg: "hash_key"), PropertyToMethodTransform, UnderscoreizeFieldNameTransform, ResolveProcToMethodTransform, UpdateMethodSignatureTransform, RemoveRedundantKwargTransform.new(kwarg: "hash_key"), RemoveRedundantKwargTransform.new(kwarg: "method"), ] 
- DEFAULT_CLEAN_UP_TRANSFORMS =
- [ RemoveExcessWhitespaceTransform, RemoveEmptyBlocksTransform, ] 
Instance Method Summary collapse
- 
  
    
      #initialize(member, skip: SkipOnNullKeyword, type_transforms: DEFAULT_TYPE_TRANSFORMS, field_transforms: DEFAULT_FIELD_TRANSFORMS, clean_up_transforms: DEFAULT_CLEAN_UP_TRANSFORMS)  ⇒ Member 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Member. 
- 
  
    
      #upgrade  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #upgradeable?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
Constructor Details
#initialize(member, skip: SkipOnNullKeyword, type_transforms: DEFAULT_TYPE_TRANSFORMS, field_transforms: DEFAULT_FIELD_TRANSFORMS, clean_up_transforms: DEFAULT_CLEAN_UP_TRANSFORMS) ⇒ Member
Returns a new instance of Member.
| 773 774 775 776 777 778 779 780 | # File 'lib/graphql/upgrader/member.rb', line 773 def initialize(member, skip: SkipOnNullKeyword, type_transforms: DEFAULT_TYPE_TRANSFORMS, field_transforms: DEFAULT_FIELD_TRANSFORMS, clean_up_transforms: DEFAULT_CLEAN_UP_TRANSFORMS) GraphQL::Deprecation.warn "#{self.class} will be removed from GraphQL-Ruby 2.0 (but there's no point in using it after you've transformed your code, anyways)" @member = member @skip = skip @type_transforms = type_transforms @field_transforms = field_transforms @clean_up_transforms = clean_up_transforms end | 
Instance Method Details
#upgrade ⇒ Object
| 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 | # File 'lib/graphql/upgrader/member.rb', line 816 def upgrade type_source = @member.dup should_skip = @skip.new.skip?(type_source) # return the unmodified code if should_skip return type_source end # Transforms on type defn code: type_source = apply_transforms(type_source, @type_transforms) # Transforms on each field: field_sources = find_fields(type_source) field_sources.each do |field_source| transformed_field_source = apply_transforms(field_source.dup, @field_transforms) # Replace the original source code with the transformed source code: type_source = type_source.gsub(field_source, transformed_field_source) end # Clean-up: type_source = apply_transforms(type_source, @clean_up_transforms) # Return the transformed source: type_source end | 
#upgradeable? ⇒ Boolean
| 838 839 840 841 842 843 | # File 'lib/graphql/upgrader/member.rb', line 838 def upgradeable? return false if @member.include? '< GraphQL::Schema::' return false if @member =~ /< Types::Base#{GRAPHQL_TYPES}/ true end |