Class: Enumerable::Transform
- Inherits:
-
Enumerator
- Object
- Enumerator
- Enumerable::Transform
- Defined in:
- lib/enumerable_lz/transform.rb,
lib/enumerable_lz/transform_18.rb,
lib/enumerable_lz/transform_mrb.rb
Instance Method Summary collapse
- #each(&block) ⇒ Object
-
#initialize(obj, &transformer) ⇒ Transform
constructor
A new instance of Transform.
-
#transform(&block) ⇒ Object
[override].
- #transform!(&block) ⇒ Object
Constructor Details
#initialize(obj, &transformer) ⇒ Transform
Returns a new instance of Transform.
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/enumerable_lz/transform.rb', line 8 def initialize obj, &transformer @org_enum = obj super() do |y| the_transformer = compile_transformer obj.each do |el| y << the_transformer[el] end end transform! &transformer if block_given? end |
Instance Method Details
#each(&block) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/enumerable_lz/transform_18.rb', line 13 def each &block return self unless block_given? the_transformer = compile_transformer @org_enum.each do |el| block.call the_transformer[el] end self end |
#transform(&block) ⇒ Object
- override
26 27 28 29 30 31 32 33 |
# File 'lib/enumerable_lz/transform.rb', line 26 def transform &block # clone.transform! &block cp = Transform.new @org_enum @transformer.each do |org_block| cp.transform! &org_block end unless @transformer.nil? cp.transform! &block end |
#transform!(&block) ⇒ Object
19 20 21 22 23 |
# File 'lib/enumerable_lz/transform.rb', line 19 def transform! &block @transformer||=[] @transformer << block if block_given? self end |