Skip to content

Commit 8d7496c

Browse files
committed
Place common parts in lib and engine specific parts under ext/**/lib
1 parent c614c31 commit 8d7496c

File tree

17 files changed

+53
-110
lines changed

17 files changed

+53
-110
lines changed

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
/spec/reports/
99
/tmp/
1010
lib/*.jar
11-
lib/digest
12-
lib/digest/*.rb
1311
*.bundle
1412
*.so
1513
*.o

Rakefile

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,26 @@ require "rake/testtask"
33

44
Rake::TestTask.new(:test) do |t|
55
t.libs << "test" << "test/lib" << "lib"
6+
if RUBY_ENGINE == "jruby"
7+
t.libs << "ext/java/org/jruby/ext/digest/lib"
8+
else
9+
t.libs << "ext/digest/lib"
10+
end
611
t.ruby_opts << "-rhelper"
712
t.test_files = FileList["test/**/test_*.rb"]
813
end
914

10-
require 'rake/javaextensiontask'
11-
Rake::JavaExtensionTask.new("digest") do |ext|
12-
ext.source_version = '1.8'
13-
ext.target_version = '1.8'
14-
ext.ext_dir = 'ext/java'
15-
end
16-
17-
# copy library loaders
18-
require 'fileutils'
19-
%w(bubblebabble md5 rmd160 sha1 sha2).each do |ext|
20-
FileUtils.mkdir "./lib/digest" unless File.exist?("./lib/digest")
21-
FileUtils.cp "./ext/digest/#{ext}/lib/#{ext}.rb", "./lib/digest/#{ext}.rb"
22-
end
23-
24-
if RUBY_ENGINE != 'jruby'
25-
require 'rake/extensiontask'
15+
if RUBY_ENGINE == "jruby"
16+
require "rake/javaextensiontask"
17+
Rake::JavaExtensionTask.new("digest") do |ext|
18+
ext.source_version = "1.8"
19+
ext.target_version = "1.8"
20+
ext.ext_dir = "ext/java"
21+
end
22+
else
23+
require "rake/extensiontask"
2624
Rake::ExtensionTask.new("digest")
27-
%w(bubblebabble md5 rmd160 sha1 sha2).each do |ext|
25+
%w[bubblebabble md5 rmd160 sha1 sha2].each do |ext|
2826
Rake::ExtensionTask.new("digest/#{ext}")
2927
end
3028
end

digest.gemspec

Lines changed: 11 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -12,60 +12,27 @@ Gem::Specification.new do |spec|
1212
spec.homepage = "https://github.com/ruby/digest"
1313
spec.licenses = ["Ruby", "BSD-2-Clause"]
1414

15-
spec.files = [
16-
"LICENSE.txt", "README.md",
17-
18-
"ext/digest/defs.h", "ext/digest/digest.c", "ext/digest/digest.h",
19-
"ext/digest/digest_conf.rb", "ext/digest/extconf.rb",
20-
"ext/digest/lib/digest.rb",
21-
22-
"ext/digest/bubblebabble/bubblebabble.c",
23-
"ext/digest/bubblebabble/extconf.rb",
24-
25-
"ext/digest/md5/extconf.rb", "ext/digest/md5/md5.c",
26-
"ext/digest/md5/md5.h", "ext/digest/md5/md5cc.h",
27-
"ext/digest/md5/md5init.c",
28-
29-
"ext/digest/rmd160/extconf.rb", "ext/digest/rmd160/rmd160.c",
30-
"ext/digest/rmd160/rmd160.h", "ext/digest/rmd160/rmd160init.c",
31-
32-
"ext/digest/sha1/extconf.rb", "ext/digest/sha1/sha1.c",
33-
"ext/digest/sha1/sha1.h", "ext/digest/sha1/sha1cc.h",
34-
"ext/digest/sha1/sha1init.c",
35-
36-
"ext/digest/sha2/extconf.rb", "ext/digest/sha2/lib/sha2.rb",
37-
"ext/digest/sha2/sha2.c", "ext/digest/sha2/sha2.h",
38-
"ext/digest/sha2/sha2cc.h", "ext/digest/sha2/sha2init.c",
39-
40-
"ext/openssl/deprecation.rb",
41-
"ext/digest/test.sh",
15+
spec.files = [
16+
"LICENSE.txt",
17+
"README.md",
18+
*Dir["lib/digest{.rb,/**/*.rb}"],
4219
]
4320

4421
spec.required_ruby_version = ">= 2.5.0"
4522

4623
spec.bindir = "exe"
4724
spec.executables = []
48-
spec.require_paths = ["lib"]
4925

5026
if Gem::Platform === spec.platform and spec.platform =~ 'java' or RUBY_ENGINE == 'jruby'
5127
spec.platform = 'java'
52-
spec.files.concat [
53-
"lib/digest.jar",
54-
"lib/digest/md5.rb",
55-
"lib/digest/sha1.rb",
56-
"lib/digest/sha2.rb",
57-
"lib/digest/rmd160.rb",
58-
"lib/digest/bubblebabble.rb"
59-
]
28+
29+
spec.files += Dir["ext/java/**/*.{rb,java}"]
30+
spec.require_paths = %w[lib ext/java/org/jruby/ext/digest/lib]
6031
else
61-
spec.extensions = %w[
62-
ext/digest/extconf.rb
63-
ext/digest/bubblebabble/extconf.rb
64-
ext/digest/md5/extconf.rb
65-
ext/digest/rmd160/extconf.rb
66-
ext/digest/sha1/extconf.rb
67-
ext/digest/sha2/extconf.rb
68-
]
32+
spec.extensions = Dir["ext/digest/**/extconf.rb"]
33+
34+
spec.files += Dir["ext/digest/**/*.{rb,c,h,sh}"]
35+
spec.require_paths = %w[lib]
6936
end
7037

7138
spec.metadata["msys2_mingw_dependencies"] = "openssl"

ext/digest/bubblebabble/lib/bubblebabble.rb

Lines changed: 0 additions & 9 deletions
This file was deleted.

ext/digest/lib/digest/loader.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# frozen_string_literal: true
2+
3+
require 'digest.so'

ext/digest/lib/digest/sha2/loader.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# frozen_string_literal: true
2+
3+
require 'digest/sha2.so'

ext/digest/md5/lib/md5.rb

Lines changed: 0 additions & 9 deletions
This file was deleted.

ext/digest/rmd160/lib/rmd160.rb

Lines changed: 0 additions & 9 deletions
This file was deleted.

ext/digest/sha1/lib/sha1.rb

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# frozen_string_literal: true
2+
3+
JRuby::Util.load_ext("org.jruby.ext.digest.BubbleBabble")

0 commit comments

Comments
 (0)