From 925131073dd98135bff0bd7be942bebd69c6b576 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Tue, 22 Oct 2024 16:05:23 +0200 Subject: [PATCH] Merge json and json-java gemspecs --- ext/json/extconf.rb | 3 -- ext/json/json.gemspec | 92 +++++++++++++++++++------------------------ 2 files changed, 41 insertions(+), 54 deletions(-) delete mode 100644 ext/json/extconf.rb diff --git a/ext/json/extconf.rb b/ext/json/extconf.rb deleted file mode 100644 index 8a99b6a5c8..0000000000 --- a/ext/json/extconf.rb +++ /dev/null @@ -1,3 +0,0 @@ -require 'mkmf' - -create_makefile('json') diff --git a/ext/json/json.gemspec b/ext/json/json.gemspec index 39b0155d46..96721f909c 100644 --- a/ext/json/json.gemspec +++ b/ext/json/json.gemspec @@ -2,61 +2,13 @@ version = File.foreach(File.join(__dir__, "lib/json/version.rb")) do |line| /^\s*VERSION\s*=\s*'(.*)'/ =~ line and break $1 end rescue nil -Gem::Specification.new do |s| +spec = Gem::Specification.new do |s| + java_ext = Gem::Platform === s.platform && s.platform =~ 'java' || RUBY_ENGINE == 'jruby' + s.name = "json" s.version = version s.summary = "JSON Implementation for Ruby" - s.description = "This is a JSON implementation as a Ruby extension in C." - s.licenses = ["Ruby"] - s.authors = ["Florian Frank"] - s.email = "flori@ping.de" - - s.extensions = ["ext/json/ext/generator/extconf.rb", "ext/json/ext/parser/extconf.rb", "ext/json/extconf.rb"] - s.extra_rdoc_files = ["README.md"] - s.rdoc_options = ["--title", "JSON implementation for Ruby", "--main", "README.md"] - s.files = [ - "CHANGES.md", - "COPYING", - "BSDL", - "LEGAL", - "README.md", - "ext/json/ext/fbuffer/fbuffer.h", - "ext/json/ext/generator/depend", - "ext/json/ext/generator/extconf.rb", - "ext/json/ext/generator/generator.c", - "ext/json/ext/generator/generator.h", - "ext/json/ext/parser/depend", - "ext/json/ext/parser/extconf.rb", - "ext/json/ext/parser/parser.c", - "ext/json/ext/parser/parser.h", - "ext/json/ext/parser/parser.rl", - "ext/json/extconf.rb", - "json.gemspec", - "lib/json.rb", - "lib/json/add/bigdecimal.rb", - "lib/json/add/complex.rb", - "lib/json/add/core.rb", - "lib/json/add/date.rb", - "lib/json/add/date_time.rb", - "lib/json/add/exception.rb", - "lib/json/add/ostruct.rb", - "lib/json/add/range.rb", - "lib/json/add/rational.rb", - "lib/json/add/regexp.rb", - "lib/json/add/set.rb", - "lib/json/add/struct.rb", - "lib/json/add/symbol.rb", - "lib/json/add/time.rb", - "lib/json/common.rb", - "lib/json/ext.rb", - "lib/json/ext/generator/state.rb", - "lib/json/generic_object.rb", - "lib/json/pure.rb", - "lib/json/pure/generator.rb", - "lib/json/pure/parser.rb", - "lib/json/version.rb", - ] s.homepage = "https://ruby.github.io/json" s.metadata = { 'bug_tracker_uri' => 'https://github.com/ruby/json/issues', @@ -68,4 +20,42 @@ Gem::Specification.new do |s| } s.required_ruby_version = Gem::Requirement.new(">= 2.3") + + if java_ext + s.description = "A JSON implementation as a JRuby extension." + s.author = "Daniel Luz" + s.email = "dev+ruby@mernen.com" + else + s.description = "This is a JSON implementation as a Ruby extension in C." + s.authors = ["Florian Frank"] + s.email = "flori@ping.de" + end + + s.licenses = ["Ruby"] + + s.extra_rdoc_files = ["README.md"] + s.rdoc_options = ["--title", "JSON implementation for Ruby", "--main", "README.md"] + + s.files = [ + "CHANGES.md", + "COPYING", + "BSDL", + "LEGAL", + "README.md", + "json.gemspec", + *Dir["lib/**/*.rb"], + ] + + if java_ext + s.platform = 'java' + else + s.extensions = Dir["ext/json/**/extconf.rb"] + s.files += Dir["ext/json/**/*.{c,h,rl}"] + end +end + +if RUBY_ENGINE == 'jruby' && $0 == __FILE__ + Gem::Builder.new(spec).build +else + spec end