method
sub_ext
v1_9_3_125 -
Show latest stable
- Class:
Pathname
sub_ext(p1)public
Return a pathname which the extension of the basename is substituted by repl.
If self has no extension part, repl is appended.
static VALUE
path_sub_ext(VALUE self, VALUE repl)
{
VALUE str = get_strpath(self);
VALUE str2;
long extlen;
const char *ext;
const char *p;
StringValue(repl);
p = RSTRING_PTR(str);
ext = ruby_find_extname(p, &extlen);
if (ext == NULL) {
ext = p + RSTRING_LEN(str);
}
else if (extlen <= 1) {
ext += extlen;
}
str2 = rb_str_dup(str);
rb_str_resize(str2, ext-p);
rb_str_append(str2, repl);
OBJ_INFECT(str2, str);
return rb_class_new_instance(1, &str2, rb_obj_class(self));
} Related methods
- Instance methods
- +
- <=>
- ==
- ===
- absolute?
- ascend
- atime
- basename
- binread
- blockdev?
- chardev?
- children
- chmod
- chown
- cleanpath
- ctime
- delete
- descend
- directory?
- dirname
- each_child
- each_entry
- each_filename
- each_line
- entries
- eql?
- executable?
- executable_real?
- exist?
- expand_path
- extname
- file?
- find
- fnmatch
- fnmatch?
- freeze
- ftype
- grpowned?
- hash
- inspect
- join
- lchmod
- lchown
- lstat
- make_link
- make_symlink
- mkdir
- mkpath
- mountpoint?
- mtime
- open
- opendir
- owned?
- parent
- pipe?
- read
- readable?
- readable_real?
- readlines
- readlink
- realdirpath
- realpath
- relative?
- relative_path_from
- rename
- rmdir
- rmtree
- root?
- setgid?
- setuid?
- size
- size?
- socket?
- split
- stat
- sticky?
- sub
- sub_ext
- symlink?
- sysopen
- taint
- to_path
- to_s
- truncate
- unlink
- untaint
- utime
- world_readable?
- world_writable?
- writable?
- writable_real?
- zero?
- Class methods
- getwd
- glob
- new
- pwd
- Private methods
-
add_trailing_separator -
chop_basename -
cleanpath_aggressive -
cleanpath_conservative -
del_trailing_separator -
has_trailing_separator? -
plus -
prepend_prefix -
split_names