Class: BaseEditingBootstrap::Forms::FieldRenderer
- Inherits:
-
Object
- Object
- BaseEditingBootstrap::Forms::FieldRenderer
- Defined in:
- lib/base_editing_bootstrap/forms/field_renderer.rb
Overview
Responsible for deciding which template and locals to use for form fields Usage: Utilities::FormFieldRenderer.new(view_context, form, field, readonly:).render
Instance Attribute Summary collapse
-
#field ⇒ Object
readonly
Returns the value of attribute field.
-
#form ⇒ Object
readonly
Returns the value of attribute form.
-
#generic_field ⇒ Object
readonly
Returns the value of attribute generic_field.
-
#locals ⇒ Object
readonly
Returns the value of attribute locals.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
-
#view ⇒ Object
readonly
Returns the value of attribute view.
Instance Method Summary collapse
-
#initialize(view, form, field, readonly: nil) ⇒ FieldRenderer
constructor
A new instance of FieldRenderer.
- #readonly_value ⇒ Object
-
#render ⇒ Object
Perform full rendering and return SafeBuffer.
-
#template ⇒ Object
Public helpers for tests or external callers.
Constructor Details
#initialize(view, form, field, readonly: nil) ⇒ FieldRenderer
Returns a new instance of FieldRenderer.
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/base_editing_bootstrap/forms/field_renderer.rb', line 7 def initialize(view, form, field, readonly: nil) @view = view @form = form @field = field @readonly = readonly @locals = { form: form, field: field } @type = nil @generic_field = nil determine_field_and_locals end |
Instance Attribute Details
#field ⇒ Object (readonly)
Returns the value of attribute field.
5 6 7 |
# File 'lib/base_editing_bootstrap/forms/field_renderer.rb', line 5 def field @field end |
#form ⇒ Object (readonly)
Returns the value of attribute form.
5 6 7 |
# File 'lib/base_editing_bootstrap/forms/field_renderer.rb', line 5 def form @form end |
#generic_field ⇒ Object (readonly)
Returns the value of attribute generic_field.
5 6 7 |
# File 'lib/base_editing_bootstrap/forms/field_renderer.rb', line 5 def generic_field @generic_field end |
#locals ⇒ Object (readonly)
Returns the value of attribute locals.
5 6 7 |
# File 'lib/base_editing_bootstrap/forms/field_renderer.rb', line 5 def locals @locals end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
5 6 7 |
# File 'lib/base_editing_bootstrap/forms/field_renderer.rb', line 5 def type @type end |
#view ⇒ Object (readonly)
Returns the value of attribute view.
5 6 7 |
# File 'lib/base_editing_bootstrap/forms/field_renderer.rb', line 5 def view @view end |
Instance Method Details
#readonly_value ⇒ Object
43 44 45 |
# File 'lib/base_editing_bootstrap/forms/field_renderer.rb', line 43 def readonly_value @readonly.nil? ? view.readonly_attribute?(field, form.object) : @readonly end |
#render ⇒ Object
Perform full rendering and return SafeBuffer
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/base_editing_bootstrap/forms/field_renderer.rb', line 19 def render tmpl = template view.bs_logger.debug do <<~TEXT TYPE: #{type} GENERIC_FIELD: #{generic_field} TEMPLATE: #{tmpl.short_identifier} LOCALS:#{locals} TEXT end tmpl.render(view, locals) end |
#template ⇒ Object
Public helpers for tests or external callers
33 34 35 36 37 38 39 40 41 |
# File 'lib/base_editing_bootstrap/forms/field_renderer.rb', line 33 def template view.find_template_with_fallbacks( form.object, field, "form_field", generic_field, readonly: readonly_value ) end |