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