Module: Enumerable
- Included in:
- NRSER::Sys::Env::Path
- Defined in:
- lib/nrser/core_ext/enumerable.rb,
lib/nrser/core_ext/enumerable/find_map.rb,
lib/nrser/core_ext/enumerable/slash_map.rb
Overview
Instance methods to extend Enumerable.
Instance Method Summary collapse
-
#/(proc_able) ⇒ Enumerable
An idea I’m playing around with for convenient mapping of Enumerable.
-
#assoc_by(*args, &block) ⇒ Object
See NRSER.assoc_by.
-
#assoc_to(*args, &block) ⇒ Object
See NRSER.assoc_to.
-
#count_by(&block) ⇒ Object
See NRSER.count_by.
- #enumerate_as_values ⇒ Object
-
#find_bounded(bounds, &block) ⇒ Object
See NRSER.find_bounded.
-
#find_map(ifnone = nil, &block) ⇒ nil, ...
Find the first truthy (not ‘nil` or `false`) result of calling `&block` on entries.
-
#find_only(&block) ⇒ Object
See NRSER.find_only.
-
#find_only!(&block) ⇒ Object
Right now, exactly the same as #find_only…
-
#only(**options) ⇒ Object
Calls NRSER.only on ‘self`.
-
#only! ⇒ Object
See NRSER.only!.
-
#slice?(*args, &block) ⇒ Boolean
See NRSER.slice?.
-
#try_find(&block) ⇒ Object
See NRSER.try_find.
Instance Method Details
#/(proc_able) ⇒ Enumerable
EXPERIMENTAL!
An idea I’m playing around with for convenient mapping of Enumerable.
Not so bad, eh? I’m calling it “slash-map” for the moment, BTW.
33 34 35 |
# File 'lib/nrser/core_ext/enumerable/slash_map.rb', line 33 def / proc_able map &proc_able end |
#assoc_by(*args, &block) ⇒ Object
See NRSER.assoc_by
35 36 37 |
# File 'lib/nrser/core_ext/enumerable.rb', line 35 def assoc_by *args, &block NRSER.assoc_by self, *args, &block end |
#assoc_to(*args, &block) ⇒ Object
See NRSER.assoc_to
41 42 43 |
# File 'lib/nrser/core_ext/enumerable.rb', line 41 def assoc_to *args, &block NRSER.assoc_to self, *args, &block end |
#count_by(&block) ⇒ Object
See NRSER.count_by
65 66 67 |
# File 'lib/nrser/core_ext/enumerable.rb', line 65 def count_by &block NRSER.count_by self, &block end |
#enumerate_as_values ⇒ Object
47 48 49 |
# File 'lib/nrser/core_ext/enumerable.rb', line 47 def enumerate_as_values NRSER.enumerate_as_values self end |
#find_bounded(bounds, &block) ⇒ Object
11 12 13 |
# File 'lib/nrser/core_ext/enumerable.rb', line 11 def find_bounded bounds, &block NRSER.find_bounded self, bounds, &block end |
#find_map(ifnone = nil, &block) ⇒ nil, ...
Find the first truthy (not ‘nil` or `false`) result of calling `&block` on entries.
Like #find, accepts an optional ‘ifnone` procedure to call if no match is found.
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/nrser/core_ext/enumerable/find_map.rb', line 44 def find_map ifnone = nil, &block each do |entry| if result = block.call( entry ) # Found a match, short-circuit return result end end # No matches, return `ifnone` ifnone.call if ifnone end |
#find_only(&block) ⇒ Object
See NRSER.find_only
17 18 19 |
# File 'lib/nrser/core_ext/enumerable.rb', line 17 def find_only &block NRSER.find_only self, &block end |
#find_only!(&block) ⇒ Object
Right now, exactly the same as #find_only… though I wished I had called it this and had #find_only return ‘nil` if it failed, as is kind-of a some-what established practice, because now I get confused.
Maybe some day I will make that change. For now, this is here so when I forget and add the ‘!` it works.
29 30 31 |
# File 'lib/nrser/core_ext/enumerable.rb', line 29 def find_only! &block NRSER.find_only self, &block end |
#only(**options) ⇒ Object
Calls NRSER.only on ‘self`.
53 54 55 |
# File 'lib/nrser/core_ext/enumerable.rb', line 53 def only ** NRSER.only self, ** end |
#only! ⇒ Object
See NRSER.only!
59 60 61 |
# File 'lib/nrser/core_ext/enumerable.rb', line 59 def only! NRSER.only! self end |
#slice?(*args, &block) ⇒ Boolean
See NRSER.slice?
77 78 79 |
# File 'lib/nrser/core_ext/enumerable.rb', line 77 def slice? *args, &block NRSER.slice? self, *args, &block end |
#try_find(&block) ⇒ Object
See NRSER.try_find
71 72 73 |
# File 'lib/nrser/core_ext/enumerable.rb', line 71 def try_find &block NRSER.try_find self, &block end |