From: nobu@... Date: 2019-05-11T07:13:01+00:00 Subject: [ruby-core:92620] [Ruby trunk Feature#15829] Object#then_if(condition){} Issue #15829 has been updated by nobu (Nobuyoshi Nakada). Description updated As it seems useful only when `condition` doesn't use the parameter `query`, it is questionable to me if it is generic enough to be a language feature. ---------------------------------------- Feature #15829: Object#then_if(condition){} https://bugs.ruby-lang.org/issues/15829#change-77979 * Author: foonlyboy (Eike Dierks) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- I'd like to propose some sugar to Object#then There should be `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` 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` 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. -- https://bugs.ruby-lang.org/ Unsubscribe: