class Blacklight::Assets::ImportmapGenerator

Public Instance Methods

add_javascript_dependencies() click to toggle source

This could be skipped if you want to use webpacker

# File lib/generators/blacklight/assets/importmap_generator.rb, line 9
def add_javascript_dependencies
  gem 'bootstrap', options[:'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() click to toggle source
# File lib/generators/blacklight/assets/importmap_generator.rb, line 40
      def add_stylesheet
        gem "sassc-rails", "~> 2.1" if Rails.version > '7'

        create_file 'app/assets/stylesheets/blacklight.scss' do
          <<~CONTENT
            @import 'bootstrap';
            @import 'blacklight/blacklight';
          CONTENT
        end
      end
append_blacklight_javascript() click to toggle source
# File lib/generators/blacklight/assets/importmap_generator.rb, line 30
      def append_blacklight_javascript
        append_to_file 'app/javascript/application.js' do
          <<~CONTENT
            import bootstrap from "bootstrap"
            import githubAutoCompleteElement from "@github/auto-complete-element"
            import Blacklight from "blacklight"
          CONTENT
        end
      end
bootstrap_4?() click to toggle source
# File lib/generators/blacklight/assets/importmap_generator.rb, line 51
def bootstrap_4?
  options[:'bootstrap-version'].match?(/\A[^0-9]*4\./)
end
import_javascript_assets() click to toggle source
# 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

        append_to_file 'app/assets/config/manifest.js' do
          <<~CONTENT
            //= link blacklight/manifest.js
          CONTENT
        end
      end