app/helpers/trestle/grid_helper.rb in trestle-0.9.1 vs app/helpers/trestle/grid_helper.rb in trestle-0.9.2

- old
+ new

@@ -1,11 +1,46 @@ module Trestle module GridHelper - def row - content_tag(:div, class: "row") { yield } + # Renders a row div, one of the building blocks of Bootstrap's grid system. + # https://getbootstrap.com/docs/4.4/layout/grid/ + # + # attrs - Hash of attributes that will be passed to the tag (e.g. id, data, class). + # + # Examples + # + # <%= row do %> + # <%= col do %>Column content<% end %> + # <% end %> + # + # <%= row class: "row-cols-2", id: "my-row" do %> ... + # + # Returns a HTML-safe String. + def row(attrs={}) + defaults = Trestle::Options.new(class: ["row"]) + options = defaults.merge(attrs) + + content_tag(:div, options) { yield } end + # Renders a column div, one of the building blocks of Bootstrap's grid system. + # https://getbootstrap.com/docs/4.4/layout/grid/ + # + # Column divs should always be rendered inside of a row div. + # + # Examples + # + # # Standard column - evenly fills available space + # <%= col do %>...<% end %> + # + # # Column spans 4 (out of 12) grid columns (i.e. 1/3 width) at all breakpoints + # <%= col 4 do %> ... + # + # # Column spans 6 grid columns at smallest breakpoint, 4 at md breakpoint + # # and above (portrait tablet) and 3 at xl breakpoint and above (desktop) + # <%= col 6, md: 4, xl: 3 do %> ... + # + # Returns a HTML-safe String. def col(columns=nil, breakpoints={}) if columns.is_a?(Hash) breakpoints = columns columns = breakpoints.delete("xs") || breakpoints.delete(:xs) end @@ -15,10 +50,15 @@ classes += breakpoints.map { |breakpoint, span| "col-#{breakpoint}-#{span}" } content_tag(:div, class: classes) { yield } end - def divider - content_tag(:hr) + # Renders an <HR> (horizontal rule) HTML tag. + # + # attrs - Hash of attributes that will be passed to the tag (e.g. id, data, class). + # + # Returns a HTML-safe String. + def divider(attrs={}) + tag(:hr, attrs) end end end