diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index e2c4641..6e0a5d3 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -12,7 +12,6 @@ jobs: matrix: gemfile: [Gemfile] ruby: - - "2.3" - "2.4" - "2.5" - "2.6" diff --git a/lib/uglifier.rb b/lib/uglifier.rb index e705ab6..473b9ab 100644 --- a/lib/uglifier.rb +++ b/lib/uglifier.rb @@ -1,7 +1,6 @@ # encoding: UTF-8 require "json" -require "base64" require "execjs" require "uglifier/version" @@ -160,7 +159,7 @@ def initialize(options = {}) def compile(source) if @options[:source_map] compiled, source_map = run_uglifyjs(source, true) - source_map_uri = Base64.strict_encode64(source_map) + source_map_uri = [source_map].pack('m0') source_map_mime = "application/json;charset=utf-8;base64" compiled + "\n//# sourceMappingURL=data:#{source_map_mime},#{source_map_uri}" else @@ -512,7 +511,7 @@ def input_source_map(source, generate_map) source_map_options = @options[:source_map].is_a?(Hash) ? @options[:source_map] : {} sanitize_map_root(source_map_options.fetch(:input_source_map) do url = extract_source_mapping_url(source) - Base64.strict_decode64(url.split(",", 2)[-1]) if url && url.start_with?("data:") + url.split(",", 2)[-1].unpack1('m0') if url && url.start_with?("data:") end) rescue ArgumentError, JSON::ParserError nil diff --git a/uglifier.gemspec b/uglifier.gemspec index 6e555a4..d88e2fe 100644 --- a/uglifier.gemspec +++ b/uglifier.gemspec @@ -13,7 +13,7 @@ Gem::Specification.new do |spec| spec.description = "Uglifier minifies JavaScript files by wrapping UglifyJS to be accessible in Ruby" spec.license = "MIT" - spec.required_ruby_version = '>= 1.9.3' + spec.required_ruby_version = '>= 2.4.0' spec.extra_rdoc_files = [ "LICENSE.txt",