lib/admino/table/head_row.rb in admino-0.0.5 vs lib/admino/table/head_row.rb in admino-0.0.6

- old
+ new

@@ -28,27 +28,22 @@ @columns << h.content_tag(:th, label.to_s, default_options) end def column(*args, &block) - params = parse_column_args(args) + attribute_name, label, html_options = parse_column_args(args) - attribute_name = params[:attribute_name] - label = params[:label] - options = params[:html_options] + label ||= column_label(attribute_name) - if label.nil? && attribute_name - label = resource_klass.human_attribute_name(attribute_name.to_s) - end + html_options = complete_column_html_options( + attribute_name, + html_options + ) - default_options = column_html_options(attribute_name) - html_options = Showcase::Helpers::HtmlOptions.new(default_options) - html_options.merge_attrs!(options) - html_options = html_options.to_h - sorting_scope = html_options.delete(:sorting) sorting_html_options = html_options.delete(:sorting_html_options) { {} } + if sorting_scope raise ArgumentError, 'query object is required' unless query label = query.sorting.scope_link(sorting_scope, label, sorting_html_options) end @@ -58,9 +53,26 @@ def to_html @columns.html_safe end private + + def column_label(attribute_name) + if attribute_name + resource_klass.human_attribute_name(attribute_name.to_s) + end + end + + def complete_column_html_options(attribute_name, final_html_options) + if attribute_name.nil? + return final_html_options + end + + default_options = column_html_options(attribute_name) + html_options = Showcase::Helpers::HtmlOptions.new(default_options) + html_options.merge_attrs!(final_html_options) + html_options = html_options.to_h + end def column_html_options(attribute_name) { role: attribute_name.to_s.gsub(/_/, '-') } end end