Class: Blacklight::Assets::ImportmapGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Blacklight::Assets::ImportmapGenerator
- Defined in:
- lib/generators/blacklight/assets/importmap_generator.rb
Instance Method Summary collapse
-
#add_javascript_dependencies ⇒ Object
This could be skipped if you want to use webpacker.
- #add_stylesheet ⇒ Object
- #append_blacklight_javascript ⇒ Object
- #bootstrap_4? ⇒ Boolean
- #import_javascript_assets ⇒ Object
Instance Method Details
#add_javascript_dependencies ⇒ Object
This could be skipped if you want to use webpacker
9 10 11 12 |
# File 'lib/generators/blacklight/assets/importmap_generator.rb', line 9 def add_javascript_dependencies gem 'bootstrap', [:'bootstrap-version'].presence # in rails 7, only for stylesheets gem 'jquery-rails' if bootstrap_4? # Bootstrap 4 has a dependency on jquery end |
#add_stylesheet ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/generators/blacklight/assets/importmap_generator.rb', line 48 def add_stylesheet if File.exist? 'app/assets/stylesheets/application.bootstrap.scss' if ENV['CI'] run "yarn add file:#{Blacklight::Engine.root}" else run "yarn add blacklight-frontend@#{Blacklight::VERSION}" end append_to_file 'app/assets/stylesheets/application.bootstrap.scss' do <<~CONTENT @import "blacklight-frontend/app/assets/stylesheets/blacklight/blacklight"; CONTENT end else gem "sassc-rails", "~> 2.1" create_file 'app/assets/stylesheets/blacklight.scss' do <<~CONTENT @import 'bootstrap'; @import 'blacklight/blacklight'; CONTENT end end end |
#append_blacklight_javascript ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/generators/blacklight/assets/importmap_generator.rb', line 32 def append_blacklight_javascript # This may already be present if rails new was invoked with `--css bootstrap' append_to_file 'app/javascript/application.js' do <<~CONTENT import * as bootstrap from "bootstrap" CONTENT end append_to_file 'app/javascript/application.js' do <<~CONTENT import githubAutoCompleteElement from "@github/auto-complete-element" import Blacklight from "blacklight" CONTENT end end |
#bootstrap_4? ⇒ Boolean
73 74 75 |
# File 'lib/generators/blacklight/assets/importmap_generator.rb', line 73 def bootstrap_4? [:'bootstrap-version'].match?(/\A[^0-9]*4\./) end |
#import_javascript_assets ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/generators/blacklight/assets/importmap_generator.rb', line 14 def import_javascript_assets append_to_file 'config/importmap.rb' do <<~CONTENT pin "@github/auto-complete-element", to: "https://cdn.skypack.dev/@github/auto-complete-element" pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.6/dist/umd/popper.min.js" pin "bootstrap", to: "https://ga.jspm.io/npm:bootstrap@#{(defined?(Bootstrap) && Bootstrap::VERSION) || '5.3.2'}/dist/js/bootstrap.js" CONTENT end return unless defined?(Sprockets) append_to_file 'app/assets/config/manifest.js' do <<~CONTENT //= link blacklight/manifest.js CONTENT end end |