Class: Integral::ListRenderer
- Inherits:
-
Object
- Object
- Integral::ListRenderer
- Includes:
- ActionView::Context, ActionView::Helpers::AssetTagHelper, ActionView::Helpers::TagHelper, ActionView::Helpers::TextHelper
- Defined in:
- lib/integral/list_renderer.rb
Overview
Handles safely rendering lists
Direct Known Subclasses
Instance Attribute Summary collapse
-
#list ⇒ Object
Returns the value of attribute list.
-
#opts ⇒ Object
Returns the value of attribute opts.
Class Method Summary collapse
-
.render(list, opts = {}) ⇒ String
Renders the provided list with options given.
Instance Method Summary collapse
-
#initialize(list, opts = {}) ⇒ ListRenderer
constructor
A new instance of ListRenderer.
-
#render ⇒ String
Renders the provided list.
-
#render_safely ⇒ Object
Performs checks before rendering to see if provided list exists and contains list items.
Constructor Details
#initialize(list, opts = {}) ⇒ ListRenderer
Returns a new instance of ListRenderer.
21 22 23 24 25 26 27 28 29 |
# File 'lib/integral/list_renderer.rb', line 21 def initialize(list, opts = {}) @opts = opts.reverse_merge( item_renderer: ListItemRenderer, item_renderer_opts: {}, wrapper_element: 'ul' ) @list = list end |
Instance Attribute Details
#list ⇒ Object
Returns the value of attribute list.
9 10 11 |
# File 'lib/integral/list_renderer.rb', line 9 def list @list end |
#opts ⇒ Object
Returns the value of attribute opts.
9 10 11 |
# File 'lib/integral/list_renderer.rb', line 9 def opts @opts end |
Class Method Details
.render(list, opts = {}) ⇒ String
Renders the provided list with options given
14 15 16 17 |
# File 'lib/integral/list_renderer.rb', line 14 def self.render(list, opts = {}) renderer = new(list, opts) renderer.render_safely.html_safe end |
Instance Method Details
#render ⇒ String
Renders the provided list
42 43 44 45 46 47 48 49 50 |
# File 'lib/integral/list_renderer.rb', line 42 def render rendered_items = '' list.list_items.each do |list_item| rendered_items += render_item(list_item) end content_tag opts[:wrapper_element], rendered_items, , false end |
#render_safely ⇒ Object
Performs checks before rendering to see if provided list exists and contains list items
32 33 34 35 36 37 |
# File 'lib/integral/list_renderer.rb', line 32 def render_safely return render_no_list_warning if list.nil? return render_no_items_warning if list.list_items.empty? render end |