Class: Array
- Defined in:
- lib/githooks/core_ext/array/extract_options.rb,
lib/githooks/core_ext/array/min_max.rb,
lib/githooks/core_ext/array/select_with_index.rb
Overview
Copyright © 2013 Carl P. Corliss
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Direct Known Subclasses
Instance Method Summary collapse
- #extract_options ⇒ Object
- #extract_options! ⇒ Object
- #maximum(&_block) ⇒ Object (also: #max)
- #minimum(&_block) ⇒ Object (also: #min)
- #select_with_index(regexp = nil, &block) ⇒ Object
Instance Method Details
#extract_options ⇒ Object
24 25 26 |
# File 'lib/githooks/core_ext/array/extract_options.rb', line 24 def last.is_a?(Hash) ? last : {} end |
#extract_options! ⇒ Object
20 21 22 |
# File 'lib/githooks/core_ext/array/extract_options.rb', line 20 def last.is_a?(Hash) ? pop : {} end |
#maximum(&_block) ⇒ Object Also known as: max
31 32 33 34 35 36 37 |
# File 'lib/githooks/core_ext/array/min_max.rb', line 31 def maximum(&_block) collection = block_given? ? collect { |obj| yield obj } : self collection.inject(0) do |max, num| # rubocop:disable Style/EachWithObject max = num > max ? num : max max end end |
#minimum(&_block) ⇒ Object Also known as: min
22 23 24 25 26 27 28 |
# File 'lib/githooks/core_ext/array/min_max.rb', line 22 def minimum(&_block) collection = block_given? ? collect { |obj| yield obj } : self collection.inject(Infinity) do |min, num| # rubocop:disable Style/EachWithObject min = num < min ? num : min min end end |
#select_with_index(regexp = nil, &block) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/githooks/core_ext/array/select_with_index.rb', line 20 def select_with_index(regexp = nil, &block) [].tap do |collection| each_with_index do |node, index| if regexp.is_a? Regexp collection << [index, node] if node =~ regexp elsif block_given? collection << [index, node] if block.call(node) end end end end |