module Wallaby::BaseHelper
NOTE: Global helper methods should go in here
Public Instance Methods
body_class()
click to toggle source
Generate body class from the following sources:
-
`:action` parameter
-
converted current resources name (e.g. `order__item` from `Order::Item`)
-
`:custom_body_class` content
@return [String] css classes for body tag
# File lib/helpers/wallaby/base_helper.rb, line 26 def body_class [ params[:action], controller_path.gsub(SLASH, '__'), current_resources_name.try(:gsub, COLONS, '__'), content_for(:custom_body_class) ].compact.join SPACE end
model_classes(classes = Map.model_classes)
click to toggle source
Turn a list of classes into tree structure by inheritance. @param classes [Array<Class>]
a list of all the classes that wallaby supports
@return [Array<Wallaby::Node>] a tree structure of given classes
# File lib/helpers/wallaby/base_helper.rb, line 39 def model_classes(classes = Map.model_classes) nested_hash = classes.each_with_object({}) do |klass, hash| hash[klass] = Node.new(klass) end nested_hash.each do |klass, node| node.parent = parent = nested_hash[klass.superclass] parent.children << node if parent end nested_hash.values.select { |v| v.parent.nil? } end
model_tree(array, base_class = nil)
click to toggle source
Turn the tree of classes into a nested `ul` list. @param array [Array<Wallaby::Node>] root classes @return [String] HTML for the whole tree
# File lib/helpers/wallaby/base_helper.rb, line 53 def model_tree(array, base_class = nil) return EMPTY_STRING if array.blank? options = { html_options: { class: 'dropdown-item' } } content_tag :ul, class: 'dropdown-menu', 'aria-labelledby': base_class do array.sort_by(&:name).each do |node| content = index_link(node.klass, options).try :<<, model_tree(node.children) concat content_tag(:li, content) end end end
to_model_label(model_class)
click to toggle source
@see ModelUtils.to_model_label
@return [String] label for given model class
# File lib/helpers/wallaby/base_helper.rb, line 11 def to_model_label(model_class) ModelUtils.to_model_label model_class end
to_resources_name(model_class)
click to toggle source
@see Map.resources_name_map
@return [String] resources name for given model class
# File lib/helpers/wallaby/base_helper.rb, line 17 def to_resources_name(model_class) Map.resources_name_map model_class end