Module: Enumerable
- Defined in:
- lib/enumerable_lz/filter.rb,
lib/enumerable_lz.rb,
lib/enumerable_lz/filter_18.rb,
lib/enumerable_lz/transform.rb,
lib/enumerable_lz/filter_mrb.rb,
lib/enumerable_lz/transform_18.rb,
lib/enumerable_lz/enumerable_ex.rb,
lib/enumerable_lz/transform_mrb.rb
Overview
Defined Under Namespace
Modules: EnumerableLz
Classes: Filter, Transform
Instance Method Summary
collapse
Instance Method Details
#drop_lz(n) ⇒ Object
22
23
24
25
26
27
|
# File 'lib/enumerable_lz/enumerable_ex.rb', line 22
def drop_lz n
raise ArgumentError, "attempt to take negative size" if n < 0
cnt = 0
filter_with_initproc(Proc.new{cnt=0}) {|el| (cnt+=1) > n}
end
|
#drop_while_lz(&block) ⇒ Object
29
30
31
32
33
|
# File 'lib/enumerable_lz/enumerable_ex.rb', line 29
def drop_while_lz &block
return self if !block_given?
flg = false
filter_with_initproc(Proc.new{flg=false}) {|el|flg || (!block.call(el) ? flg = true : false)}
end
|
#filter(pattern = nil, &block) ⇒ Object
3
4
5
|
# File 'lib/enumerable_lz/filter.rb', line 3
def filter pattern = nil, &block
Filter.new self, pattern||block
end
|
#filter_with_initproc(init_proc, pattern = nil, &block) ⇒ Object
7
8
9
|
# File 'lib/enumerable_lz/filter.rb', line 7
def filter_with_initproc init_proc, pattern = nil, &block
Filter.new self, init_proc, pattern||block
end
|
#grep_lz(pattern, &block) ⇒ Object
14
15
16
17
|
# File 'lib/enumerable_lz/enumerable_ex.rb', line 14
def grep_lz pattern, &block
enum = filter pattern
block_given? ? enum.transform(&block) : enum
end
|
#map_lz ⇒ Object
Also known as:
collect_lz
19
20
21
|
# File 'lib/enumerable_lz/enumerable_ex.rb', line 19
def transform &block
Transform.new self, &block
end
|
#reject_lz(&block) ⇒ Object
10
11
12
|
# File 'lib/enumerable_lz/enumerable_ex.rb', line 10
def reject_lz &block
filter {|e|!block.call(e)}
end
|
#select_lz(&block) ⇒ Object
Also known as:
find_all_lz
4
5
6
|
# File 'lib/enumerable_lz/enumerable_ex.rb', line 4
def select_lz &block
filter &block
end
|
#take_lz(n) ⇒ Object
35
36
37
38
39
40
|
# File 'lib/enumerable_lz/enumerable_ex.rb', line 35
def take_lz n
raise ArgumentError, "attempt to take negative size" if n < 0
cnt = 0
filter_with_initproc(Proc.new{cnt=0}) {|el| throw :do_break if (cnt+=1) > n;true}
end
|
#take_while_lz(&block) ⇒ Object
42
43
44
45
|
# File 'lib/enumerable_lz/enumerable_ex.rb', line 42
def take_while_lz &block
return self if !block_given?
filter {|el|throw :do_break unless block.call(el);true}
end
|
3
4
5
|
# File 'lib/enumerable_lz/transform.rb', line 3
def transform &block
Transform.new self, &block
end
|