Sha256: ab497def69a18ed778900e1d2c756393e67edaa912a014da07b9704e61b2fab7

Contents?: true

Size: 1.72 KB

Versions: 72

Compression:

Stored size: 1.72 KB

Contents

# frozen_string_literal: true

module Playbook
  module PbBody
    class Body
      include Playbook::Props
      include ActionView::Helpers
      
      partial "pb_body/body"

      prop :color, type: Playbook::Props::Enum,
                   values: %w[default light lighter dark light_dark lighter_dark],
                   default: "default"
      prop :dark, type: Playbook::Props::Boolean,
                  default: false
      prop :status, type: Playbook::Props::Enum,
                    values: %w[neutral negative positive],
                    default: "neutral"
      prop :tag, type: Playbook::Props::Enum,
                 values: %w[h1 h2 h3 h4 h5 h6 p span div],
                 default: "div"
      prop :text
      prop :highlighting, type: Playbook::Props::Boolean,
                              default: false
      prop :highlighted_text, type: Playbook::Props::Array,
                              default: []

      def classname
        generate_classname("pb_body_kit", color_class, dark_class, status_class)
      end

      def content
        highlighting ? apply_highlight : text
      end

    private

      def apply_highlight
        pb_highlight = Playbook::PbHighlight::Highlight.new() {"|"}
        pb_highlight_output = ApplicationController.renderer.render(partial: pb_highlight, as: :object)
        highlight_tags = pb_highlight_output.split("|")
        highlight(text, highlighted_text, highlighter: "#{highlight_tags.first.html_safe} \\1 #{highlight_tags.last.html_safe}")
      end
     
      def color_class
        color != "default" ? color : nil
      end

      def dark_class
        dark ? "dark" : nil
      end

      def status_class
        status != "neutral" ? status : nil
      end
    end
  end
end

Version data entries

72 entries across 72 versions & 1 rubygems

Version Path
playbook_ui-6.0.1.pre.alpha5 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-6.0.1.pre.alpha4 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-6.0.1.pre.alpha3 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-6.0.1.pre.alpha2 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.2.0.pre.alpha15 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.2.0.pre.alpha14 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.2.0.pre.alpha13 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-6.0.1 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.2.0.pre.alpha12 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-6.0.0 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.2.0.pre.alpha11 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.5.1.pre.alpha4 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.5.1.pre.alpha3 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.5.1.pre.alpha2 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.5.1.pre.alpha1 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.2.0.pre.alpha10 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.5.1 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.5.0 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.5.0.pre.alpha1 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-5.2.0.pre.alpha9 app/pb_kits/playbook/pb_body/body.rb