Class: TrixGenius::Generators::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#add_import_to_application_jsObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/generators/trix_genius/install_generator.rb', line 16

def add_import_to_application_js
  js_application_path = "app/javascript/application.js"
  application_lines = []
  application_lines << "import \"controllers\""
  application_lines << "import \"trix\""
  application_lines << "import \"@rails/actiontext\""

  if File.exists?(js_application_path)
    application_file = File.read(js_application_path)
    update_file application_lines, application_file
  else
    say_status("error", "Could not find #{js_application_path}", :red)
  end

  js_application_controller_path ="app/javascript/controllers/application.js"

  application_controller_lines = []
  application_controller_lines << "import TrixController from \"controllers/trix-controller\""
  application_controller_lines << "application.register(\"trix\", TrixController)"

  if File.exists?(js_application_controller_path)
    application_controller_file = File.read(js_application_controller_path)
    update_file application_controller_lines, application_controller_file
  else
    say_status("error", "Could not find #{js_application_path}", :red)
  end
end

#create_initializerObject



8
9
10
11
12
13
14
# File 'lib/generators/trix_genius/install_generator.rb', line 8

def create_initializer
  initializer "trix_genius.rb", "    TrixGenius.configure do |config|\n      config.deepseek_api_key=ENV['DEEPSEEK_API_KEY']\n    end\n  RUBY\nend\n"

#create_stimulus_controllerObject



44
45
46
# File 'lib/generators/trix_genius/install_generator.rb', line 44

def create_stimulus_controller
  copy_file "trix_genius_controller.js", "app/javascript/controllers/trix_genius_controller.js"
end

#update_file(lines, file_content) ⇒ Object



48
49
50
51
52
53
54
55
56
# File 'lib/generators/trix_genius/install_generator.rb', line 48

def update_file lines, file_content
  lines.each do |line|
    unless application_file.include?(line)
      append_to_file js_application_path, "\n#{line}\n"
    else
      say_status("skipped", "Import already present in application.js", :yellow)
    end
  end
end