Module: Phlexi::Display::Components::Concerns::DisplaysValue

Included in:
Association, Phlexi::Display::Components::Color, DateTime, Email, Enum, JSON, Number, Password, Phone, String, Url
Defined in:
lib/phlexi/display/components/concerns/displays_value.rb

Instance Method Summary collapse

Instance Method Details

#render_value(value) ⇒ String

Renders the field value for display.

Returns:

  • (String)

    the formatted field value for display.

Raises:

  • (NotImplementedError)


37
38
39
# File 'lib/phlexi/display/components/concerns/displays_value.rb', line 37

def render_value(value)
  raise NotImplementedError, "#{self.class}#render_value"
end

#view_templateObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/phlexi/display/components/concerns/displays_value.rb', line 8

def view_template
  return render(field.placeholder_tag(**@placeholder_attributes)) unless field.has_value?

  if field.multiple? && field.value.respond_to?(:each)
    wrapped {
      field.value.each { |value|
        value = normalize_value(value)
        render_value(value)
      }
    }
  else
    wrapped {
      value = normalize_value(field.value)
      render_value(value)
    }
  end
end

#wrappedObject



26
27
28
29
30
31
32
# File 'lib/phlexi/display/components/concerns/displays_value.rb', line 26

def wrapped(&)
  div(
    id: attributes.delete(:id),
    class: tokens(component_name, "value_wrapper", themed(:value_wrapper), themed(:"#{component_name}_value_wrapper")),
    &
  )
end