summaryrefslogtreecommitdiffhomepage
path: root/src/hash.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-04-01 14:21:40 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-04-01 14:21:40 +0900
commitcf58d0d3e9ca12a922b452473427bcf66598fae3 (patch)
tree59a34cd6867087dcf6da1410d748f55e5497c3ce /src/hash.c
parentf05069fd1a80c0fd46f92a7763ba0dbcab0feebc (diff)
downloadmruby-cf58d0d3e9ca12a922b452473427bcf66598fae3.tar.gz
mruby-cf58d0d3e9ca12a922b452473427bcf66598fae3.zip
move Hash#inspect implementation to mrblib/hash.rb
Diffstat (limited to 'src/hash.c')
-rw-r--r--src/hash.c58
1 files changed, 0 insertions, 58 deletions
diff --git a/src/hash.c b/src/hash.c
index 3b4b2a003..c2b410b9d 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -721,62 +721,6 @@ mrb_hash_empty_p(mrb_state *mrb, mrb_value self)
return mrb_true_value();
}
-static mrb_value
-inspect_hash(mrb_state *mrb, mrb_value hash, int recur)
-{
- mrb_value str, str2;
- khash_t(ht) *h = RHASH_TBL(hash);
- khiter_t k;
-
- if (recur) return mrb_str_new_lit(mrb, "{...}");
-
- str = mrb_str_new_lit(mrb, "{");
- if (h && kh_size(h) > 0) {
- for (k = kh_begin(h); k != kh_end(h); k++) {
- int ai;
-
- if (!kh_exist(h,k)) continue;
-
- ai = mrb_gc_arena_save(mrb);
-
- if (RSTRING_LEN(str) > 1) mrb_str_cat_lit(mrb, str, ", ");
-
- str2 = mrb_inspect(mrb, kh_key(h,k));
- mrb_str_append(mrb, str, str2);
- mrb_str_cat_lit(mrb, str, "=>");
- str2 = mrb_inspect(mrb, kh_value(h,k).v);
- mrb_str_append(mrb, str, str2);
-
- mrb_gc_arena_restore(mrb, ai);
- }
- }
- mrb_str_cat_lit(mrb, str, "}");
-
- return str;
-}
-
-/* 15.2.13.4.30 (x)*/
-/*
- * call-seq:
- * hsh.to_s -> string
- * hsh.inspect -> string
- *
- * Return the contents of this hash as a string.
- *
- * h = { "c" => 300, "a" => 100, "d" => 400, "c" => 300 }
- * h.to_s #=> "{\"c\"=>300, \"a\"=>100, \"d\"=>400}"
- */
-
-static mrb_value
-mrb_hash_inspect(mrb_state *mrb, mrb_value hash)
-{
- khash_t(ht) *h = RHASH_TBL(hash);
-
- if (!h || kh_size(h) == 0)
- return mrb_str_new_lit(mrb, "{}");
- return inspect_hash(mrb, hash, 0);
-}
-
/* 15.2.13.4.29 (x)*/
/*
* call-seq:
@@ -1074,7 +1018,5 @@ mrb_init_hash(mrb_state *mrb)
mrb_define_method(mrb, h, "values", mrb_hash_values, MRB_ARGS_NONE()); /* 15.2.13.4.28 */
mrb_define_method(mrb, h, "to_hash", mrb_hash_to_hash, MRB_ARGS_NONE()); /* 15.2.13.4.29 (x)*/
- mrb_define_method(mrb, h, "inspect", mrb_hash_inspect, MRB_ARGS_NONE()); /* 15.2.13.4.30 (x)*/
- mrb_define_alias(mrb, h, "to_s", "inspect"); /* 15.2.13.4.31 (x)*/
mrb_define_method(mrb, h, "eql?", mrb_hash_eql, MRB_ARGS_REQ(1)); /* 15.2.13.4.32 (x)*/
}