Sha256: 52cef164ba7c0e4375e37f5842fad800fab2c665676517f5a293bbef365cfe4c

Contents?: true

Size: 1.33 KB

Versions: 174

Compression:

Stored size: 1.33 KB

Contents

# frozen_string_literal: true

# rubocop:disable Style/CaseLikeIf

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("_#{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

# rubocop:enable Style/CaseLikeIf

Version data entries

174 entries across 174 versions & 1 rubygems

Version Path
playbook_ui-11.13.0.pre.alpha.fontawesome1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.13.0 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.12.1.pre.alpha.charts1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.12.1.pre.alpha.passphrase1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.12.1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.13.0.pre.alpha.fileupload1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.12.0 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.11.0.pre.alpha.paginate2 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.11.0.pre.alpha.dialog2 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.11.0.pre.alpha.paginate1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.11.0.pre.alpha.renderer1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.11.0.pre.alpha.dialog1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.11.0 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.10.0.pre.alpha.pre.bold1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.10.0.pre.alpha.pagination1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.10.0 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.9.0 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.9.0.pre.alpha.fileupload1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.8.1 app/pb_kits/playbook/pb_docs/kit_example.rb
playbook_ui-11.8.0 app/pb_kits/playbook/pb_docs/kit_example.rb