class GraphQL::Upgrader::TypeDefineToClassTransform
Turns `{X} = GraphQL::{Y}Type.define do` into `class {X} < Types::Base{Y}`.
Public Class Methods
new(base_class_pattern: "Types::Base\\3")
click to toggle source
@param base_class_pattern [String] Replacement pattern for the base class name. Use this if your base classes have nonstandard names.
# File lib/graphql/upgrader/member.rb, line 104 def initialize(base_class_pattern: "Types::Base\\3") @find_pattern = /( *)([a-zA-Z_0-9:]*) = GraphQL::#{GRAPHQL_TYPES}Type\.define do/ @replace_pattern = "\\1class \\2 < #{base_class_pattern}" @interface_replace_pattern = "\\1module \\2\n\\1 include #{base_class_pattern}" end
Public Instance Methods
apply(input_text)
click to toggle source
# File lib/graphql/upgrader/member.rb, line 110 def apply(input_text) if input_text.include?("GraphQL::InterfaceType.define") input_text.sub(@find_pattern, @interface_replace_pattern) else input_text.sub(@find_pattern, @replace_pattern) end end