Class: RailsQuery::Generators::MutationGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- RailsQuery::Generators::MutationGenerator
- Defined in:
- lib/generators/rails_query/mutation/mutation_generator.rb
Overview
Generator that creates a provider and mutations based on the provided name and mutation list.
Instance Method Summary collapse
- #add_mutations_to_provider ⇒ Object
- #create_mutation_files ⇒ Object
- #create_mutations_directory ⇒ Object
- #create_provider_directory ⇒ Object
- #create_provider_file ⇒ Object
- #show_usage ⇒ Object
Instance Method Details
#add_mutations_to_provider ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/generators/rails_query/mutation/mutation_generator.rb', line 38 def add_mutations_to_provider provider_path = "app/providers/#{file_name}_provider.rb" return unless File.exist?(provider_path) content = File.read(provider_path) pending_mutations = mutations.reject do |mutation| content.match?(/^\s*mutation\s+:#{Regexp.escape(mutation)}\b/) end return if pending_mutations.empty? inject_into_file provider_path, after: "include RailsQuery::Adapter\n" do pending_mutations.map { |mutation| "\n mutation :#{mutation}\n" }.join end end |
#create_mutation_files ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/generators/rails_query/mutation/mutation_generator.rb', line 26 def create_mutation_files mutations.each do |mutation| @mutation_name = mutation @provider_module = class_name template( "mutation.rb.tt", "app/providers/#{file_name}/mutations/#{mutation}_mutation.rb" ) end end |
#create_mutations_directory ⇒ Object
17 18 19 |
# File 'lib/generators/rails_query/mutation/mutation_generator.rb', line 17 def create_mutations_directory empty_directory "app/providers/#{file_name}/mutations" end |
#create_provider_directory ⇒ Object
13 14 15 |
# File 'lib/generators/rails_query/mutation/mutation_generator.rb', line 13 def create_provider_directory empty_directory "app/providers" end |
#create_provider_file ⇒ Object
21 22 23 24 |
# File 'lib/generators/rails_query/mutation/mutation_generator.rb', line 21 def create_provider_file @provider_module = class_name template "provider.rb.tt", "app/providers/#{file_name}_provider.rb" end |
#show_usage ⇒ Object
55 56 57 |
# File 'lib/generators/rails_query/mutation/mutation_generator.rb', line 55 def show_usage say "\nMutations created successfully!", :green end |