@@ -23,8 +23,13 @@ class UndocumentedTestTask < Rake::TestTask
2323 def desc ( *) end
2424end
2525
26- MAKE = ENV [ 'MAKE' ] || %w[ gmake make ] . find { |c | system ( c , '-v' ) }
27- BUNDLE = ENV [ 'BUNDLE' ] || %w[ bundle ] . find { |c | system ( c , '-v' ) }
26+ which = lambda { |c |
27+ w = `which #{ c } `
28+ break w . chomp unless w . empty?
29+ }
30+
31+ MAKE = ENV [ 'MAKE' ] || %w[ gmake make ] . find ( &which )
32+ BUNDLE = ENV [ 'BUNDLE' ] || %w[ bundle ] . find ( &which )
2833PKG_NAME = 'json'
2934PKG_TITLE = 'JSON Implementation for Ruby'
3035PKG_VERSION = File . read ( 'VERSION' ) . chomp
@@ -47,8 +52,8 @@ JAVA_CLASSES = []
4752JRUBY_PARSER_JAR = File . expand_path ( "lib/json/ext/parser.jar" )
4853JRUBY_GENERATOR_JAR = File . expand_path ( "lib/json/ext/generator.jar" )
4954
50- RAGEL_CODEGEN = %w[ rlcodegen rlgen-cd ragel ] . find { | c | system ( c , '-v' ) }
51- RAGEL_DOTGEN = %w[ rlgen-dot rlgen-cd ragel ] . find { | c | system ( c , '-v' ) }
55+ RAGEL_CODEGEN = %w[ rlcodegen rlgen-cd ragel ] . find ( & which )
56+ RAGEL_DOTGEN = %w[ rlgen-dot rlgen-cd ragel ] . find ( & which )
5257
5358desc "Installing library (pure)"
5459task :install_pure => :version do
@@ -84,7 +89,7 @@ if defined?(Gem) and defined?(Gem::PackageTask)
8489
8590 s . require_path = 'lib'
8691 s . add_development_dependency 'rake'
87- s . add_development_dependency 'test-unit' , '~> 2 .0'
92+ s . add_development_dependency 'test-unit' , '>= 2.0' , '< 4 .0'
8893
8994 s . extra_rdoc_files << 'README.md'
9095 s . rdoc_options <<
@@ -95,13 +100,16 @@ if defined?(Gem) and defined?(Gem::PackageTask)
9510096101 s . homepage = "http://flori.github.com/#{ PKG_NAME } "
97102 s . license = 'Ruby'
98- s . required_ruby_version = '>= 1.9 '
103+ s . required_ruby_version = '>= 2.0 '
99104 end
100105
101106 desc 'Creates a json_pure.gemspec file'
102107 task :gemspec_pure => :version do
103108 File . open ( 'json_pure.gemspec' , 'w' ) do |gemspec |
104- gemspec . write spec_pure . to_ruby
109+ src = spec_pure . to_ruby
110+ src . gsub! ( /# stub:.*/ , "# This gemspec is generated automatically using `rake gemspec`.\n " \
111+ "# Do not modify directly." )
112+ gemspec . write src
105113 end
106114 end
107115
@@ -110,47 +118,8 @@ if defined?(Gem) and defined?(Gem::PackageTask)
110118 pkg . package_files = PKG_FILES
111119 end
112120
113- spec_ext = Gem ::Specification . new do |s |
114- s . name = 'json'
115- s . version = PKG_VERSION
116- s . summary = PKG_TITLE
117- s . description = "This is a JSON implementation as a Ruby extension in C."
118-
119- s . files = PKG_FILES
120-
121- s . extensions = FileList [ 'ext/**/extconf.rb' ]
122-
123- s . require_path = 'lib'
124- s . add_development_dependency 'rake'
125- s . add_development_dependency 'test-unit' , '~> 2.0'
126-
127- s . extra_rdoc_files << 'README.md'
128- s . rdoc_options <<
129- '--title' << 'JSON implemention for Ruby' << '--main' << 'README.md'
130- s . test_files . concat Dir [ './tests/test_*.rb' ]
131-
132- s . author = "Florian Frank"
133- 134- s . homepage = "http://flori.github.com/#{ PKG_NAME } "
135- s . license = 'Ruby'
136- s . required_ruby_version = '>= 1.9'
137- end
138-
139- desc 'Creates a json.gemspec file'
140- task :gemspec_ext => :version do
141- File . open ( 'json.gemspec' , 'w' ) do |gemspec |
142- gemspec . write spec_ext . to_ruby
143- end
144- end
145-
146- Gem ::PackageTask . new ( spec_ext ) do |pkg |
147- pkg . need_tar = true
148- pkg . package_files = PKG_FILES
149- end
150-
151-
152- desc 'Create all gemspec files'
153- task :gemspec => [ :gemspec_pure , :gemspec_ext ]
121+ desc 'Alias for gemspec_pure'
122+ task :gemspec => [ :gemspec_pure ]
154123end
155124
156125desc m = "Writing version information for #{ PKG_VERSION } "
@@ -176,7 +145,8 @@ task :check_env do
176145end
177146
178147desc "Testing library (pure ruby)"
179- task :test_pure => [ :clean , :check_env , :do_test_pure ]
148+ task :test_pure => [ :set_env_pure , :check_env , :do_test_pure ]
149+ task ( :set_env_pure ) { ENV [ 'JSON' ] = 'pure' }
180150
181151UndocumentedTestTask . new do |t |
182152 t . name = 'do_test_pure'
@@ -187,10 +157,7 @@ UndocumentedTestTask.new do |t|
187157end
188158
189159desc "Testing library (pure ruby and extension)"
190- task :test do
191- sh "env JSON=pure #{ BUNDLE } exec rake test_pure" or exit 1
192- sh "env JSON=ext #{ BUNDLE } exec rake test_ext" or exit 1
193- end
160+ task :test => [ :test_pure , :test_ext ]
194161
195162namespace :gems do
196163 desc 'Install all development gems'
@@ -238,7 +205,7 @@ if defined?(RUBY_ENGINE) and RUBY_ENGINE == 'jruby'
238205 classpath = ( Dir [ 'java/lib/*.jar' ] << 'java/src' << JRUBY_JAR ) * ':'
239206 obj = src . sub ( /\. java\Z / , '.class' )
240207 file obj => src do
241- sh 'javac' , '-classpath' , classpath , '-source' , '1.5 ' , '-target' , '1.5 ' , src
208+ sh 'javac' , '-classpath' , classpath , '-source' , '1.6 ' , '-target' , '1.6 ' , src
242209 end
243210 JAVA_CLASSES << obj
244211 end
@@ -257,7 +224,8 @@ if defined?(RUBY_ENGINE) and RUBY_ENGINE == 'jruby'
257224 end
258225
259226 desc "Testing library (jruby)"
260- task :test_ext => [ :check_env , :create_jar , :do_test_ext ]
227+ task :test_ext => [ :set_env_ext , :create_jar , :check_env , :do_test_ext ]
228+ task ( :set_env_ext ) { ENV [ 'JSON' ] = 'ext' }
261229
262230 UndocumentedTestTask . new do |t |
263231 t . name = 'do_test_ext'
363331 end
364332 src = File . read ( "parser.c" ) . gsub ( /[ \t ]+$/ , '' )
365333 src . gsub! ( /^static const int (JSON_.*=.*);$/ , 'enum {\1};' )
334+ src . gsub! ( /0 <= \( \* p\) && \( \* p\) <= 31/ , "0 <= (signed char)(*p) && (*p) <= 31" )
335+ src [ 0 , 0 ] = "/* This file is automatically generated from parser.rl by using ragel */"
366336 File . open ( "parser.c" , "w" ) { |f | f . print src }
367337 end
368338 end
0 commit comments