Class: LcpRuby::Workflow::TransitionLabelResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/lcp_ruby/workflow/transition_label_resolver.rb

Overview

Resolves a human-readable label for a workflow transition.

Lookup order:

1. i18n key `lcp_ruby.workflows.<workflow>.transitions.<transition>`
2. transition.label (from workflow YAML/DSL), if a Transition object is given
3. transition_name.humanize

Used by both the toolbar action builder (button label) and the controller success flash so a single override flows through both surfaces.

Class Method Summary collapse

Class Method Details

.resolve(workflow_name, transition) ⇒ Object



13
14
15
16
17
18
# File 'lib/lcp_ruby/workflow/transition_label_resolver.rb', line 13

def self.resolve(workflow_name, transition)
  transition_name = transition.respond_to?(:name) ? transition.name : transition.to_s
  yaml_label = transition.respond_to?(:label) ? transition.label : nil
  i18n_key = "lcp_ruby.workflows.#{workflow_name}.transitions.#{transition_name}"
  I18n.t(i18n_key, default: yaml_label || transition_name.to_s.humanize)
end