Class: TrixGenius::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- TrixGenius::Generators::InstallGenerator
- Defined in:
- lib/generators/trix_genius/install_generator.rb
Instance Method Summary collapse
- #add_import_to_application_js ⇒ Object
- #create_initializer ⇒ Object
- #create_stimulus_controller ⇒ Object
- #update_file(lines, file_content) ⇒ Object
Instance Method Details
#add_import_to_application_js ⇒ Object
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_initializer ⇒ Object
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_controller ⇒ Object
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 |