bootsnapといえば最近のレイルズでデフォルトでGemfileに書かれることで有名になりましたが、Rubyアプリケーション一般に活用できます。

Lokkaの場合とてもシンプルで、まずGemfileに一行追記してbundleします

--- a/Gemfile
+++ b/Gemfile
@@ -45,6 +45,7 @@ gem 'mimemagic'                                                    
 Dir["public/plugin/lokka-*/Gemfile"].each {|path| eval(open(path) {|f| f.read }) }

 group :production do
+  gem 'bootsnap'                                                                    
   gem 'puma'
   gem 'dm-mysql-adapter', '1.2.0'
 end

あとは公式に書いてある通り、Lokkaで最初に読み込まれる init.rbBundler.setup 直後に設定を書いておけばOKです。

--- a/init.rb                                                       
+++ b/init.rb                                                       
@@ -4,5 +4,18 @@ $:.unshift File.join(File.dirname(__FILE__), 'lib')
 require 'rubygems'                                                 
 require 'bundler'                                                  
 Bundler.setup                                                      
+                                                                   
+require 'bootsnap'                                                 
+env = ENV['RACK_ENV'] || ENV['RAILS_ENV'] || "development"         
+Bootsnap.setup(                                                    
+  cache_dir:            'tmp/cache',                               
+  development_mode:     env == 'development',                      
+  load_path_cache:      true,                                      
+  autoload_paths_cache: true,                                      
+  disable_trace:        true,                                      
+  compile_cache_iseq:   true,                                      
+  compile_cache_yaml:   true                                       
+)                                                                  
+                                                                   
 require 'lokka'                                                    
 I18n.reload!

本サイトのLokkaにも適用してみました。どうでしょうか?

Recent Entries