lib/csso/js_lib.rb in csso-rails-0.8.2 vs lib/csso/js_lib.rb in csso-rails-0.9.0

- old
+ new

@@ -1,26 +1,30 @@ +# frozen_string_literal: true + require 'execjs' module Csso + # low-level wrapper around the js lib class JsLib - - def initialize verbose=false + def initialize(verbose = false) if verbose && ExecJS.runtime.is_a?(ExecJS::ExternalRuntime) warn "You're using ExecJS::ExternalRuntime, did you forget to add therubyracer or other execjs runtime to gemfile?" end - lib = File.read(File.expand_path('../../' + CSSO_JS_LIB, File.dirname(__FILE__))) - unless @csso = ExecJS.runtime.compile(lib) - raise 'cannot compile or what?' - end + lib = File.read(File.expand_path("../../#{CSSO_JS_LIB}", File.dirname(__FILE__))) + raise 'cannot compile or what?' unless (@csso = ExecJS.runtime.compile(lib)) end - def compress css, structural_optimization=true - @csso.call("do_compression", css, structural_optimization) - end + def compress(css, structural_optimization = true) + # TODO: raise ArgumentError, "expect css to be a String" unless css.is_a?(String) + return nil unless css.is_a?(String) - def compress_with_sourcemap css, filename, structural_optimization=true - @csso.call("do_compression_with_map", css, filename, structural_optimization) + @csso.call('do_compression', css, structural_optimization) end + def compress_with_sourcemap(css, filename, structural_optimization = true) + return nil unless css.is_a?(String) + + @csso.call('do_compression_with_map', css, filename, structural_optimization) + end end end