Sha256: d9b12feb68465941022120df7eb783d97344d1c408264190e6e3d755ca1c25b9

Contents?: true

Size: 1.61 KB

Versions: 103

Compression:

Stored size: 1.61 KB

Contents

# frozen_string_literal: true
require 'rails/generators/base'

module Graphql
  module Generators
    module Core
      def self.included(base)
        base.send(
          :class_option,
          :directory,
          type: :string,
          default: "app/graphql",
          desc: "Directory where generated files should be saved"
        )
      end

      def insert_root_type(type, name)
        log :add_root_type, type
        sentinel = /< GraphQL::Schema\s*\n/m

        in_root do
          if File.exist?(schema_file_path)
            inject_into_file schema_file_path, "  #{type}(Types::#{name})\n", after: sentinel, verbose: false, force: false
          end
        end
      end

      def schema_file_path
        "#{options[:directory]}/#{schema_name.underscore}.rb"
      end

      def create_dir(dir)
        empty_directory(dir)
        if !options[:skip_keeps]
          create_file("#{dir}/.keep")
        end
      end

      def module_namespacing_when_supported
        if defined?(module_namespacing)
          module_namespacing { yield }
        else
          yield
        end
      end

      private

      def schema_name
        @schema_name ||= begin
          if options[:schema]
            options[:schema]
          else
            "#{parent_name}Schema"
          end
        end
      end

      def parent_name
        require File.expand_path("config/application", destination_root)
        if Rails.application.class.respond_to?(:module_parent_name)
          Rails.application.class.module_parent_name
        else
          Rails.application.class.parent_name
        end
      end
    end
  end
end

Version data entries

103 entries across 103 versions & 1 rubygems

Version Path
graphql-2.1.11 lib/generators/graphql/core.rb
graphql-2.0.28 lib/generators/graphql/core.rb
graphql-1.13.21 lib/generators/graphql/core.rb
graphql-2.2.5 lib/generators/graphql/core.rb
graphql-2.2.4 lib/generators/graphql/core.rb
graphql-2.2.3 lib/generators/graphql/core.rb
graphql-2.1.10 lib/generators/graphql/core.rb
graphql-2.2.2 lib/generators/graphql/core.rb
graphql-2.1.9 lib/generators/graphql/core.rb
graphql-2.2.1 lib/generators/graphql/core.rb
graphql-2.2.0 lib/generators/graphql/core.rb
graphql-2.1.8 lib/generators/graphql/core.rb
graphql-2.1.7 lib/generators/graphql/core.rb
graphql-2.1.6 lib/generators/graphql/core.rb
graphql-2.1.5 lib/generators/graphql/core.rb
graphql-2.1.4 lib/generators/graphql/core.rb
graphql-1.13.20 lib/generators/graphql/core.rb
graphql-2.1.3 lib/generators/graphql/core.rb
graphql-2.1.2 lib/generators/graphql/core.rb
graphql-2.1.1 lib/generators/graphql/core.rb