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
turbolinks?()
click to toggle source
# File lib/generators/blacklight/assets_generator.rb, line 72 def turbolinks? @turbolinks ||= application_js.include?('turbolinks') end