From bcc9451bbff6cd4e136339f195a9ef381df4e9a2 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Fri, 20 May 2022 18:45:14 +0900 Subject: [PATCH] Merge JRuby implementation for stringio and io-wait --- ext/io/wait/io-wait.gemspec | 20 ++++++++++++++++---- ext/stringio/stringio.gemspec | 17 ++++++++++++----- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/ext/io/wait/io-wait.gemspec b/ext/io/wait/io-wait.gemspec index a3aa89ee68..b633421e48 100644 --- a/ext/io/wait/io-wait.gemspec +++ b/ext/io/wait/io-wait.gemspec @@ -3,8 +3,8 @@ _VERSION = "0.2.3" Gem::Specification.new do |spec| spec.name = "io-wait" spec.version = _VERSION - spec.authors = ["Nobu Nakada"] - spec.email = ["nobu@ruby-lang.org"] + spec.authors = ["Nobu Nakada", "Charles Oliver Nutter"] + spec.email = ["nobu@ruby-lang.org", "headius@headius.com"] spec.summary = %q{Waits until IO is readable or writable without blocking.} spec.description = %q{Waits until IO is readable or writable without blocking.} @@ -16,11 +16,23 @@ Gem::Specification.new do |spec| spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do `git ls-files -z`.split("\x0").reject do |f| - (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features|rakelib)/|\.(?:git|travis|circleci)|appveyor|Rakefile)}) + File.identical?(f, __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features|rakelib)/|\.(?:git|travis|circleci)|appveyor|Rakefile)}) end end - spec.extensions = %w[ext/io/wait/extconf.rb] spec.bindir = "exe" spec.executables = [] spec.require_paths = ["lib"] + + jruby = true if Gem::Platform.new('java') =~ spec.platform or RUBY_ENGINE == 'jruby' + spec.files.delete_if do |f| + f.end_with?(".java") or + f.start_with?("ext/") && (jruby ^ f.start_with?("ext/java/")) + end + if jruby + spec.platform = 'java' + spec.files << "lib/io/wait.jar" + spec.require_paths += ["ext/java/lib"] + else + spec.extensions = %w[ext/io/wait/extconf.rb] + end end diff --git a/ext/stringio/stringio.gemspec b/ext/stringio/stringio.gemspec index 524d976cfb..1015d261f5 100644 --- a/ext/stringio/stringio.gemspec +++ b/ext/stringio/stringio.gemspec @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- # frozen_string_literal: true source_version = ["", "ext/stringio/"].find do |dir| @@ -16,11 +16,18 @@ Gem::Specification.new do |s| s.required_rubygems_version = Gem::Requirement.new(">= 2.6") s.require_paths = ["lib"] - s.authors = ["Nobu Nakada"] + s.authors = ["Nobu Nakada", "Charles Oliver Nutter"] s.description = "Pseudo `IO` class from/to `String`." - s.email = "nobu@ruby-lang.org" - s.extensions = ["ext/stringio/extconf.rb"] - s.files = ["README.md", "ext/stringio/extconf.rb", "ext/stringio/stringio.c"] + s.email = ["nobu@ruby-lang.org", "headius@headius.com"] + s.files = ["README.md"] + jruby = true if Gem::Platform.new('java') =~ s.platform or RUBY_ENGINE == 'jruby' + if jruby + s.files += ["lib/stringio.rb", "lib/stringio.jar"] + s.platform = "java" + else + s.extensions = ["ext/stringio/extconf.rb"] + s.files += ["ext/stringio/extconf.rb", "ext/stringio/stringio.c"] + end s.homepage = "https://github.com/ruby/stringio" s.licenses = ["Ruby", "BSD-2-Clause"] s.required_ruby_version = ">= 2.5"