diff --git a/ext/digest/bubblebabble/lib/bubblebabble.rb b/ext/digest/bubblebabble/lib/bubblebabble.rb deleted file mode 100644 index 8ad06c7740..0000000000 --- a/ext/digest/bubblebabble/lib/bubblebabble.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: false - -require 'digest' - -if RUBY_ENGINE == 'jruby' - JRuby::Util.load_ext("org.jruby.ext.digest.BubbleBabble") -else - require 'digest/bubblebabble.so' -end diff --git a/ext/digest/digest.gemspec b/ext/digest/digest.gemspec index f9357b0f23..151d1607b6 100644 --- a/ext/digest/digest.gemspec +++ b/ext/digest/digest.gemspec @@ -12,60 +12,27 @@ Gem::Specification.new do |spec| spec.homepage = "https://github.com/ruby/digest" spec.licenses = ["Ruby", "BSD-2-Clause"] - spec.files = [ - "LICENSE.txt", "README.md", - - "ext/digest/defs.h", "ext/digest/digest.c", "ext/digest/digest.h", - "ext/digest/digest_conf.rb", "ext/digest/extconf.rb", - "ext/digest/lib/digest.rb", - - "ext/digest/bubblebabble/bubblebabble.c", - "ext/digest/bubblebabble/extconf.rb", - - "ext/digest/md5/extconf.rb", "ext/digest/md5/md5.c", - "ext/digest/md5/md5.h", "ext/digest/md5/md5cc.h", - "ext/digest/md5/md5init.c", - - "ext/digest/rmd160/extconf.rb", "ext/digest/rmd160/rmd160.c", - "ext/digest/rmd160/rmd160.h", "ext/digest/rmd160/rmd160init.c", - - "ext/digest/sha1/extconf.rb", "ext/digest/sha1/sha1.c", - "ext/digest/sha1/sha1.h", "ext/digest/sha1/sha1cc.h", - "ext/digest/sha1/sha1init.c", - - "ext/digest/sha2/extconf.rb", "ext/digest/sha2/lib/sha2.rb", - "ext/digest/sha2/sha2.c", "ext/digest/sha2/sha2.h", - "ext/digest/sha2/sha2cc.h", "ext/digest/sha2/sha2init.c", - - "ext/openssl/deprecation.rb", - "ext/digest/test.sh", + spec.files = [ + "LICENSE.txt", + "README.md", + *Dir["lib/digest{.rb,/**/*.rb}"], ] spec.required_ruby_version = ">= 2.5.0" spec.bindir = "exe" spec.executables = [] - spec.require_paths = ["lib"] if Gem::Platform === spec.platform and spec.platform =~ 'java' or RUBY_ENGINE == 'jruby' spec.platform = 'java' - spec.files.concat [ - "lib/digest.jar", - "lib/digest/md5.rb", - "lib/digest/sha1.rb", - "lib/digest/sha2.rb", - "lib/digest/rmd160.rb", - "lib/digest/bubblebabble.rb" - ] + + spec.files += Dir["ext/java/**/*.{rb,java}"] + spec.require_paths = %w[lib ext/java/org/jruby/ext/digest/lib] else - spec.extensions = %w[ - ext/digest/extconf.rb - ext/digest/bubblebabble/extconf.rb - ext/digest/md5/extconf.rb - ext/digest/rmd160/extconf.rb - ext/digest/sha1/extconf.rb - ext/digest/sha2/extconf.rb - ] + spec.extensions = Dir["ext/digest/**/extconf.rb"] + + spec.files += Dir["ext/digest/**/*.{rb,c,h,sh}"] + spec.require_paths = %w[lib] end spec.metadata["msys2_mingw_dependencies"] = "openssl" diff --git a/ext/digest/lib/digest/loader.rb b/ext/digest/lib/digest/loader.rb new file mode 100644 index 0000000000..6b989e07be --- /dev/null +++ b/ext/digest/lib/digest/loader.rb @@ -0,0 +1,3 @@ +# frozen_string_literal: true + +require 'digest.so' diff --git a/ext/digest/lib/digest/sha2/loader.rb b/ext/digest/lib/digest/sha2/loader.rb new file mode 100644 index 0000000000..7d6d04a59c --- /dev/null +++ b/ext/digest/lib/digest/sha2/loader.rb @@ -0,0 +1,3 @@ +# frozen_string_literal: true + +require 'digest/sha2.so' diff --git a/ext/digest/md5/lib/md5.rb b/ext/digest/md5/lib/md5.rb deleted file mode 100644 index 3748f9d187..0000000000 --- a/ext/digest/md5/lib/md5.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: false - -require 'digest' - -if RUBY_ENGINE == 'jruby' - JRuby::Util.load_ext("org.jruby.ext.digest.MD5") -else - require 'digest/md5.so' -end diff --git a/ext/digest/rmd160/lib/rmd160.rb b/ext/digest/rmd160/lib/rmd160.rb deleted file mode 100644 index eabb92a496..0000000000 --- a/ext/digest/rmd160/lib/rmd160.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: false - -require 'digest' - -if RUBY_ENGINE == 'jruby' - JRuby::Util.load_ext("org.jruby.ext.digest.RMD160") -else - require 'digest/rmd160.so' -end diff --git a/ext/digest/sha1/lib/sha1.rb b/ext/digest/sha1/lib/sha1.rb deleted file mode 100644 index 864997b1f6..0000000000 --- a/ext/digest/sha1/lib/sha1.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: false - -require 'digest' - -if RUBY_ENGINE == 'jruby' - JRuby::Util.load_ext("org.jruby.ext.digest.SHA1") -else - require 'digest/sha1.so' -end diff --git a/ext/digest/lib/digest.rb b/lib/digest.rb similarity index 96% rename from ext/digest/lib/digest.rb rename to lib/digest.rb index 912198811b..b5ff067e44 100644 --- a/ext/digest/lib/digest.rb +++ b/lib/digest.rb @@ -1,9 +1,6 @@ # frozen_string_literal: false -if RUBY_ENGINE == 'jruby' - JRuby::Util.load_ext("org.jruby.ext.digest.DigestLibrary") -else - require 'digest.so' -end + +require 'digest/loader' module Digest # A mutex for Digest(). diff --git a/ext/digest/sha2/lib/sha2.rb b/lib/digest/sha2.rb similarity index 97% rename from ext/digest/sha2/lib/sha2.rb rename to lib/digest/sha2.rb index 22e099768c..f17593a206 100644 --- a/ext/digest/sha2/lib/sha2.rb +++ b/lib/digest/sha2.rb @@ -11,12 +11,7 @@ # $Id$ require 'digest' - -if RUBY_ENGINE == 'jruby' - JRuby::Util.load_ext("org.jruby.ext.digest.SHA2") -else - require 'digest/sha2.so' -end +require 'digest/sha2/loader' module Digest #