Sha256: 0988229fdbbea40f19e87572274c5df8606f99b416f140cc4dc1cab6b58e5fa8
Contents?: true
Size: 1.39 KB
Versions: 14
Compression:
Stored size: 1.39 KB
Contents
# frozen_string_literal: true module Effective class TableRow attr_accessor :name, :options, :builder, :template delegate :object, to: :builder delegate :capture, :content_tag, :image_tag, :link_to, :mail_to, :icon, to: :@template # So this takes in the options for an entire form group. def initialize(name, options, builder:) @builder = builder @template = builder.template @name = name @options = options end def controller_namespace Effective::Resource.new(template.controller.controller_path).namespace end # Intended for override def content value end # Render method def to_html(&block) content_tag(:tr) do content_tag(:td, label_content) + content_tag(:td, content.presence || '-') end end def label_content hint = self.hint (hint.present? ? "#{label}#{hint}" : label).html_safe end # Humanized label or the label from form def label text = options[:label] || builder.human_attribute_name(name) prefix = builder.options[:prefix] [*prefix, text].join(': ') end def hint text = options[:hint] return if text.blank? content_tag(:div) do content_tag(:small, text.html_safe, class: 'text-muted') end end # Value from resource def value options[:value] || builder.value(name) end end end
Version data entries
14 entries across 14 versions & 1 rubygems