diff --git a/ext/java/org/jruby/ext/stringio/StringIO.java b/ext/java/org/jruby/ext/stringio/StringIO.java index a3acdc5..4bbe4af 100644 --- a/ext/java/org/jruby/ext/stringio/StringIO.java +++ b/ext/java/org/jruby/ext/stringio/StringIO.java @@ -83,6 +83,9 @@ public static RubyClass createStringIOClass(final Ruby runtime) { RubyClass stringIOClass = runtime.defineClass( "StringIO", runtime.getObject(), StringIO::new); + RubyString version = RubyString.newString(runtime, "3.0.8"); + stringIOClass.defineConstant("VERSION", version); + stringIOClass.defineAnnotatedMethods(StringIO.class); stringIOClass.includeModule(runtime.getEnumerable()); diff --git a/rakelib/version.rake b/rakelib/version.rake index f1a7c2a..1f6d605 100644 --- a/rakelib/version.rake +++ b/rakelib/version.rake @@ -1,15 +1,14 @@ class << (helper = Bundler::GemHelper.instance) - SOURCE_PATH = "ext/stringio/stringio.c" + C_SOURCE_PATH = "ext/stringio/stringio.c" + JAVA_SOURCE_PATH = "ext/java/org/jruby/ext/stringio/StringIO.java" def update_source_version - path = SOURCE_PATH - File.open(path, "r+b") do |f| - d = f.read - if d.sub!(/^#define\s+STRINGIO_VERSION\s+\K".*"/) {version.to_s.dump} - f.rewind - f.truncate(0) - f.print(d) - end - end + c_source = File.read(C_SOURCE_PATH) + c_source.sub!(/^#define\s+STRINGIO_VERSION\s+\K".*"/) {version.to_s.dump} + File.write(C_SOURCE_PATH, c_source) + + java_source = File.read(JAVA_SOURCE_PATH) + java_source.sub!(/version = RubyString\.newString\(runtime, \K".*"/) {version.to_s.dump} + File.write(JAVA_SOURCE_PATH, java_source) end def commit_bump diff --git a/test/stringio/test_stringio.rb b/test/stringio/test_stringio.rb index 246f107..d2d96c5 100644 --- a/test/stringio/test_stringio.rb +++ b/test/stringio/test_stringio.rb @@ -14,6 +14,10 @@ def open_file(content) include TestEOF::Seek + def test_version + assert_kind_of(String, StringIO::VERSION) + end + def test_initialize assert_kind_of StringIO, StringIO.new assert_kind_of StringIO, StringIO.new('str')