Class: Quail::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/quail/install_generator.rb

Overview

Sets up Quail in a Rails app: schema, controller, channel, initializer, and directories.

Instance Method Summary collapse

Instance Method Details

#add_routeObject



54
55
56
57
58
# File 'lib/generators/quail/install_generator.rb', line 54

def add_route
  return if options[:skip_controller]

  route 'post "/graphql", to: "graphql#execute"'
end

#create_channelObject



44
45
46
47
48
# File 'lib/generators/quail/install_generator.rb', line 44

def create_channel
  return if options[:skip_channel]

  template "graphql_channel.rb.tt", "app/channels/graphql_channel.rb"
end

#create_controllerObject



38
39
40
41
42
# File 'lib/generators/quail/install_generator.rb', line 38

def create_controller
  return if options[:skip_controller]

  template "graphql_controller.rb.tt", "app/controllers/graphql_controller.rb"
end

#create_graphql_directoriesObject



27
28
29
30
31
32
# File 'lib/generators/quail/install_generator.rb', line 27

def create_graphql_directories
  %w[resources mutations queries subscriptions types].each do |dir|
    empty_directory "app/graphql/#{dir}"
    create_file "app/graphql/#{dir}/.keep"
  end
end

#create_initializerObject



50
51
52
# File 'lib/generators/quail/install_generator.rb', line 50

def create_initializer
  template "initializer.rb.tt", "config/initializers/quail.rb"
end

#create_schemaObject



34
35
36
# File 'lib/generators/quail/install_generator.rb', line 34

def create_schema
  template "schema.rb.tt", "app/graphql/#{schema_name.underscore}.rb"
end