class Blacklight::Assets

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_generator.rb, line 9
def add_javascript_dependencies
  gem 'bootstrap', options[:'bootstrap-version']
  gem 'twitter-typeahead-rails', '0.11.1.pre.corejavascript'
end
add_jquery() click to toggle source

This is not a default in Rails 5.1+

# File lib/generators/blacklight/assets_generator.rb, line 66
def add_jquery
  gem 'jquery-rails'
end
appease_sprockets4() click to toggle source

Remove the empty generated app/assets/images directory. Without doing this, the default Sprockets 4 manifest will raise an exception.

# File lib/generators/blacklight/assets_generator.rb, line 30
def appease_sprockets4
  return if !defined?(Sprockets::VERSION) || Sprockets::VERSION < '4'

  append_to_file 'app/assets/config/manifest.js', "\n//= link application.js"
  empty_directory 'app/assets/images'
end
assets() click to toggle source
# File lib/generators/blacklight/assets_generator.rb, line 37
def assets
  copy_file "blacklight.scss", "app/assets/stylesheets/blacklight.scss"

  # Ensure this method is idempotent
  return if has_blacklight_assets?

  contents = "\n//\n// Required by Blacklight\n"
  contents += "//= require popper\n"
  contents += "// Twitter Typeahead for autocomplete\n"
  contents += "//= require twitter/typeahead\n"
  contents += "//= require bootstrap\n"
  contents += "//= require blacklight/blacklight\n"

  marker = if turbolinks?
             '//= require turbolinks'
           else
             '//= require rails-ujs'
           end

  insert_into_file "app/assets/javascripts/application.js", after: marker do
    contents
  end

  insert_into_file "app/assets/javascripts/application.js", before: '//= require rails-ujs' do
    "//= require jquery3\n"
  end
end
create_sprockets_javascript() click to toggle source

Add sprockets javascript to Rails 6.

# File lib/generators/blacklight/assets_generator.rb, line 15
    def create_sprockets_javascript
      return if Rails.version < '6.0.0'

      create_file 'app/assets/javascripts/application.js' do
        <<~CONTENT
          //= require jquery3
          //= require rails-ujs
          //= require turbolinks
        CONTENT
      end
    end

Private Instance Methods

application_js() click to toggle source
# File lib/generators/blacklight/assets_generator.rb, line 80
def application_js
  IO.read(File.expand_path("app/assets/javascripts/application.js", destination_root))
end
has_blacklight_assets?() click to toggle source
# File lib/generators/blacklight/assets_generator.rb, line 76
def has_blacklight_assets?
  application_js.include?('blacklight/blacklight')
end