Class: Graphql::Generators::TypeGeneratorBase
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Graphql::Generators::TypeGeneratorBase
- Includes:
- Core
- Defined in:
- lib/generators/graphql/type_generator.rb
Direct Known Subclasses
EnumGenerator, InterfaceGenerator, ObjectGenerator, UnionGenerator
Class Method Summary collapse
-
.normalize_type_expression(type_expression, mode:) ⇒ String
Take a type expression in any combination of GraphQL or Ruby styles and return it in a specified output style TODO: nullability / list with
mode: :graphql
doesn't work.
Methods included from Core
#create_dir, #create_mutation_root_type, #insert_root_type, #schema_file_path
Class Method Details
.normalize_type_expression(type_expression, mode:) ⇒ String
Take a type expression in any combination of GraphQL or Ruby styles
and return it in a specified output style
TODO: nullability / list with mode: :graphql
doesn't work
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/generators/graphql/type_generator.rb', line 25 def self.normalize_type_expression(type_expression, mode:) if type_expression.start_with?("!") "!#{normalize_type_expression(type_expression[1..-1], mode: mode)}" elsif type_expression.end_with?("!") "!#{normalize_type_expression(type_expression[0..-2], mode: mode)}" elsif type_expression.start_with?("[") && type_expression.end_with?("]") "types[#{normalize_type_expression(type_expression[1..-2], mode: mode)}]" elsif type_expression.start_with?("types[") && type_expression.end_with?("]") "types[#{normalize_type_expression(type_expression[6..-2], mode: mode)}]" elsif type_expression.end_with?("Type") normalize_type_expression(type_expression[0..-5], mode: mode) elsif type_expression.start_with?("Types::") normalize_type_expression(type_expression[7..-1], mode: mode) elsif type_expression.start_with?("types.") normalize_type_expression(type_expression[6..-1], mode: mode) else case mode when :ruby case type_expression when "Int", "Float", "Boolean", "String", "ID" "types.#{type_expression}" else "Types::#{type_expression.camelize}Type" end when :graphql type_expression.camelize else raise "Unexpected normalize mode: #{mode}" end end end |