/* * @overload delete(id) * Delete a record that has ID @id@. * * @param id [Integer] The ID of delete target record. * * @return void * * @overload delete(key) * Delete a record that has key @key@. * * @param key [Object] The key of delete target record. * * @return void * * @overload delete * @yield [record] * TODO: See #select. * @yieldparam [Groonga::RecodExpressionBuilder] record * TODO: See #select. * @yieldreturn [Groonga::ExpressionBuilder] * TODO: See #select. * * @return void */ static VALUE rb_grn_table_key_support_delete (int argc, VALUE *argv, VALUE self) { VALUE rb_id_or_key; if (rb_block_given_p()) { return rb_grn_table_delete_by_expression(self); } rb_scan_args(argc, argv, "1", &rb_id_or_key); if (FIXNUM_P(rb_id_or_key)) { return rb_grn_table_delete_by_id(self, rb_id_or_key); } else { return rb_grn_table_key_support_delete_by_key(self, rb_id_or_key); } }
/* * @overload delete(id, :id=>true) * Delete a record that has ID @id@. * * @param id [Integer] The ID of delete target record. * * @return void * * @overload delete(key) * Delete a record that has key @key@. * * @param key [Object] The key of delete target record. * * @return void * * @overload delete * @yield [record] * TODO: See #select. * @yieldparam [Groonga::RecodExpressionBuilder] record * TODO: See #select. * @yieldreturn [Groonga::ExpressionBuilder] * TODO: See #select. * * @return void */ static VALUE rb_grn_table_key_support_delete (int argc, VALUE *argv, VALUE self) { VALUE rb_id_or_key, rb_options; VALUE rb_option_id; if (rb_block_given_p()) { return rb_grn_table_delete_by_expression(self); } rb_scan_args(argc, argv, "11", &rb_id_or_key, &rb_options); rb_grn_scan_options(rb_options, "id", &rb_option_id, NULL); if (RVAL2CBOOL(rb_option_id)) { return rb_grn_table_delete_by_id(self, rb_id_or_key); } else { return rb_grn_table_key_support_delete_by_key(self, rb_id_or_key); } }