Make Pathname to embedded class

This commit is contained in:
Hiroshi SHIBATA 2025-07-14 17:50:50 +09:00
parent 3922a14a22
commit 98ea78f347
6 changed files with 175 additions and 37 deletions

174
common.mk
View file

@ -148,6 +148,7 @@ COMMONOBJS = \
numeric.$(OBJEXT) \
object.$(OBJEXT) \
pack.$(OBJEXT) \
pathname.$(OBJEXT) \
parse.$(OBJEXT) \
parser_st.$(OBJEXT) \
proc.$(OBJEXT) \
@ -12860,6 +12861,179 @@ parser_st.$(OBJEXT): {$(VPATH)}parser_st.c
parser_st.$(OBJEXT): {$(VPATH)}parser_st.h
parser_st.$(OBJEXT): {$(VPATH)}parser_value.h
parser_st.$(OBJEXT): {$(VPATH)}st.c
pathname.$(OBJEXT): $(hdrdir)/ruby.h
pathname.$(OBJEXT): $(hdrdir)/ruby/ruby.h
pathname.$(OBJEXT): {$(VPATH)}assert.h
pathname.$(OBJEXT): {$(VPATH)}backward.h
pathname.$(OBJEXT): {$(VPATH)}backward/2/assume.h
pathname.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
pathname.$(OBJEXT): {$(VPATH)}backward/2/bool.h
pathname.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
pathname.$(OBJEXT): {$(VPATH)}backward/2/limits.h
pathname.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
pathname.$(OBJEXT): {$(VPATH)}backward/2/stdalign.h
pathname.$(OBJEXT): {$(VPATH)}backward/2/stdarg.h
pathname.$(OBJEXT): {$(VPATH)}config.h
pathname.$(OBJEXT): {$(VPATH)}defines.h
pathname.$(OBJEXT): {$(VPATH)}encoding.h
pathname.$(OBJEXT): {$(VPATH)}intern.h
pathname.$(OBJEXT): {$(VPATH)}internal/abi.h
pathname.$(OBJEXT): {$(VPATH)}internal/anyargs.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/char.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/double.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/fixnum.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/gid_t.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/int.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/intptr_t.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/long.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/long_long.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/mode_t.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/off_t.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/pid_t.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/short.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/size_t.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/st_data_t.h
pathname.$(OBJEXT): {$(VPATH)}internal/arithmetic/uid_t.h
pathname.$(OBJEXT): {$(VPATH)}internal/assume.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/alloc_size.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/artificial.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/cold.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/const.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/constexpr.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/deprecated.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/diagnose_if.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/enum_extensibility.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/error.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/flag_enum.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/forceinline.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/format.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/maybe_unused.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/noalias.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/nodiscard.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/noexcept.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/noinline.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/nonnull.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/noreturn.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/packed_struct.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/pure.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/restrict.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/returns_nonnull.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/warning.h
pathname.$(OBJEXT): {$(VPATH)}internal/attr/weakref.h
pathname.$(OBJEXT): {$(VPATH)}internal/cast.h
pathname.$(OBJEXT): {$(VPATH)}internal/compiler_is.h
pathname.$(OBJEXT): {$(VPATH)}internal/compiler_is/apple.h
pathname.$(OBJEXT): {$(VPATH)}internal/compiler_is/clang.h
pathname.$(OBJEXT): {$(VPATH)}internal/compiler_is/gcc.h
pathname.$(OBJEXT): {$(VPATH)}internal/compiler_is/intel.h
pathname.$(OBJEXT): {$(VPATH)}internal/compiler_is/msvc.h
pathname.$(OBJEXT): {$(VPATH)}internal/compiler_is/sunpro.h
pathname.$(OBJEXT): {$(VPATH)}internal/compiler_since.h
pathname.$(OBJEXT): {$(VPATH)}internal/config.h
pathname.$(OBJEXT): {$(VPATH)}internal/constant_p.h
pathname.$(OBJEXT): {$(VPATH)}internal/core.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/rarray.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/rbasic.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/rbignum.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/rclass.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/rdata.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/rfile.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/rhash.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/robject.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/rregexp.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/rstring.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/rstruct.h
pathname.$(OBJEXT): {$(VPATH)}internal/core/rtypeddata.h
pathname.$(OBJEXT): {$(VPATH)}internal/ctype.h
pathname.$(OBJEXT): {$(VPATH)}internal/dllexport.h
pathname.$(OBJEXT): {$(VPATH)}internal/dosish.h
pathname.$(OBJEXT): {$(VPATH)}internal/encoding/coderange.h
pathname.$(OBJEXT): {$(VPATH)}internal/encoding/ctype.h
pathname.$(OBJEXT): {$(VPATH)}internal/encoding/encoding.h
pathname.$(OBJEXT): {$(VPATH)}internal/encoding/pathname.h
pathname.$(OBJEXT): {$(VPATH)}internal/encoding/re.h
pathname.$(OBJEXT): {$(VPATH)}internal/encoding/sprintf.h
pathname.$(OBJEXT): {$(VPATH)}internal/encoding/string.h
pathname.$(OBJEXT): {$(VPATH)}internal/encoding/symbol.h
pathname.$(OBJEXT): {$(VPATH)}internal/encoding/transcode.h
pathname.$(OBJEXT): {$(VPATH)}internal/error.h
pathname.$(OBJEXT): {$(VPATH)}internal/eval.h
pathname.$(OBJEXT): {$(VPATH)}internal/event.h
pathname.$(OBJEXT): {$(VPATH)}internal/fl_type.h
pathname.$(OBJEXT): {$(VPATH)}internal/gc.h
pathname.$(OBJEXT): {$(VPATH)}internal/glob.h
pathname.$(OBJEXT): {$(VPATH)}internal/globals.h
pathname.$(OBJEXT): {$(VPATH)}internal/has/attribute.h
pathname.$(OBJEXT): {$(VPATH)}internal/has/builtin.h
pathname.$(OBJEXT): {$(VPATH)}internal/has/c_attribute.h
pathname.$(OBJEXT): {$(VPATH)}internal/has/cpp_attribute.h
pathname.$(OBJEXT): {$(VPATH)}internal/has/declspec_attribute.h
pathname.$(OBJEXT): {$(VPATH)}internal/has/extension.h
pathname.$(OBJEXT): {$(VPATH)}internal/has/feature.h
pathname.$(OBJEXT): {$(VPATH)}internal/has/warning.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/array.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/bignum.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/class.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/compar.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/complex.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/cont.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/dir.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/enum.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/enumerator.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/error.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/eval.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/file.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/hash.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/io.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/load.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/marshal.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/numeric.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/object.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/parse.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/proc.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/process.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/random.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/range.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/rational.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/re.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/ruby.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/select.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/select/largesize.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/set.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/signal.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/sprintf.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/string.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/struct.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/thread.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/time.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/variable.h
pathname.$(OBJEXT): {$(VPATH)}internal/intern/vm.h
pathname.$(OBJEXT): {$(VPATH)}internal/interpreter.h
pathname.$(OBJEXT): {$(VPATH)}internal/iterator.h
pathname.$(OBJEXT): {$(VPATH)}internal/memory.h
pathname.$(OBJEXT): {$(VPATH)}internal/method.h
pathname.$(OBJEXT): {$(VPATH)}internal/module.h
pathname.$(OBJEXT): {$(VPATH)}internal/newobj.h
pathname.$(OBJEXT): {$(VPATH)}internal/scan_args.h
pathname.$(OBJEXT): {$(VPATH)}internal/special_consts.h
pathname.$(OBJEXT): {$(VPATH)}internal/static_assert.h
pathname.$(OBJEXT): {$(VPATH)}internal/stdalign.h
pathname.$(OBJEXT): {$(VPATH)}internal/stdbool.h
pathname.$(OBJEXT): {$(VPATH)}internal/stdckdint.h
pathname.$(OBJEXT): {$(VPATH)}internal/symbol.h
pathname.$(OBJEXT): {$(VPATH)}internal/value.h
pathname.$(OBJEXT): {$(VPATH)}internal/value_type.h
pathname.$(OBJEXT): {$(VPATH)}internal/variable.h
pathname.$(OBJEXT): {$(VPATH)}internal/warning_push.h
pathname.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
pathname.$(OBJEXT): {$(VPATH)}missing.h
pathname.$(OBJEXT): {$(VPATH)}onigmo.h
pathname.$(OBJEXT): {$(VPATH)}oniguruma.h
pathname.$(OBJEXT): {$(VPATH)}pathname.c
pathname.$(OBJEXT): {$(VPATH)}ruby.h
pathname.$(OBJEXT): {$(VPATH)}st.h
pathname.$(OBJEXT): {$(VPATH)}subst.h
prism/api_node.$(OBJEXT): $(hdrdir)/ruby.h
prism/api_node.$(OBJEXT): $(hdrdir)/ruby/ruby.h
prism/api_node.$(OBJEXT): $(top_srcdir)/prism/defines.h

