Commit graph

75 commits

Author SHA1 Message Date
Jean Boussier
03800bff69 Make Pathname#mkpath builtin
[Feature #17473]
2025-07-15 12:57:18 +02:00
Hiroshi SHIBATA
8794406583 Move builtin methods to pathname.rbinc from lib/pathname.rb 2025-07-15 11:17:51 +09:00
Hiroshi SHIBATA
98ea78f347 Make Pathname to embedded class 2025-07-15 11:17:51 +09:00
akr
4bf3cb5ba9 * ext/pathname/lib/pathname.rb: moved from lib/pathname.rb.
require pathname.so.

* ext/pathname/pathname.c: new file to define empty Pathname class.

* ext/pathname/extconf.rb: new file.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-17 04:50:19 +00:00
marcandre
70510d026f * lib/csv.rb: Fix unused variable warnings.
Patch by Run Paint [ruby-core:30991]

* lib/date.rb: ditto

* lib/debug.rb: ditto

* lib/drb/drb.rb: ditto

* lib/drb/invokemethod.rb: ditto

* lib/irb/ruby-lex.rb: ditto

* lib/irb/slex.rb: ditto

* lib/logger.rb: ditto

* lib/pathname.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-11 16:59:10 +00:00
akr
785b31bed4 * file.c: add optional basedir argument for realpath/realdirpath.
(realpath_internal): handle basedir.
  (rb_file_s_realpath): extract basedir from argument list.
  (rb_file_s_realdirpath): extract basedir from argument list.

* lib/pathname.rb (realpath): pass basedir.
  (realdirpath): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26841 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-07 04:55:34 +00:00
akr
853dd6cabe * prelude.rb (require_relative): use File.realpath. [ruby-dev:40040]
* include/ruby/intern.h: declare rb_dir_getwd.

* dir.c (rb_dir_getwd): copied from dir_s_getwd to export.
  (dir_s_getwd): use rb_dir_getwd.

* file.c (rb_file_s_realpath): new method File.realpath.
  (rb_file_s_realdirpath): new method File.realdirpath.

* lib/pathname.rb (Pathname#realpath): use File.realpath.
  (Pathname#realdirpath): use File.realdirpath.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-12 00:32:22 +00:00
nobu
d645c25a7f * lib/pathname.rb (Pathname::SAME_PATHS): FNM_SYSCASE is always
non-nil.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-23 00:13:02 +00:00
akr
8ce34a86a2 * lib/pathname.rb (Pathname#sub): suppress a warning. [ruby-dev:38488]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-18 12:41:08 +00:00
nobu
896db7d625 * lib/pathname.rb (Pathname#relative_path_from): compares path
components according to system default case-sensitiveness.
  [ruby-core:22829]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-28 23:59:28 +00:00
akr
a28532dcf3 * lib/pathname.rb (Pathname#sub): set $~ in block.binding.
[ruby-dev:38173]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-17 05:26:15 +00:00
kazu
2f83f7a7f4 update doc (add Pathname#binread)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-27 19:51:56 +00:00
matz
b47b9fbb87 * lib/pathname.rb (Pathname#foreachline): removed wrongly
resurrected method.  [ruby-dev:38065]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-23 15:20:35 +00:00
matz
3b39217fb4 * lib/pathname.rb (Pathname#binread): added. [ruby-dev:37952]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-21 19:32:39 +00:00
akr
23843e8b3c * lib/pathname.rb: obsolete methods removed.
[ruby-core:21564]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-14 10:21:15 +00:00
akr
cd350b6768 update rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-31 14:48:48 +00:00
akr
fc77d9d1cb rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-31 05:18:25 +00:00
akr
8cc36df9c3 * lib/pathname.rb (Pathname#each_child): new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-31 05:13:49 +00:00
akr
e94e674d0e * lib/pathname.rb (Pathname#realdirpath): new method.
[ruby-dev:36290]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-30 12:50:55 +00:00
nobu
5225998612 * lib/pathname.rb (chop_basename, prepend_prefix): use o option.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-26 06:49:46 +00:00
akr
120ab4b826 * lib/pathname.rb (Pathname#=~): undefed. at asakusa.rb.
[ruby-core:19690]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-11 10:21:14 +00:00
mame
f398d750ea * lib/pathname.rb (each_filename): return Enumerator if no block
given.

* test/pathname/test_pathname.rb: add a test for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-23 00:03:42 +00:00
akr
83453ab1ca trailing space removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-14 14:36:50 +00:00
matz
e6c1752137 * lib/rdoc.rb: massive spelling correction patch from Evan Farrar
<evanfarrar at gmail.com> in [ruby-doc:1382] applied.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-04 09:37:38 +00:00
akr
70f25096c0 * lib/pathname.rb (Pathname#sub_ext): new method. [ruby-list:44608]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-13 13:50:31 +00:00
akr
e6948e5334 update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-08 08:57:05 +00:00
akr
7d274ff6fb * lib/pathname.rb (Kernel#Pathname): new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-17 05:59:29 +00:00
akr
62123eff4f * lib/pathname.rb: use a subclass for instantiation except
methods take pathname argument.  suggested by Evan Phoenix.
  [ruby-core:7618]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-04 15:29:59 +00:00
akr
cb8d34855e * lib/pathname.rb (Pathname#each_filename): use split_names properly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-22 12:18:58 +00:00
akr
66283e1c0f * lib/pathname.rb: use File.basename to decompose pathnames.
experimental Windows support.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-26 20:43:08 +00:00
akr
9bfb4dc6ac * lib/pathname.rb (Pathname#sub): new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-23 23:32:29 +00:00
akr
ed353ff1bb * lib/pathname.rb (Pathname#descend): Pathname.new("./a/b/c").descend
didn't yield "."
  (Pathname#ascend): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-03 05:02:13 +00:00
akr
cd7cc246d2 * lib/pathname.rb (Pathname#descend): new method.
(Pathname#ascend): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-28 16:45:11 +00:00
akr
f41e9c805c * lib/pathname.rb (Pathname#unlink): try Dir.unlink first to
avoid unlink a directory by root.
  cf. [ruby-dev:26237]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-10 15:17:35 +00:00
akr
3d2e699f0e doc fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-02 16:17:17 +00:00
akr
cb025decff * lib/pathname.rb (Pathname#unlink): use SystemCallError instead of
Errno::EISDIR because EISDIR is not portable.
  [ruby-core:5001]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-15 15:32:35 +00:00
akr
eebb06165f * lib/pathname.rb (Pathname#unlink): unlink a symlink to a directory
was failed.  [ruby-core:4992]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-15 05:50:45 +00:00
akr
4627c5a19b * lib/pathname.rb (cleanpath_aggressive): make it private.
(cleanpath_conservative): ditto.
  Suggested by Daniel Berger.  [ruby-core:3914]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-12 16:04:31 +00:00
akr
d8cf22793b * lib/pathname.rb (Pathname#initialize): fix pathname initialization
by pathname.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-27 12:41:10 +00:00
akr
614537d5fa test Kernel.open accepts pathname object.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-24 11:56:50 +00:00
matz
2c247e3d6b * io.c (rb_f_open): open should not ignore block when "to_open"
method is used.  [ruby-dev:23478]

* ext/dbm/dbm.c (fdbm_modify): typo fixed. [ruby-dev:23473]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-08 08:12:08 +00:00
akr
ac5f6e0a60 add a test for Kernel.open(Pathname.new(...)) { ... }.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-07 23:22:28 +00:00
akr
10b598499b add tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-26 16:27:57 +00:00
akr
cd322e0403 * lib/pathname.rb: sync taint/freeze flag between
a pathname object and its internal string object.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-23 07:40:50 +00:00
akr
ae8dfe8626 update the document for to_path.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-07 05:33:19 +00:00
matz
4ded52b623 * file.c (rb_get_path): get path string via "to_path" method if
path object is not a string. [Ruby2]

* gc.c (rb_gc_call_finalizer_at_exit): do not free threads in the
  exit finalizers.

* io.c (rb_io_reopen): should use rb_io_check_io().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-07 02:51:05 +00:00
matz
ce44928d2b * error.c (Init_Exception): remove Exception#to_str. [Ruby2]
* eval.c (error_print): should no call "to_str" anymore use
  "message" method instead.

* io.c (rb_f_open): Kernel#open() calls "to_open" if the first
  argument responds to it. [Ruby2]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-05 15:55:09 +00:00
akr
166b3957e0 * lib/pathname.rb: use assert_raise instead of assert_raises.
* lib/pp.rb: ditto.

* lib/time.rb: ditto.

* lib/tsort.rb: ditto.
  use TSortHash and TSortArray instead of Hash and Array in test.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-11 17:36:37 +00:00
matz
22c005569b * variable.c (rb_set_class_path): do not set path if
* lib/cgi.rb (CGI::QueryExtension): give extended string, not a
  delegater object.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-19 09:19:31 +00:00
matz
6760a5ed9f * parse.y (primary): allow no "when" case. [ruby-dev:22578]
* ruby.h (rb_class_of): reduce branch. [ruby-dev:22577]

* ruby.h (rb_type): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-13 05:48:59 +00:00