Skip to content

Commit

Permalink
Merge pull request #2289 from sul-dlss/importmap
Browse files Browse the repository at this point in the history
Switch to importmap and propshaft.
  • Loading branch information
jmartin-sul authored Nov 27, 2023
2 parents 82fc022 + f234d38 commit b49f047
Show file tree
Hide file tree
Showing 9 changed files with 34 additions and 6 deletions.
3 changes: 1 addition & 2 deletions Capfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git

require "capistrano/bundler"
# require "capistrano/rails/assets"
require "capistrano/rails/migrations"
require "capistrano/passenger"
require "capistrano/rails"
require "capistrano/honeybadger"
require "dlss/capistrano"
require 'whenever/capistrano'
Expand Down
2 changes: 2 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ gem 'committee' # Validates HTTP requests/responses per OpenAPI specification
gem 'connection_pool' # Used for redis
gem 'config' # Settings to manage configs on different instances
gem 'honeybadger' # for error reporting / tracking / notifications
gem "importmap-rails", "~> 1.2"
gem 'jbuilder' # Build JSON APIs with ease.
gem 'jwt' # for gating programmatic access to the application
gem 'lograge'
gem 'okcomputer' # ReST endpoint with upness status
gem 'pg' # postgres database
gem 'postgresql_cursor' # for paging over large result sets efficiently
gem 'propshaft', '~> 0.8.0' # asset pipeline
# pry is useful for debugging, even in prod
gem 'pry-byebug' # call 'binding.pry' anywhere in the code to stop execution and get a pry-byebug console
gem 'pry' # make it possible to use pry for IRB
Expand Down
11 changes: 11 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,10 @@ GEM
honeybadger (5.3.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
importmap-rails (1.2.3)
actionpack (>= 6.0.0)
activesupport (>= 6.0.0)
railties (>= 6.0.0)
io-console (0.6.0)
irb (1.9.1)
rdoc
Expand Down Expand Up @@ -289,6 +293,11 @@ GEM
pg (1.5.4)
postgresql_cursor (0.6.8)
activerecord (>= 6.0)
propshaft (0.8.0)
actionpack (>= 7.0.0)
activesupport (>= 7.0.0)
rack
railties (>= 7.0.0)
pry (0.14.2)
coderay (~> 1.1)
method_source (~> 1.0)
Expand Down Expand Up @@ -469,6 +478,7 @@ DEPENDENCIES
druid-tools
factory_bot_rails
honeybadger
importmap-rails (~> 1.2)
jbuilder
jwt
listen (~> 3.7)
Expand All @@ -477,6 +487,7 @@ DEPENDENCIES
okcomputer
pg
postgresql_cursor
propshaft (~> 0.8.0)
pry
pry-byebug
puma
Expand Down
2 changes: 2 additions & 0 deletions app/javascript/application.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Configure your import map in config/importmap.rb. Read more: https://github.com/rails/importmap-rails
import "@hotwired/turbo-rails"
4 changes: 1 addition & 3 deletions app/views/layouts/application.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
<title>SUL - Preservation Catalog</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"></script>
<script type="module">
import hotwiredTurbo from 'https://cdn.skypack.dev/@hotwired/turbo';
</script>
<%= javascript_importmap_tags %>
</head>

<body>
Expand Down
4 changes: 4 additions & 0 deletions bin/importmap
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env ruby

require_relative "../config/application"
require "importmap/commands"
8 changes: 7 additions & 1 deletion config/deploy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
append :linked_files, 'config/database.yml'

# Default value for linked_dirs is []
append :linked_dirs, 'log', 'config/settings', 'tmp/pids'
append :linked_dirs, 'log', 'config/settings', 'tmp/pids', 'vendor/bundle'

set :honeybadger_env, fetch(:stage)

Expand Down Expand Up @@ -52,3 +52,9 @@

set :sidekiq_systemd_role, :worker
set :sidekiq_systemd_use_hooks, true

# configure capistrano-rails to work with propshaft instead of sprockets
# (we don't have public/assets/.sprockets-manifest* or public/assets/manifest*.*)
set :assets_manifests, lambda {
[release_path.join('public', fetch(:assets_prefix), '.manifest.json')]
}
6 changes: 6 additions & 0 deletions config/importmap.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# frozen_string_literal: true

# Pin npm packages by running ./bin/importmap

pin 'application', preload: true
pin '@hotwired/turbo-rails', to: 'turbo.min.js', preload: true
Empty file added vendor/javascript/.keep
Empty file.

0 comments on commit b49f047

Please sign in to comment.