Class: Jekyll::Terser::JSFile
- Inherits:
-
StaticFile
- Object
- StaticFile
- Jekyll::Terser::JSFile
- Defined in:
- lib/jekyll-terser.rb
Instance Method Summary collapse
- #destination(dest) ⇒ Object
-
#initialize(site, base, dir, name, terser = nil) ⇒ JSFile
constructor
A new instance of JSFile.
- #write(dest) ⇒ Object
Constructor Details
#initialize(site, base, dir, name, terser = nil) ⇒ JSFile
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/jekyll-terser.rb', line 19 def initialize(site, base, dir, name, terser = nil) super(site, base, dir, name) @site = site @base = base @dir = dir @name = name = site.config.dig('jekyll-terser', 'terser_opts') || {} if terser.nil? @terser = terser || ::Terser.new(.transform_keys(&:to_sym)) end |
Instance Method Details
#destination(dest) ⇒ Object
30 31 32 |
# File 'lib/jekyll-terser.rb', line 30 def destination(dest) File.join(dest, @dir, @name) end |
#write(dest) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/jekyll-terser.rb', line 34 def write(dest) dest_path = destination(dest) return false if File.exist?(dest_path) && !modified? ModTime.mtimes[path] = mtime FileUtils.mkdir_p(File.dirname(dest_path)) begin content = File.read(path) content = @terser.compile(content) File.write(dest_path, content) rescue StandardError => e Jekyll.logger.warn 'Terser:', e..to_s end return true end |