Class: RailsAuditLog::Generators::Graphql::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- RailsAuditLog::Generators::Graphql::InstallGenerator
- Defined in:
- lib/generators/rails_audit_log/graphql/install/install_generator.rb
Constant Summary collapse
- QUERY_TYPE_PATH =
"app/graphql/types/query_type.rb"- MIXIN =
"RailsAuditLog::Graphql::Queries::AuditLogEntriesQueryMixin"- SCHEMA_PLUGIN =
"RailsAuditLog::Graphql::SchemaPlugin"
Instance Method Summary collapse
Instance Method Details
#inject_mixin ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/generators/rails_audit_log/graphql/install/install_generator.rb', line 16 def inject_mixin if File.exist?(File.join(destination_root, QUERY_TYPE_PATH)) inject_into_file QUERY_TYPE_PATH, " include #{MIXIN}\n", after: /class\s+\S+\s*<\s*\S+\s*\n/ else say "" say "#{QUERY_TYPE_PATH} not found. Add this line manually to your QueryType:", :yellow say " include #{MIXIN}", :green end end |
#inject_schema_plugin ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/generators/rails_audit_log/graphql/install/install_generator.rb', line 28 def inject_schema_plugin schema_files = Dir.glob(File.join(destination_root, "app/graphql/**/*schema*.rb")) if schema_files.any? schema_path = schema_files.first.delete_prefix("#{destination_root}/") inject_into_file schema_path, " include #{SCHEMA_PLUGIN}\n", after: /class\s+\S+\s*<\s*GraphQL::Schema\s*\n/ else say "" say "No schema file found. Add this line manually to your GraphQL::Schema subclass:", :yellow say " include #{SCHEMA_PLUGIN}", :green end end |
#print_next_steps ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/generators/rails_audit_log/graphql/install/install_generator.rb', line 42 def print_next_steps say "" say "Done! Your GraphQL API now has:", :green say " auditLogEntry(id: ID!): AuditLogEntry" say " auditLogEntries(...): [AuditLogEntry!]!" say " auditLogReify(itemType:, itemId:, at:): AuditLogJson" say " auditLogEntriesCount(...): Int!" say "" say "SchemaPlugin applies complexity/depth limits and enables dataloader." say "Override defaults in an initializer:" say " RailsAuditLog::Graphql.max_complexity = 500" say "" say "See the README for full documentation." end |