Class: File
- Inherits:
-
Object
- Object
- File
- Defined in:
- ext/extattr.c
Overview
File クラスに拡張属性を操作するメソッドを追加します。
感嘆符(『!』)のついたメソッドは、シンボリックリンクに対する操作となります。
メソッドにキーワード引数として namespace:
を与えることにより、拡張属性の名前空間を指定することが出来ます。 現在の実装においては EXTATTR_NAMESPACE_USER
と EXTATTR_NAMESPACE_SYSTEM
のみが利用可能です。
Class Method Summary collapse
-
.extattr_delete(argv[], file) ⇒ Object
File.extattr_delete(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> nil.
-
.extattr_delete!(argv[], file) ⇒ Object
File.extattr_delete!(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> nil.
-
.extattr_get(argv[], file) ⇒ Object
File.extattr_get(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> data.
-
.extattr_get!(argv[], file) ⇒ Object
File.extattr_get!(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> data.
-
.extattr_list(argv[], file) ⇒ Object
File.extattr_list(path, namespace: File::EXTATTR_NAMESPACE_USER) -> names array File.extattr_list(path, namespace: File::EXTATTR_NAMESPACE_USER) { |name| … } -> nil.
-
.extattr_list!(argv[], file) ⇒ Object
File.extattr_list!(path, namespace: File::EXTATTR_NAMESPACE_USER) -> names array File.extattr_list!(path, namespace: File::EXTATTR_NAMESPACE_USER) { |name| … } -> nil.
-
.extattr_set(argv[], file) ⇒ Object
File.extattr_set(path, name, data, namespace: File::EXTATTR_NAMESPACE_USER) -> nil.
-
.extattr_set!(argv[], file) ⇒ Object
File.extattr_set!(path, name, data, namespace: File::EXTATTR_NAMESPACE_USER) -> nil.
-
.extattr_size(argv[], file) ⇒ Object
File.extattr_size(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> size.
-
.extattr_size!(argv[], file) ⇒ Object
File.extattr_size!(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> size.
Instance Method Summary collapse
-
#extattr_delete(argv[], file) ⇒ Object
file.extattr_delete(name, namespace: File::EXTATTR_NAMESPACE_USER) -> nil.
-
#extattr_get(argv[], file) ⇒ Object
file.extattr_get(name, namespace: File::EXTATTR_NAMESPACE_USER) -> data.
-
#extattr_list(argv[], file) ⇒ Object
file.extattr_list(namespace: File::EXTATTR_NAMESPACE_USER) -> names array file.extattr_list(namespace: File::EXTATTR_NAMESPACE_USER) { |name| … } -> nil.
-
#extattr_set(argv[], file) ⇒ Object
file.extattr_set(name, data, namespace: File::EXTATTR_NAMESPACE_USER) -> nil.
-
#extattr_size(argv[], file) ⇒ Object
file.extattr_size(name, namespace: File::EXTATTR_NAMESPACE_USER) -> names array.
Class Method Details
.extattr_delete(argv[], file) ⇒ Object
File.extattr_delete(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> nil
279 280 281 282 283 284 285 286 287 |
# File 'ext/extattr.c', line 279 static VALUE file_s_extattr_delete(int argc, VALUE argv[], VALUE file) { VALUE path, name, opts = Qnil; rb_scan_args(argc, argv, "2:", &path, &name, &opts); return file_s_extattr_delete0(StringValue(path), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name)); } |
.extattr_delete!(argv[], file) ⇒ Object
File.extattr_delete!(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> nil
293 294 295 296 297 298 299 300 301 |
# File 'ext/extattr.c', line 293 static VALUE file_s_extattr_delete_link(int argc, VALUE argv[], VALUE file) { VALUE path, name, opts = Qnil; rb_scan_args(argc, argv, "2:", &path, &name, &opts); return file_s_extattr_delete_link0(StringValue(path), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name)); } |
.extattr_get(argv[], file) ⇒ Object
File.extattr_get(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> data
190 191 192 193 194 195 196 197 198 |
# File 'ext/extattr.c', line 190 static VALUE file_s_extattr_get(int argc, VALUE argv[], VALUE file) { VALUE path, name, opts = Qnil; rb_scan_args(argc, argv, "2:", &path, &name, &opts); return file_s_extattr_get0(StringValue(path), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name)); } |
.extattr_get!(argv[], file) ⇒ Object
File.extattr_get!(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> data
204 205 206 207 208 209 210 211 212 |
# File 'ext/extattr.c', line 204 static VALUE file_s_extattr_get_link(int argc, VALUE argv[], VALUE file) { VALUE path, name, opts = Qnil; rb_scan_args(argc, argv, "2:", &path, &name, &opts); return file_s_extattr_get_link0(StringValue(path), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name)); } |
.extattr_list(argv[], file) ⇒ Object
File.extattr_list(path, namespace: File::EXTATTR_NAMESPACE_USER) -> names array File.extattr_list(path, namespace: File::EXTATTR_NAMESPACE_USER) { |name| … } -> nil
ファイル名を指定すること以外は File#extattr_list と同じです。
101 102 103 104 105 106 107 108 |
# File 'ext/extattr.c', line 101 static VALUE file_s_extattr_list(int argc, VALUE argv[], VALUE file) { VALUE path, opts = Qnil; rb_scan_args(argc, argv, "1:", &path, &opts); return file_s_extattr_list0(StringValue(path), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER)))); } |
.extattr_list!(argv[], file) ⇒ Object
File.extattr_list!(path, namespace: File::EXTATTR_NAMESPACE_USER) -> names array File.extattr_list!(path, namespace: File::EXTATTR_NAMESPACE_USER) { |name| … } -> nil
シンボリックリンクに対する操作という以外は、File.extattr_list と同じです。
117 118 119 120 121 122 123 124 |
# File 'ext/extattr.c', line 117 static VALUE file_s_extattr_list_link(int argc, VALUE argv[], VALUE file) { VALUE path, opts = Qnil; rb_scan_args(argc, argv, "1:", &path, &opts); return file_s_extattr_list_link0(StringValue(path), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER)))); } |
.extattr_set(argv[], file) ⇒ Object
File.extattr_set(path, name, data, namespace: File::EXTATTR_NAMESPACE_USER) -> nil
234 235 236 237 238 239 240 241 242 243 |
# File 'ext/extattr.c', line 234 static VALUE file_s_extattr_set(int argc, VALUE argv[], VALUE file) { VALUE path, name, data, opts = Qnil; rb_scan_args(argc, argv, "21:", &path, &name, &data, &opts); return file_s_extattr_set0(StringValue(path), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name), StringValue(data)); } |
.extattr_set!(argv[], file) ⇒ Object
File.extattr_set!(path, name, data, namespace: File::EXTATTR_NAMESPACE_USER) -> nil
249 250 251 252 253 254 255 256 257 258 |
# File 'ext/extattr.c', line 249 static VALUE file_s_extattr_set_link(int argc, VALUE argv[], VALUE file) { VALUE path, name, data, opts = Qnil; rb_scan_args(argc, argv, "21:", &path, &name, &data, &opts); return file_s_extattr_set_link0(StringValue(path), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name), StringValue(data)); } |
.extattr_size(argv[], file) ⇒ Object
File.extattr_size(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> size
147 148 149 150 151 152 153 154 155 |
# File 'ext/extattr.c', line 147 static VALUE file_s_extattr_size(int argc, VALUE argv[], VALUE file) { VALUE path, name, opts = Qnil; rb_scan_args(argc, argv, "2:", &path, &name, &opts); return file_s_extattr_size0(StringValue(path), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name)); } |
.extattr_size!(argv[], file) ⇒ Object
File.extattr_size!(path, name, namespace: File::EXTATTR_NAMESPACE_USER) -> size
161 162 163 164 165 166 167 168 169 |
# File 'ext/extattr.c', line 161 static VALUE file_s_extattr_size_link(int argc, VALUE argv[], VALUE file) { VALUE path, name, opts = Qnil; rb_scan_args(argc, argv, "2:", &path, &name, &opts); return file_s_extattr_size_link0(StringValue(path), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name)); } |
Instance Method Details
#extattr_delete(argv[], file) ⇒ Object
file.extattr_delete(name, namespace: File::EXTATTR_NAMESPACE_USER) -> nil
265 266 267 268 269 270 271 272 273 |
# File 'ext/extattr.c', line 265 static VALUE file_extattr_delete(int argc, VALUE argv[], VALUE file) { VALUE name, opts = Qnil; rb_scan_args(argc, argv, "1:", &name, &opts); return file_extattr_delete0(file, file2fd(file), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name)); } |
#extattr_get(argv[], file) ⇒ Object
file.extattr_get(name, namespace: File::EXTATTR_NAMESPACE_USER) -> data
176 177 178 179 180 181 182 183 184 |
# File 'ext/extattr.c', line 176 static VALUE file_extattr_get(int argc, VALUE argv[], VALUE file) { VALUE name, opts = Qnil; rb_scan_args(argc, argv, "1:", &name, &opts); return file_extattr_get0(file, file2fd(file), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name)); } |
#extattr_list(argv[], file) ⇒ Object
file.extattr_list(namespace: File::EXTATTR_NAMESPACE_USER) -> names array file.extattr_list(namespace: File::EXTATTR_NAMESPACE_USER) { |name| … } -> nil
開いているファイルの拡張属性名一覧を得ます。
ブロックが指定された場合、一つ一つの拡張属性名を渡してブロックが評価されます。ブロックの戻り値は無視されます。
85 86 87 88 89 90 91 92 |
# File 'ext/extattr.c', line 85 static VALUE file_extattr_list(int argc, VALUE argv[], VALUE file) { VALUE opts = Qnil; rb_scan_args(argc, argv, "0:", &opts); return file_extattr_list0(file, file2fd(file), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER)))); } |
#extattr_set(argv[], file) ⇒ Object
file.extattr_set(name, data, namespace: File::EXTATTR_NAMESPACE_USER) -> nil
219 220 221 222 223 224 225 226 227 228 |
# File 'ext/extattr.c', line 219 static VALUE file_extattr_set(int argc, VALUE argv[], VALUE file) { VALUE name, data, opts = Qnil; rb_scan_args(argc, argv, "11:", &name, &data, &opts); return file_extattr_set0(file, file2fd(file), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name), StringValue(data)); } |
#extattr_size(argv[], file) ⇒ Object
file.extattr_size(name, namespace: File::EXTATTR_NAMESPACE_USER) -> names array
拡張属性の大きさを取得します。
133 134 135 136 137 138 139 140 141 |
# File 'ext/extattr.c', line 133 static VALUE file_extattr_size(int argc, VALUE argv[], VALUE file) { VALUE name, opts = Qnil; rb_scan_args(argc, argv, "1:", &name, &opts); return file_extattr_size0(file, file2fd(file), NUM2INT(hash_lookup(opts, SYMnamespace, INT2NUM(EXTATTR_NAMESPACE_USER))), StringValue(name)); } |