class ActionText::Generators::InstallGenerator
Constants
- GEM_ROOT
Public Instance Methods
append_dependencies_to_package_file()
click to toggle source
# File lib/generators/action_text/install/install_generator.rb, line 19 def append_dependencies_to_package_file if (app_javascript_pack_path = Pathname.new("app/javascript/packs/application.js")).exist? js_dependencies.each_key do |dependency| line = %[require("#{dependency}")] unless app_javascript_pack_path.read.include? line say "Adding #{dependency} to #{app_javascript_pack_path}", :green append_to_file app_javascript_pack_path, "\n#{line}" end end else say <<~WARNING, :red WARNING: Action Text can't locate your JavaScript bundle to add its package dependencies. Add these lines to any bundles: require("trix") require("@rails/actiontext") Alternatively, install and setup the webpacker gem then rerun `bin/rails action_text:install` to have these dependencies added automatically. WARNING end end
create_actiontext_files()
click to toggle source
# File lib/generators/action_text/install/install_generator.rb, line 44 def create_actiontext_files template "actiontext.scss", "app/assets/stylesheets/actiontext.scss" copy_file "#{GEM_ROOT}/app/views/active_storage/blobs/_blob.html.erb", "app/views/active_storage/blobs/_blob.html.erb" end
create_migrations()
click to toggle source
# File lib/generators/action_text/install/install_generator.rb, line 51 def create_migrations rails_command "railties:install:migrations FROM=active_storage,action_text", inline: true end
install_javascript_dependencies()
click to toggle source
# File lib/generators/action_text/install/install_generator.rb, line 11 def install_javascript_dependencies rails_command "app:binstub:yarn", inline: true say "Installing JavaScript dependencies", :green run "#{Thor::Util.ruby_command} bin/yarn add #{js_dependencies.map { |name, version| "#{name}@#{version}" }.join(" ")}", abort_on_failure: true, capture: true end
Private Instance Methods
js_dependencies()
click to toggle source
# File lib/generators/action_text/install/install_generator.rb, line 60 def js_dependencies js_package = JSON.load(Pathname.new("#{GEM_ROOT}/package.json")) js_package["peerDependencies"].merge \ js_package["name"] => "^#{js_package["version"]}" end