Class: TrixGenius::Generators::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#add_import_to_application_jsObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/generators/trix_genius/install/install_generator.rb', line 13

def add_import_to_application_js
  js_application_path = "app/javascript/application.js"
  js_application_path = File.join(destination_root, js_application_path)
  unless File.exist?(js_application_path)
    puts javascript_application_msg 
    say_status("error", "Could not find #{js_application_path}", :red)
  end

  js_application_controller_path = "app/javascript/controllers/application.js"
  js_application_controller_path = File.join(destination_root, js_application_controller_path)
  unless File.exist?(js_application_controller_path)
    puts javascript_application_controller_msg
    say_status("error", "Could not find #{js_application_controller_path}", :red)
  end

  gem_root = File.expand_path("../..", __dir__)
  config_path = File.join("config", "setting_updates.yml")
  FlexibleInjector.start([config_path, destination_root])
end

#add_route_to_routes_fileObject



37
38
39
40
41
42
43
44
45
# File 'lib/generators/trix_genius/install/install_generator.rb', line 37

def add_route_to_routes_file
  route_code = ["",
        "  # TrixGenius: Auto-added route",
        '  post "/trix_genius/correct_spelling", to: "trix_genius#correct_spelling"',
        '  post "trix_genius/calculate_expression", to: "trix_genius#calculate_expression"',
        ""].join("\n")

  inject_into_file File.join(destination_root, "config/routes.rb"), route_code, after: "Rails.application.routes.draw do\n"
end

#create_controllerObject



47
48
49
# File 'lib/generators/trix_genius/install/install_generator.rb', line 47

def create_controller
  template "trix_genius_controller.rb", File.join(destination_root, "app/controllers/trix_genius_controller.rb")
end

#create_initializerObject



9
10
11
# File 'lib/generators/trix_genius/install/install_generator.rb', line 9

def create_initializer
  template "trix_genius.rb", File.join(destination_root, "config/initializers/trix_genius.rb")
end

#create_stimulus_controllerObject



33
34
35
# File 'lib/generators/trix_genius/install/install_generator.rb', line 33

def create_stimulus_controller
  template "trix_genius_controller.js", File.join(destination_root, "app/javascript/controllers/trix_genius_controller.js")
end