ext/attribute_builder/attribute_builder.c in faml-0.2.11 vs ext/attribute_builder/attribute_builder.c in faml-0.2.12
- old
+ new
@@ -7,11 +7,11 @@
# define RARRAY_AREF(a, i) RARRAY_PTR(a)[i]
# define rb_ary_new_capa rb_ary_new2
#endif
VALUE rb_mAttributeBuilder;
-static ID id_keys, id_sort_bang, id_merge_bang, id_temple, id_utils, id_escape_html, id_gsub, id_to_s;
+static ID id_keys, id_sort_bang, id_uniq_bang, id_merge_bang, id_temple, id_utils, id_escape_html, id_gsub, id_to_s;
static void
concat_array_attribute(VALUE attributes, VALUE hash, VALUE key)
{
VALUE v;
@@ -177,10 +177,11 @@
for (i = 0; i < len; i++) {
VALUE v = RARRAY_AREF(value, i);
rb_ary_push(ary, rb_funcall(v, id_to_s, 0));
}
rb_funcall(ary, id_sort_bang, 0);
+ rb_funcall(ary, id_uniq_bang, 0);
return put_attribute(attr_quote, key, rb_ary_join(ary, rb_str_new_cstr(" ")));
}
} else if (strcmp(key_cstr, "id") == 0) {
long len = RARRAY_LEN(value);
@@ -249,9 +250,10 @@
rb_define_singleton_method(rb_mAttributeBuilder, "build", RUBY_METHOD_FUNC(m_build), -1);
rb_define_singleton_method(rb_mAttributeBuilder, "normalize_data", RUBY_METHOD_FUNC(m_normalize_data), 1);
id_keys = rb_intern("keys");
id_sort_bang = rb_intern("sort!");
+ id_uniq_bang = rb_intern("uniq!");
id_merge_bang = rb_intern("merge!");
id_temple = rb_intern("Temple");
id_utils = rb_intern("Utils");
id_escape_html = rb_intern("escape_html");
id_gsub = rb_intern("gsub");