View file

@ -1,3 +0,0 @@
# frozen_string_literal: false
require 'mkmf'
create_makefile('pathname')

View file

@ -1,32 +0,0 @@
name = File.basename(__FILE__, ".gemspec")
version = ["lib", "ext/lib"].find do |dir|
break File.foreach(File.join(__dir__, dir, "#{name}.rb")) do |line|
/^\s*VERSION\s*=\s*"(.*)"/ =~ line and break $1
end rescue nil
end
Gem::Specification.new do |spec|
spec.name = name
spec.version = version
spec.authors = ["Tanaka Akira"]
spec.email = ["akr@fsij.org"]
spec.summary = %q{Representation of the name of a file or directory on the filesystem}
spec.description = %q{Representation of the name of a file or directory on the filesystem}
spec.homepage = "https://github.com/ruby/pathname"
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
spec.licenses = ["Ruby", "BSD-2-Clause"]
spec.metadata["homepage_uri"] = spec.homepage
spec.metadata["source_code_uri"] = spec.homepage
# Specify which files should be added to the gem when it is released.
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
end
spec.bindir = "exe"
spec.executables = []
spec.require_paths = ["lib"]
spec.extensions = %w[ext/pathname/extconf.rb]
end

View file

@ -69,6 +69,7 @@ rb_call_inits(void)
CALL(Rational);
CALL(Complex);
CALL(MemoryView);
CALL(pathname);
CALL(version);
CALL(vm_trace);
CALL(vm_stack_canary);

View file

@ -10,8 +10,6 @@
# For documentation, see class Pathname.
#
require 'pathname.so'
class Pathname
VERSION = "0.4.0"