[PATCH v2 36/44] ruby: bind shortlog()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx>
---

Notes:
    There's no need to bind all the shortlog functions, we can easily pass all the
    commits we want in Ruby.

 ruby.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/ruby.c b/ruby.c
index d9ee985..d59aafd 100644
--- a/ruby.c
+++ b/ruby.c
@@ -7,6 +7,7 @@
 #include "transport.h"
 #include "revision.h"
 #include "diff.h"
+#include "shortlog.h"
 
 #undef NORETURN
 #undef PATH_SEP
@@ -344,6 +345,21 @@ static VALUE git_rb_rev_info_diffopt(VALUE self)
 	return Data_Wrap_Struct(git_rb_diff_opt, NULL, NULL, &revs->diffopt);
 }
 
+static VALUE git_rb_shortlog(VALUE self, VALUE commits)
+{
+	struct shortlog log;
+	int i;
+
+	shortlog_init(&log);
+	for (i = 0; i < RARRAY_LEN(commits); i++) {
+		struct commit *commit;
+		Data_Get_Struct(rb_ary_entry(commits, i), struct commit, commit);
+		shortlog_add_commit(&log, commit);
+	}
+	shortlog_output(&log);
+	return Qnil;
+}
+
 static VALUE git_rb_diff_opt_new(VALUE class)
 {
 	struct diff_options *opt;
@@ -460,6 +476,7 @@ static void git_ruby_init(void)
 	rb_define_global_function("transport_get", git_rb_transport_get, 2);
 	rb_define_global_function("find_unique_abbrev", git_rb_find_unique_abbrev, 2);
 	rb_define_global_function("read_sha1_file", git_rb_read_sha1_file, 1);
+	rb_define_global_function("shortlog", git_rb_shortlog, 1);
 
 	git_rb_object = rb_define_class_under(mod, "Object", rb_cData);
 	rb_define_singleton_method(git_rb_object, "get", git_rb_object_get, 1);
-- 
1.8.4-fc

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]