Sha256: 2a72e60cde77a5a5eb6de1471b3884e9100a9cb5ceaed4657ba26660b3287156

Contents?: true

Size: 1.49 KB

Versions: 97

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true
require 'rails/generators'
require 'rails/generators/named_base'
require_relative 'core'

module Graphql
  module Generators
    # TODO: What other options should be supported?
    #
    # @example Generate a `GraphQL::Schema::RelayClassicMutation` by name
    #     rails g graphql:mutation CreatePostMutation
    class OrmMutationsBase < Rails::Generators::NamedBase
      include Core
      include Rails::Generators::ResourceHelpers

      desc "Create a Relay Classic mutation by name"

      class_option :orm, banner: "NAME", type: :string, required: true,
                         desc: "ORM to generate the controller for"

      class_option 'namespaced_types',
        type: :boolean,
        required: false,
        default: false,
        banner: "Namespaced",
        desc: "If the generated types will be namespaced"

      def create_mutation_file
        template "mutation_#{operation_type}.erb", File.join(options[:directory], "/mutations/", class_path, "#{file_name}_#{operation_type}.rb")

        sentinel = /class .*MutationType\s*<\s*[^\s]+?\n/m
        in_root do
          path = "#{options[:directory]}/types/mutation_type.rb"
          invoke "graphql:install:mutation_root" unless File.exist?(path)
          inject_into_file "#{options[:directory]}/types/mutation_type.rb", "    field :#{file_name}_#{operation_type}, mutation: Mutations::#{class_name}#{operation_type.classify}\n", after: sentinel, verbose: false, force: false
        end
      end
    end
  end
end

Version data entries

97 entries across 97 versions & 1 rubygems

Version Path
graphql-2.1.15 lib/generators/graphql/orm_mutations_base.rb
graphql-1.13.24 lib/generators/graphql/orm_mutations_base.rb
graphql-2.0.32 lib/generators/graphql/orm_mutations_base.rb
graphql-2.1.14 lib/generators/graphql/orm_mutations_base.rb
graphql-2.2.17 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.14 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.13 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.12 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.11 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.10 lib/generators/graphql/orm_mutations_base.rb
graphql-2.2.16 lib/generators/graphql/orm_mutations_base.rb
graphql-2.1.13 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.9 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.8 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.7 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.6 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.5 lib/generators/graphql/orm_mutations_base.rb
graphql-2.0.31 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.2 lib/generators/graphql/orm_mutations_base.rb
graphql-2.3.1 lib/generators/graphql/orm_mutations_base.rb