diff --git a/Gemfile b/Gemfile index 6254c58..4572311 100644 --- a/Gemfile +++ b/Gemfile @@ -1,14 +1,11 @@ source "https://rubygems.org" gemspec -gem "base64", "~> 0.3" gem "cucumber", "~> 9.2" gem "google-style", "~> 1.27.1" -gem "logger", "~> 1.7" gem "minitest", "~> 5.25" gem "minitest-focus", "~> 1.4" gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.6" gem "rack", "~> 3.2" gem "redcarpet", "~> 3.6" unless ::RUBY_PLATFORM == "java" gem "webrick", "~> 1.9" diff --git a/lib/cloud_events/format.rb b/lib/cloud_events/format.rb index d67e2f5..550552c 100644 --- a/lib/cloud_events/format.rb +++ b/lib/cloud_events/format.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "base64" require "json" module CloudEvents diff --git a/lib/cloud_events/json_format.rb b/lib/cloud_events/json_format.rb index 5072143..e825458 100644 --- a/lib/cloud_events/json_format.rb +++ b/lib/cloud_events/json_format.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "base64" require "json" module CloudEvents @@ -256,7 +255,7 @@ def decode_hash_structure_v1 structure, charset, spec_version, data_decoder def retrieve_content_from_data_fields structure, charset if structure.key? "data_base64" - content = ::Base64.decode64 structure.delete "data_base64" + content = structure.delete("data_base64").unpack1 "m" content_type = structure["datacontenttype"] || "application/octet-stream" else content = structure["data"] @@ -318,7 +317,7 @@ def encode_data_fields_for_other_content structure, event, data_encoder structure["datacontenttype"] = result[:content_type].to_s end if data_encoded.encoding == ::Encoding::ASCII_8BIT - structure["data_base64"] = ::Base64.encode64 data_encoded + structure["data_base64"] = [data_encoded].pack "m0" structure.delete "data" else structure["data"] = data_encoded diff --git a/lib/cloud_events/text_format.rb b/lib/cloud_events/text_format.rb index 8be1605..e8afd4f 100644 --- a/lib/cloud_events/text_format.rb +++ b/lib/cloud_events/text_format.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "base64" require "json" module CloudEvents diff --git a/test/test_json_format.rb b/test/test_json_format.rb index 139c9a7..2dd7496 100644 --- a/test/test_json_format.rb +++ b/test/test_json_format.rb @@ -2,7 +2,6 @@ require_relative "helper" -require "base64" require "date" require "json" require "stringio" @@ -19,8 +18,8 @@ let(:my_doubly_encoded_json_string_data) { JSON.dump my_json_string_data } let(:my_data_string) { "12345" } let(:my_json_encoded_data_string) { '"12345"' } - let(:my_base64_data) { "/w==\n" } - let(:my_binary_string) { Base64.decode64 my_base64_data } + let(:my_base64_data) { "/w==" } + let(:my_binary_string) { my_base64_data.unpack1 "m" } let(:my_content_encoding) { "8bit" } let(:my_content_type_string) { "text/plain; charset=us-ascii" } let(:my_content_type) { CloudEvents::ContentType.new my_content_type_string } diff --git a/test/test_text_format.rb b/test/test_text_format.rb index 1e9e814..aebf499 100644 --- a/test/test_text_format.rb +++ b/test/test_text_format.rb @@ -2,7 +2,6 @@ require_relative "helper" -require "base64" require "date" require "json" require "stringio"