Sha256: 49663cf510529268512d190971117829b473b4d4f3bc50d4de75ec8c22540601

Contents?: true

Size: 1.26 KB

Versions: 6

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

module Playbook
  module PbDocs
    class KitExample < Playbook::KitBase
      include Playbook::Markdown::Helper

      prop :kit, type: Playbook::Props::String, required: true
      prop :example_title, type: Playbook::Props::String, required: true
      prop :example_key, type: Playbook::Props::String, required: true
      prop :show_code, type: Playbook::Props::Boolean, default: true
      prop :type, type: Playbook::Props::Enum, values: %w[rails react], default: "rails"
      prop :dark, type: Playbook::Props::Boolean, default: false

      def example
        if type == "rails"
          render inline: source
        elsif type == "react"
          react_component example_key.camelize, { dark: dark }
        end
      end

      def description
        @description ||= read_kit_file(kit, "_#{example_key}.md")
      end

      def highlighter
        type.eql?("rails") ? "erb" : "react"
      end

      def source
        @source ||= begin
          extension = type == "react" ? "jsx" : "html.erb"
          read_kit_file("_#{example_key}.#{extension}")
        end
      end

    private

      def read_kit_file(*args)
        path = ::Playbook.kit_path(kit, "docs", *args)
        path.exist? ? path.read : ""
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
playbook_ui-8.0.3 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-8.0.2 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-8.0.1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-8.0.0 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-8.0.0.pre.alpha5 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-8.0.0.pre.alpha4 app/pb_kits/playbook/pb_docs/kit_example.rb