diff options
Diffstat (limited to 'mrblib/struct.rb')
| -rw-r--r-- | mrblib/struct.rb | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/mrblib/struct.rb b/mrblib/struct.rb index b11f59f2a..4b6d767a9 100644 --- a/mrblib/struct.rb +++ b/mrblib/struct.rb @@ -1,8 +1,14 @@ +## +# Struct # -# Struct -# +# ISO 15.2.18 class Struct - # 15.2.18.4.4 + + ## + # 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]) @@ -10,7 +16,12 @@ class Struct self end - # 15.2.18.4.5 + ## + # 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]) @@ -18,7 +29,12 @@ class Struct self end - # 15.2.18.4.7 + ## + # 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| |
