From 4b7ea50d423512e7aad7af38afa4598cd7b755ba Mon Sep 17 00:00:00 2001 From: Andy Meneely Date: Mon, 25 Oct 2021 22:32:34 -0400 Subject: [PATCH] Speed up initial require with autoload --- CHANGELOG.md | 3 +++ bin/squib | 1 + lib/squib.rb | 7 +++---- lib/squib/import/xlsx_importer.rb | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e34b8b..2a16647 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,9 @@ Bugs: * Fix frozen string error on `Squib.xlsx` import when stripping newlines is enabled * `save_sheet` works with `rtl` and `trim` altogether properly now. +Chores: +* Added autoloading for various slow-loading libraries, speeding up initial `require` + ## v0.17.1 / 2021-08-11 Bugs: diff --git a/bin/squib b/bin/squib index 033900c..7c4ff82 100755 --- a/bin/squib +++ b/bin/squib @@ -1,4 +1,5 @@ #!/usr/bin/env ruby require 'squib' +require 'squib/commands/cli' Squib::CLI.new.run diff --git a/lib/squib.rb b/lib/squib.rb index ac4c9cf..977386f 100644 --- a/lib/squib.rb +++ b/lib/squib.rb @@ -1,7 +1,7 @@ +autoload :Cairo, 'cairo' +autoload :Pango, 'pango' +autoload :Rsvg, 'rsvg2' require 'logger' -require 'cairo' -require 'pango' -require 'rsvg2' require 'rainbow/refinement' require_relative 'squib/version' require_relative 'squib/commands/cli' @@ -9,7 +9,6 @@ require_relative 'squib/deck' require_relative 'squib/card' require_relative 'squib/system_fonts' - module Squib using Rainbow # we can colorize strings now! diff --git a/lib/squib/import/xlsx_importer.rb b/lib/squib/import/xlsx_importer.rb index a6709bf..c779689 100644 --- a/lib/squib/import/xlsx_importer.rb +++ b/lib/squib/import/xlsx_importer.rb @@ -1,4 +1,4 @@ -require 'roo' +autoload :Roo, 'roo' require_relative 'quantity_exploder' module Squib::Import