Sha256: 2a4a13d867bbdf6b28edb25fbf5d9a13db8513631e694c2a0cead21b328f301e
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true module GraphqlRails module Model # Initializes class to define graphql type and fields. class FindOrBuildGraphqlTypeClass require 'graphql_rails/concerns/service' require 'graphql_rails/types/object_type' include ::GraphqlRails::Service def initialize(name:, type_name:, parent_class:, description: nil) @name = name @type_name = type_name @description = description @new_class = false @parent_class = parent_class end def klass @klass ||= Object.const_defined?(type_name) && Object.const_get(type_name) || build_graphql_type_klass end def new_class? new_class end private attr_accessor :new_class attr_reader :name, :type_name, :description, :parent_class def build_graphql_type_klass graphql_type_name = name graphql_type_description = description graphql_type_klass = Class.new(parent_class) do graphql_name(graphql_type_name) description(graphql_type_description) end self.new_class = true Object.const_set(type_name, graphql_type_klass) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
graphql_rails-2.4.0 | lib/graphql_rails/model/find_or_build_graphql_type_class.rb |