Class: Trailblazer::Activity::DSL::Linear::VariableMapping::DSL::Out::FiltersBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/trailblazer/activity/dsl/linear/feature/variable_mapping/dsl.rb

Class Method Summary collapse

Class Method Details

.call(user_filter, with_outer_ctx:, **options) ⇒ Object



189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping/dsl.rb', line 189

def self.call(user_filter, with_outer_ctx:, **options)
  if with_outer_ctx
    callable = Trailblazer::Option(user_filter) # FIXME: :instance_method
    arity = case user_filter
            when Symbol then nil
            when Proc then user_filter.arity
            else user_filter.method(:call).arity
            end

    options =
      # TODO: remove {if} and only leave {else}.
      if arity == 3
        Activity::Deprecate.warn Linear::Deprecate.dsl_caller_location,
          "The positional argument `outer_ctx` is deprecated, please use the `:outer_ctx` keyword argument.\n#{VariableMapping.deprecation_link}"

        options.merge(
          filter:                           callable,
          add_variables_class_for_callable: AddVariables::Output::WithOuterContext_Deprecated, # old positional arg
        )
      else
        options.merge(
          add_variables_class_for_callable: AddVariables::Output::WithOuterContext,
        )
      end
  end

  In::FiltersBuilder.(user_filter, type: :Out, **options)
end