mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
ec1f9860b1
added parentheses to all `to_enum` and `super` calls where the return value is used (returned, assigned, or passed to another method). this makes the code style consistent with the guideline that method calls should use parentheses when their return values are consumed. changes: - return to_enum :symbol -> return to_enum(:symbol) - return to_enum :symbol, arg -> return to_enum(:symbol, arg) - super message, name -> super(message, name) affected files: 10error.rb, array.rb, enum.rb, hash.rb, kernel.rb, numeric.rb, range.rb Co-authored-by: Claude <noreply@anthropic.com>
93 lines
1.7 KiB
Ruby
93 lines
1.7 KiB
Ruby
##
|
|
# Array
|
|
#
|
|
# ISO 15.2.12
|
|
class Array
|
|
##
|
|
# call-seq:
|
|
# array.each {|element| ... } -> self
|
|
# array.each -> Enumerator
|
|
#
|
|
# Calls the given block for each element of `self`
|
|
# and pass the respective element.
|
|
#
|
|
# ISO 15.2.12.5.10
|
|
def each(&block)
|
|
return to_enum(:each) unless block
|
|
|
|
idx = 0
|
|
while idx < length
|
|
block.call(self[idx])
|
|
idx += 1
|
|
end
|
|
self
|
|
end
|
|
|
|
##
|
|
# call-seq:
|
|
# array.each_index {|index| ... } -> self
|
|
# array.each_index -> Enumerator
|
|
#
|
|
# Calls the given block for each element of `self`
|
|
# and pass the index of the respective element.
|
|
#
|
|
# ISO 15.2.12.5.11
|
|
def each_index(&block)
|
|
return to_enum(:each_index) unless block
|
|
|
|
idx = 0
|
|
while idx < length
|
|
block.call(idx)
|
|
idx += 1
|
|
end
|
|
self
|
|
end
|
|
|
|
##
|
|
# call-seq:
|
|
# array.collect! {|element| ... } -> self
|
|
# array.collect! -> new_enumerator
|
|
#
|
|
# Calls the given block for each element of `self`
|
|
# and pass the respective element. Each element will
|
|
# be replaced by the resulting values.
|
|
#
|
|
# ISO 15.2.12.5.7
|
|
def collect!(&block)
|
|
return to_enum(:collect!) unless block
|
|
|
|
idx = 0
|
|
len = size
|
|
while idx < len
|
|
self[idx] = block.call(self[idx])
|
|
idx += 1
|
|
end
|
|
self
|
|
end
|
|
|
|
##
|
|
# call-seq:
|
|
# array.map! {|element| ... } -> self
|
|
# array.map! -> new_enumerator
|
|
#
|
|
# Alias for collect!
|
|
#
|
|
# ISO 15.2.12.5.20
|
|
alias map! collect!
|
|
|
|
##
|
|
# call-seq:
|
|
# array.sort -> new_array
|
|
# array.sort {|a, b| ... } -> new_array
|
|
#
|
|
# Returns a new Array whose elements are those from `self`, sorted.
|
|
def sort(&block)
|
|
self.dup.sort!(&block)
|
|
end
|
|
|
|
##
|
|
# Array is enumerable
|
|
# ISO 15.2.12.3
|
|
include Enumerable
|
|
end
|