Hi,

it seems that when a RowProcessor used as a before_write returns nil, the
row is removed from the pipeline, but when the same processor is used as an
after_read, the nil row remains in the pipeline (and the next processor will
most likely raise a nil exception at soon as it interacts with the row).

The difference seems to lie in engine.rb (process_control):

after_read:                 rows = processed_rows.flatten
before_write:              rows = processed_rows.flatten.compact

Is there a specific reason for not having compact called as well on
after_read ?

My feeling is that it may be worth DRYing process_control - for the moment I
didn't analyse further to evaluate the cost and possible side-effects on
existing installations though...

cheers

Thibaut
_______________________________________________
Activewarehouse-discuss mailing list
Activewarehouse-discuss@rubyforge.org
http://rubyforge.org/mailman/listinfo/activewarehouse-discuss

Reply via email to