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 |