Module: Trailblazer::Activity::DSL::Linear::VariableMapping::Normalizer
- Defined in:
- lib/trailblazer/activity/dsl/linear/feature/variable_mapping.rb
Overview
Steps that are added to the DSL normalizer.
Class Method Summary collapse
-
.convert_symbol_options(ctx, non_symbol_options:, output_with_outer_ctx: nil) ⇒ Object
TODO: remove me once :input API is removed.
-
.deprecate_input_output_inject_option(input_output_inject_options, *composable_options) ⇒ Object
TODO: remove for TRB 2.2.
- .input_output_dsl(ctx, non_symbol_options:, in_filters: nil, out_filters: nil, **options) ⇒ Object
-
.normalize_input_output_filters(ctx, non_symbol_options:, input_output_inject_options: []) ⇒ Object
Process => [:model], Inject() => [:current_user], Out() => [:model].
Class Method Details
.convert_symbol_options(ctx, non_symbol_options:, output_with_outer_ctx: nil) ⇒ Object
TODO: remove me once :input API is removed. Convert :input, :output and :inject to In() and friends.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping.rb', line 42 def self.(ctx, non_symbol_options:, output_with_outer_ctx: nil, **) input, output, inject = ctx.delete(:input), ctx.delete(:output), ctx.delete(:inject) return unless input || output || inject = {} # TODO: warn, deprecate etc .merge!(VariableMapping::DSL.In() => input) if input if output = {} = .merge(with_outer_ctx: output_with_outer_ctx) unless output_with_outer_ctx.nil? .merge!(VariableMapping::DSL.Out(**) => output) end if inject inject.collect do |filter| filter = filter.is_a?(Symbol) ? [filter] : filter .merge!(VariableMapping::DSL.Inject() => filter) end end ctx.merge!( non_symbol_options: .merge(), input_output_inject_options: [{input: input, output: output, inject: inject}, ], # yes, there were {:input} options. ) end |
.deprecate_input_output_inject_option(input_output_inject_options, *composable_options) ⇒ Object
TODO: remove for TRB 2.2.
102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping.rb', line 102 def self.deprecate_input_output_inject_option(, *) return unless .any? , = = .find_all { |(name, option)| option }.count + ([:inject] ? [:inject].count - 1 : 0) = .collect { || .size }.sum return if == Activity::Deprecate.warn Linear::Deprecate.dsl_caller_location, %(You are mixing #{.inspect} with In(), Out() and Inject().\n#{VariableMapping.deprecation_link}) end |
.input_output_dsl(ctx, non_symbol_options:, in_filters: nil, out_filters: nil, **options) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping.rb', line 85 def self.input_output_dsl(ctx, non_symbol_options:, in_filters: nil, out_filters: nil, **) # no :input/:output/:inject/Input()/Output() passed. return unless in_filters || out_filters extension = Linear.VariableMapping(in_filters: in_filters, out_filters: out_filters, **) record = Linear::Normalizer::Inherit.Record((in_filters + out_filters).to_h, type: :variable_mapping) = .merge(record) = .merge(Linear::Strategy.Extension(is_generic: true) => extension) ctx.merge!( non_symbol_options: ) end |
.normalize_input_output_filters(ctx, non_symbol_options:, input_output_inject_options: []) ⇒ Object
Process => [:model], Inject() => [:current_user], Out() => [:model]
73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping.rb', line 73 def self.normalize_input_output_filters(ctx, non_symbol_options:, input_output_inject_options: [], **) in_exts = .find_all { |k, v| k.is_a?(VariableMapping::DSL::In) || k.is_a?(VariableMapping::DSL::Inject) } output_exts = .find_all { |k, v| k.is_a?(VariableMapping::DSL::Out) } return unless in_exts.any? || output_exts.any? deprecate_input_output_inject_option(, in_exts, output_exts) ctx[:in_filters] = in_exts ctx[:out_filters] = output_exts end |