summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-struct/mrblib/struct.rb
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-struct/mrblib/struct.rb')
-rw-r--r--mrbgems/mruby-struct/mrblib/struct.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/mrbgems/mruby-struct/mrblib/struct.rb b/mrbgems/mruby-struct/mrblib/struct.rb
index 5d0ede90f..57f100acd 100644
--- a/mrbgems/mruby-struct/mrblib/struct.rb
+++ b/mrbgems/mruby-struct/mrblib/struct.rb
@@ -45,6 +45,37 @@ if Object.const_defined?(:Struct)
}
ary
end
+
+ def _inspect
+ str = "#<struct #{self.class.to_s} "
+ buf = []
+ self.each_pair do |k,v|
+ buf.push [k.to_s + "=" + v._inspect]
+ end
+ str + buf.join(", ") + ">"
+ end
+
+ ##
+ # call-seq:
+ # struct.to_s -> string
+ # struct.inspect -> string
+ #
+ # Describe the contents of this struct in a string.
+ #
+ # 15.2.18.4.10(x)
+ #
+ def inspect
+ begin
+ self._inspect
+ rescue SystemStackError
+ "#<struct #{self.class.to_s}:...>"
+ end
+ end
+
+ ##
+ # 15.2.18.4.11(x)
+ #
+ alias to_s inspect
end
end