summaryrefslogtreecommitdiff
path: root/lib/optparse/optparse.gemspec
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-07-29 00:31:52 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-07-30 19:03:18 +0900
commitb2d96abb42abbe2e01f010ffc9ac51f0f9a50002 (patch)
tree57791da8a71280c335109916376e13f5e0c63af3 /lib/optparse/optparse.gemspec
parentcfbae7dae052180e5dde05a27948ae8d779eccab (diff)
Extract version number from the source
"requiring version.rb" strategy has some issues. - cannot work when cross-compiling - often introduces wrong namespace - must know the superclasses - costs at each runtime than at build-time etc.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3375
Diffstat (limited to 'lib/optparse/optparse.gemspec')
-rw-r--r--lib/optparse/optparse.gemspec7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/optparse/optparse.gemspec b/lib/optparse/optparse.gemspec
index 25f81c08bb..3de0c07f43 100644
--- a/lib/optparse/optparse.gemspec
+++ b/lib/optparse/optparse.gemspec
@@ -1,7 +1,8 @@
+# frozen_string_literal: true
+
name = File.basename(__FILE__, ".gemspec")
-version = nil
-["lib", ".."].find do |dir|
- version = File.foreach(File.join(__dir__, dir, "#{name}.rb")) do |line|
+version = ["lib", Array.new(name.count("-")+1, "..").join("/")].find do |dir|
+ break File.foreach(File.join(__dir__, dir, "#{name.tr('-', '/')}.rb")) do |line|
/^\s*OptionParser::Version\s*=\s*"(.*)"/ =~ line and break $1
end rescue nil
end