diff options
author | Jon Leighton <j@jonathanleighton.com> | 2011-04-01 11:43:57 +0100 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2011-04-01 11:43:57 +0100 |
commit | dbd6343217ab77c37948d1202541ae33076155ab (patch) | |
tree | 62d7ddcfa9380f527c212ab61599558d4a81fdce | |
parent | f067f0c9b8b69b80b9e4e035d2130f8fca58370c (diff) | |
download | json-dbd6343217ab77c37948d1202541ae33076155ab.tar.gz |
Put the json and json_pure gemspecs in standalone .gemspec files so that they can be used by Bundler
-rw-r--r-- | Rakefile | 84 | ||||
-rw-r--r-- | constants.rb | 31 | ||||
-rw-r--r-- | json.gemspec | 31 | ||||
-rw-r--r-- | json_pure.gemspec | 27 |
4 files changed, 93 insertions, 80 deletions
@@ -20,31 +20,7 @@ CLEAN.include FileList['diagrams/*.*'], 'doc', 'coverage', 'tmp', FileList['java/src/**/*.class'] MAKE = ENV['MAKE'] || %w[gmake make].find { |c| system(c, '-v') } -PKG_NAME = 'json' -PKG_TITLE = 'JSON Implementation for Ruby' -PKG_VERSION = File.read('VERSION').chomp -PKG_FILES = FileList["**/*"].exclude(/CVS|pkg|tmp|coverage|Makefile|\.nfs\.|\.iml\Z/).exclude(/\.(so|bundle|o|class|#{CONFIG['DLEXT']})$/) - -EXT_ROOT_DIR = 'ext/json/ext' -EXT_PARSER_DIR = "#{EXT_ROOT_DIR}/parser" -EXT_PARSER_DL = "#{EXT_PARSER_DIR}/parser.#{CONFIG['DLEXT']}" -RAGEL_PATH = "#{EXT_PARSER_DIR}/parser.rl" -EXT_PARSER_SRC = "#{EXT_PARSER_DIR}/parser.c" -PKG_FILES << EXT_PARSER_SRC -EXT_GENERATOR_DIR = "#{EXT_ROOT_DIR}/generator" -EXT_GENERATOR_DL = "#{EXT_GENERATOR_DIR}/generator.#{CONFIG['DLEXT']}" -EXT_GENERATOR_SRC = "#{EXT_GENERATOR_DIR}/generator.c" - -JAVA_DIR = "java/src/json/ext" -JAVA_RAGEL_PATH = "#{JAVA_DIR}/Parser.rl" -JAVA_PARSER_SRC = "#{JAVA_DIR}/Parser.java" -JAVA_SOURCES = FileList["#{JAVA_DIR}/*.java"] -JAVA_CLASSES = [] -JRUBY_PARSER_JAR = File.expand_path("lib/json/ext/parser.jar") -JRUBY_GENERATOR_JAR = File.expand_path("lib/json/ext/generator.jar") - -RAGEL_CODEGEN = %w[rlcodegen rlgen-cd ragel].find { |c| system(c, '-v') } -RAGEL_DOTGEN = %w[rlgen-dot rlgen-cd ragel].find { |c| system(c, '-v') } +require File.dirname(__FILE__) + '/constants' def myruby(*args, &block) @myruby ||= File.join(CONFIG['bindir'], CONFIG['ruby_install_name']) @@ -83,32 +59,8 @@ else end if defined?(Gem) and defined?(Rake::GemPackageTask) - spec_pure = Gem::Specification.new do |s| - s.name = 'json_pure' - s.version = PKG_VERSION - s.summary = PKG_TITLE - s.description = "This is a JSON implementation in pure Ruby." - - s.files = PKG_FILES - - s.require_path = 'lib' - - s.bindir = "bin" - s.executables = [ "edit_json.rb", "prettify_json.rb" ] - s.default_executable = "edit_json.rb" - - s.has_rdoc = true - s.extra_rdoc_files << 'README' - s.rdoc_options << - '--title' << 'JSON implemention for ruby' << '--main' << 'README' - s.test_files.concat Dir['./tests/test_*.rb'] - - s.author = "Florian Frank" - s.email = "flori@ping.de" - s.homepage = "http://flori.github.com/#{PKG_NAME}" - s.rubyforge_project = "json" - end - + spec_pure = Gem::Specification.load(File.dirname(__FILE__) + '/json_pure.gemspec') + Rake::GemPackageTask.new(spec_pure) do |pkg| pkg.need_tar = true pkg.package_files = PKG_FILES @@ -116,35 +68,7 @@ if defined?(Gem) and defined?(Rake::GemPackageTask) end if defined?(Gem) and defined?(Rake::GemPackageTask) and defined?(Rake::ExtensionTask) - spec_ext = Gem::Specification.new do |s| - s.name = 'json' - s.version = PKG_VERSION - s.summary = PKG_TITLE - s.description = "This is a JSON implementation as a Ruby extension in C." - - s.files = PKG_FILES - - s.extensions = FileList['ext/**/extconf.rb'] - - s.require_path = EXT_ROOT_DIR - s.require_paths << 'ext' - s.require_paths << 'lib' - - s.bindir = "bin" - s.executables = [ "edit_json.rb", "prettify_json.rb" ] - s.default_executable = "edit_json.rb" - - s.has_rdoc = true - s.extra_rdoc_files << 'README' - s.rdoc_options << - '--title' << 'JSON implemention for Ruby' << '--main' << 'README' - s.test_files.concat Dir['./tests/test_*.rb'] - - s.author = "Florian Frank" - s.email = "flori@ping.de" - s.homepage = "http://flori.github.com/#{PKG_NAME}" - s.rubyforge_project = "json" - end + spec_ext = Gem::Specification.load(File.dirname(__FILE__) + '/json.gemspec') Rake::GemPackageTask.new(spec_ext) do |pkg| pkg.need_tar = true diff --git a/constants.rb b/constants.rb new file mode 100644 index 0000000..1e15aef --- /dev/null +++ b/constants.rb @@ -0,0 +1,31 @@ +require 'rbconfig' +include Config + +PKG_NAME = 'json' +PKG_TITLE = 'JSON Implementation for Ruby' +PKG_VERSION = File.read('VERSION').chomp +PKG_FILES = Dir.glob("**/**").reject { |file| + file =~ /CVS|pkg|tmp|coverage|Makefile|\.nfs\.|\.iml\Z/ || + file =~ /\.(so|bundle|o|class|#{CONFIG['DLEXT']})$/ + } + +EXT_ROOT_DIR = 'ext/json/ext' +EXT_PARSER_DIR = "#{EXT_ROOT_DIR}/parser" +EXT_PARSER_DL = "#{EXT_PARSER_DIR}/parser.#{CONFIG['DLEXT']}" +RAGEL_PATH = "#{EXT_PARSER_DIR}/parser.rl" +EXT_PARSER_SRC = "#{EXT_PARSER_DIR}/parser.c" +PKG_FILES << EXT_PARSER_SRC +EXT_GENERATOR_DIR = "#{EXT_ROOT_DIR}/generator" +EXT_GENERATOR_DL = "#{EXT_GENERATOR_DIR}/generator.#{CONFIG['DLEXT']}" +EXT_GENERATOR_SRC = "#{EXT_GENERATOR_DIR}/generator.c" + +JAVA_DIR = "java/src/json/ext" +JAVA_RAGEL_PATH = "#{JAVA_DIR}/Parser.rl" +JAVA_PARSER_SRC = "#{JAVA_DIR}/Parser.java" +JAVA_SOURCES = Dir.glob("#{JAVA_DIR}/*.java") +JAVA_CLASSES = [] +JRUBY_PARSER_JAR = File.expand_path("lib/json/ext/parser.jar") +JRUBY_GENERATOR_JAR = File.expand_path("lib/json/ext/generator.jar") + +RAGEL_CODEGEN = %w[rlcodegen rlgen-cd ragel].find { |c| system(c, '-v') } +RAGEL_DOTGEN = %w[rlgen-dot rlgen-cd ragel].find { |c| system(c, '-v') } diff --git a/json.gemspec b/json.gemspec new file mode 100644 index 0000000..0a8e210 --- /dev/null +++ b/json.gemspec @@ -0,0 +1,31 @@ +require File.dirname(__FILE__) + '/constants' + +Gem::Specification.new do |s| + s.name = 'json' + s.version = PKG_VERSION + s.summary = PKG_TITLE + s.description = "This is a JSON implementation as a Ruby extension in C." + + s.files = PKG_FILES + + s.extensions = Dir.glob('ext/**/extconf.rb') + + s.require_path = EXT_ROOT_DIR + s.require_paths << 'ext' + s.require_paths << 'lib' + + s.bindir = "bin" + s.executables = [ "edit_json.rb", "prettify_json.rb" ] + s.default_executable = "edit_json.rb" + + s.has_rdoc = true + s.extra_rdoc_files << 'README' + s.rdoc_options << + '--title' << 'JSON implemention for Ruby' << '--main' << 'README' + s.test_files.concat Dir['./tests/test_*.rb'] + + s.author = "Florian Frank" + s.email = "flori@ping.de" + s.homepage = "http://flori.github.com/#{PKG_NAME}" + s.rubyforge_project = "json" +end diff --git a/json_pure.gemspec b/json_pure.gemspec new file mode 100644 index 0000000..f668a62 --- /dev/null +++ b/json_pure.gemspec @@ -0,0 +1,27 @@ +require File.dirname(__FILE__) + '/constants' + +Gem::Specification.new do |s| + s.name = 'json_pure' + s.version = PKG_VERSION + s.summary = PKG_TITLE + s.description = "This is a JSON implementation in pure Ruby." + + s.files = PKG_FILES + + s.require_path = 'lib' + + s.bindir = "bin" + s.executables = [ "edit_json.rb", "prettify_json.rb" ] + s.default_executable = "edit_json.rb" + + s.has_rdoc = true + s.extra_rdoc_files << 'README' + s.rdoc_options << + '--title' << 'JSON implemention for ruby' << '--main' << 'README' + s.test_files.concat Dir['./tests/test_*.rb'] + + s.author = "Florian Frank" + s.email = "flori@ping.de" + s.homepage = "http://flori.github.com/#{PKG_NAME}" + s.rubyforge_project = "json" +end |