Method: Rugged::Diff#write_patch
- Defined in:
- ext/rugged/rugged_diff.c
permalink #write_patch(io) ⇒ nil #write_patch(io, : compact) ⇒ Object
Write a patch directly to an object which responds to “write”.
249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 |
# File 'ext/rugged/rugged_diff.c', line 249
static VALUE rb_git_diff_write_patch(int argc, VALUE *argv, VALUE self)
{
git_diff *diff;
VALUE rb_io, rb_opts;
rb_scan_args(argc, argv, "10:", &rb_io, &rb_opts);
if (!rb_respond_to(rb_io, rb_intern("write")))
rb_raise(rb_eArgError, "Expected io to respond to \"write\"");
Data_Get_Struct(self, git_diff, diff);
if (!NIL_P(rb_opts)) {
if (rb_hash_aref(rb_opts, CSTR2SYM("compact")) == Qtrue)
git_diff_print(diff, GIT_DIFF_FORMAT_NAME_STATUS, diff_write_cb, (void*)rb_io);
else
git_diff_print(diff, GIT_DIFF_FORMAT_PATCH, diff_write_cb, (void*)rb_io);
} else {
git_diff_print(diff, GIT_DIFF_FORMAT_PATCH, diff_write_cb, (void*)rb_io);
}
return Qnil;
}
|