Project

General

Profile

Feature #15829

Updated by nobu (Nobuyoshi Nakada) over 5 years ago

I'd like to propose some sugar to Object#then 

 There should be `Object#then_if(condition, &block)` Object#then_if(condition, &block) 
 
 The block should only be applied when the condition is true, 
 otherwise the object should be returned without applying the block. 

 Rationale: 

 I frequently use `Object#then` Object#then with Rails to extend queries like this: 

 ```ruby ``` 
 foo.then {|query| 
   if(condition) 
    query.where(zip:zap) 
   else 
    query 
   end 
 } 
 ``` 

 by using the proposed `Object#then_if` Object#then_if the example could be simplified to: 

 ```ruby ``` 
 foo.then_if(condition) {|query| 
    query.where(zip:zap) 
 } 
 ``` 

 I believe that this also applies to a lot of other use cases, 
 i.e. only applying some transformation if some condition is true, 
 but otherwise leaving the result untouched. 











Back