Module: LcpRuby::Metadata::EnumLabelResolver

Defined in:
lib/lcp_ruby/metadata/enum_label_resolver.rb

Overview

Routes a raw enum value through ‘FieldDefinition#enum_label_for` so all consumers (model `to_label`, `display_template “enum_field”`, future call sites) share one resolution path. Non-enum values pass through untouched.

Without this helper, ‘to_label` and display templates returned raw enum keys (“father”) instead of localized labels (“Otec”) — see `docs/improve-tasks/school-improve-tasks.md` #13.

Class Method Summary collapse

Class Method Details

.resolve(value, field_def, model_name: nil) ⇒ Object

Returns localized label for enum fields, original value otherwise.

Parameters:

  • value (Object)

    — the raw value read off the record

  • field_def (FieldDefinition, nil)

    — the model’s field definition for that name

  • model_name (String, nil) (defaults to: nil)

    — used by enum_label_for to scope i18n lookup

Returns:

  • (Object)

    localized label for enum fields, original value otherwise



18
19
20
21
22
23
24
# File 'lib/lcp_ruby/metadata/enum_label_resolver.rb', line 18

def resolve(value, field_def, model_name: nil)
  return value if value.nil?
  return value if field_def.nil?
  return value unless field_def.enum?

  field_def.enum_label_for(value, model_name: model_name)
end