Class: RailsQuery::Generators::InstallGenerator

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

Overview

Generator that installs RailsQuery with a provider and example query.

Instance Method Summary collapse

Instance Method Details

#add_autoload_pathObject



39
40
41
42
43
44
# File 'lib/generators/rails_query/install/install_generator.rb', line 39

def add_autoload_path
  inject_into_file "config/application.rb",
                   after: "class Application < Rails::Application\n" do
    "    config.autoload_paths << Rails.root.join('app/providers')\n"
  end
end

#create_directoriesObject



22
23
24
25
26
# File 'lib/generators/rails_query/install/install_generator.rb', line 22

def create_directories
  empty_directory "app/providers"
  empty_directory "app/providers/user"
  empty_directory "app/providers/user/queries"
end

#create_example_queryObject



32
33
34
35
36
37
# File 'lib/generators/rails_query/install/install_generator.rb', line 32

def create_example_query
  template(
    "find_user_query.rb.tt",
    "app/providers/user/queries/find_user_query.rb"
  )
end

#create_initializerObject



13
14
15
16
17
18
19
20
# File 'lib/generators/rails_query/install/install_generator.rb', line 13

def create_initializer
  if File.exist?("config/initializers/rails_query.rb")
    say_status("skipped", "Initializer already exists", :yellow)
  else
    @query_namespace = app_name.underscore
    template "rails_query.rb.tt", "config/initializers/rails_query.rb"
  end
end

#create_providerObject



28
29
30
# File 'lib/generators/rails_query/install/install_generator.rb', line 28

def create_provider
  template "user_provider.rb.tt", "app/providers/user_provider.rb"
end

#show_readmeObject



46
47
48
# File 'lib/generators/rails_query/install/install_generator.rb', line 46

def show_readme
  say "\nRailsQuery installed successfully!", :green
end