app/helpers/styleus_helper.rb in styleus-0.0.3 vs app/helpers/styleus_helper.rb in styleus-0.0.4

- old
+ new

@@ -1,19 +1,18 @@ module StyleusHelper def styleus(comp_list = []) - component_list = ComponentList.from_hashes(comp_list) + @components = Styleus::ViewComponent.from_hashes(comp_list) - component_listing = component_list.components.map do |component| + @component_list = @components.map do |component| wrap_component component end - component_menu(component_list).concat(component_listing.join.html_safe) + component_menu.concat(_joined_component_list) end + def wrap_component(component) - # add component to linked list menu - #menu.push({ id: component.id, headline: component.headline }) if menu _styleus_article_wrap(headline: component.headline, anchor_id: component.id) do styleus_partials(component.partial_path) end end @@ -21,28 +20,27 @@ sample_template = _styleus_representation_wrap(class: '__boxed') do render partial: "#{partial_path}_sample" end plain_template = _coderay_highlight_wrap("#{partial_path}.html.erb") do - render partial: "#{partial_path}_plain" + render partial: "#{partial_path}" end sample_template.concat(plain_template) end - def component_menu(component_list) + def component_menu + return if @components.empty? content_tag 'nav' do content_tag 'ul' do - content_tag_for(:li, component_list.components) do |component| + content_tag_for(:li, @components) do |component| link_to component.headline, anchor: component.id end end end end - - def _styleus_article_wrap(options = { }, &block) captured_block = capture(&block) content_tag('article', class: '__sg_article', id: options[:anchor_id]) do content = '' @@ -53,20 +51,28 @@ end end def _styleus_representation_wrap(options = { }, &block) captured_block = capture(&block) - classes = '__sg_component'.concat(" #{options[:class].to_s}") + + classes = '__sg_component'.concat(" #{options[:class].to_s}") content_tag('section', class: classes) do - captured_block.to_s.html_safe + render layout: 'layouts/styleus_context' do + captured_block.to_s.html_safe + end end end def _coderay_highlight_wrap(note = nil, &block) - captured_block = capture(&block) - code_block = CodeRay.scan(captured_block.to_s, :html) + captured_block = capture(&block) + code_block = CodeRay.scan(captured_block.to_s, :html) + note_tag = note ? content_tag('p', note, class: '__code_note') : '' highlighted_code = "#{note_tag}#{code_block.div(:css => :class)}" highlighted_code.html_safe + end + + def _joined_component_list + @component_list.join.html_safe end end \ No newline at end of file