Class: Quail::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Quail::Generators::InstallGenerator
- 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
- #add_route ⇒ Object
- #create_channel ⇒ Object
- #create_controller ⇒ Object
- #create_graphql_directories ⇒ Object
- #create_initializer ⇒ Object
- #create_schema ⇒ Object
Instance Method Details
#add_route ⇒ Object
54 55 56 57 58 |
# File 'lib/generators/quail/install_generator.rb', line 54 def add_route return if [:skip_controller] route 'post "/graphql", to: "graphql#execute"' end |
#create_channel ⇒ Object
44 45 46 47 48 |
# File 'lib/generators/quail/install_generator.rb', line 44 def create_channel return if [:skip_channel] template "graphql_channel.rb.tt", "app/channels/graphql_channel.rb" end |
#create_controller ⇒ Object
38 39 40 41 42 |
# File 'lib/generators/quail/install_generator.rb', line 38 def create_controller return if [:skip_controller] template "graphql_controller.rb.tt", "app/controllers/graphql_controller.rb" end |
#create_graphql_directories ⇒ Object
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_initializer ⇒ Object
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_schema ⇒ Object
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 |