diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-04-24 00:35:34 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-04-24 00:35:34 +0000 |
commit | ca258c86cfdd9a23b7e2b5d771374c381ac444f7 (patch) | |
tree | 25d247ad0e27f72169ff8f105cc846990ea97d05 /file.c | |
parent | d8bb478e260d38be340276166e2d5c3a9206219e (diff) | |
download | ruby-ca258c86cfdd9a23b7e2b5d771374c381ac444f7.tar.gz |
file.c: statfs_inspect
* file.c (statfs_inspect): add File::Statfs#inspect method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'file.c')
-rw-r--r-- | file.c | 38 |
1 files changed, 38 insertions, 0 deletions
@@ -5550,6 +5550,43 @@ statfs_fstypename(VALUE self) #else #define statfs_fstypename rb_f_notimplement #endif + +/* + * call-seq: + * st.inspect -> string + * + * Returns total file nodes in filesystem. + * + * f = File.new("testfile") + * s = f.statfs + * s.inspect #=> "" + * #=> "#<File::Statfs type=zfs, bsize=4096, blocks=900000/1000000/2000000, files=100000/200000> + * + * +blocks+ are numbers of available/free/total blocks. + * +files+ are numbers of free/total files. + */ + +static VALUE +statfs_inspect(VALUE self) +{ + struct statfs*st = get_statfs(self); + return rb_sprintf("#<%"PRIsVALUE" type=%d" +#ifdef HAVE_STRUCT_STATFS_F_FSTYPENAME + "(%s)" +#endif + ", bsize=%ld" + ", blocks=%"PRI_LL_PREFIX"d/%"PRI_LL_PREFIX"d/%"PRI_LL_PREFIX"d" + ", files=%"PRI_LL_PREFIX"d/%"PRI_LL_PREFIX"d" + ">", + rb_obj_class(self), st->f_type, +#ifdef HAVE_STRUCT_STATFS_F_FSTYPENAME + st->f_fstypename, +#endif + (long)st->f_bsize, + st->f_bavail, st->f_bfree, st->f_blocks, + st->f_ffree, st->f_files); +} + #endif VALUE rb_mFConst; @@ -6149,5 +6186,6 @@ Init_File(void) rb_define_method(rb_cStatfs, "files", statfs_files, 0); rb_define_method(rb_cStatfs, "ffree", statfs_ffree, 0); rb_define_method(rb_cStatfs, "fstypename", statfs_fstypename, 0); + rb_define_method(rb_cStatfs, "inspect", statfs_inspect, 0); #endif } |