From 3f1814ce3aba08802e0ff73a41cd542ebe9d3def Mon Sep 17 00:00:00 2001 From: mattn Date: Fri, 1 Mar 2013 15:33:52 +0900 Subject: Move mrblib for Struct --- mrbgems/mruby-struct/mrblib/struct.rb | 50 +++++++++++++++++++++++++++++++++++ mrblib/struct.rb | 50 ----------------------------------- 2 files changed, 50 insertions(+), 50 deletions(-) create mode 100644 mrbgems/mruby-struct/mrblib/struct.rb delete mode 100644 mrblib/struct.rb diff --git a/mrbgems/mruby-struct/mrblib/struct.rb b/mrbgems/mruby-struct/mrblib/struct.rb new file mode 100644 index 000000000..5d0ede90f --- /dev/null +++ b/mrbgems/mruby-struct/mrblib/struct.rb @@ -0,0 +1,50 @@ +## +# Struct +# +# ISO 15.2.18 + +if Object.const_defined?(:Struct) + class Struct + + ## + # Calls the given block for each element of +self+ + # and pass the respective element. + # + # ISO 15.2.18.4.4 + def each(&block) + self.class.members.each{|field| + block.call(self[field]) + } + self + end + + ## + # Calls the given block for each element of +self+ + # and pass the name and value of the respectiev + # element. + # + # ISO 15.2.18.4.5 + def each_pair(&block) + self.class.members.each{|field| + block.call(field.to_sym, self[field]) + } + self + end + + ## + # Calls the given block for each element of +self+ + # and returns an array with all elements of which + # block is not false. + # + # ISO 15.2.18.4.7 + def select(&block) + ary = [] + self.class.members.each{|field| + val = self[field] + ary.push(val) if block.call(val) + } + ary + end + end +end + diff --git a/mrblib/struct.rb b/mrblib/struct.rb deleted file mode 100644 index 5d0ede90f..000000000 --- a/mrblib/struct.rb +++ /dev/null @@ -1,50 +0,0 @@ -## -# Struct -# -# ISO 15.2.18 - -if Object.const_defined?(:Struct) - class Struct - - ## - # Calls the given block for each element of +self+ - # and pass the respective element. - # - # ISO 15.2.18.4.4 - def each(&block) - self.class.members.each{|field| - block.call(self[field]) - } - self - end - - ## - # Calls the given block for each element of +self+ - # and pass the name and value of the respectiev - # element. - # - # ISO 15.2.18.4.5 - def each_pair(&block) - self.class.members.each{|field| - block.call(field.to_sym, self[field]) - } - self - end - - ## - # Calls the given block for each element of +self+ - # and returns an array with all elements of which - # block is not false. - # - # ISO 15.2.18.4.7 - def select(&block) - ary = [] - self.class.members.each{|field| - val = self[field] - ary.push(val) if block.call(val) - } - ary - end - end -end - -- cgit v1.2.3