Class: DesignSystem::Generic::Builders::Code

Inherits:
Base
  • Object
show all
Defined in:
lib/design_system/generic/builders/code.rb

Overview

Renders a code block with copy button.

Instance Method Summary collapse

Methods inherited from Base

#initialize

Methods included from Helpers::CssHelper

#css_class_options_merge

Methods included from BrandDerivable

#brand

Constructor Details

This class inherits a constructor from DesignSystem::Generic::Builders::Base

Instance Method Details

#render_code(code, language) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/design_system/generic/builders/code.rb', line 8

def render_code(code, language)
  (:div, class: 'app-example__code', data: { controller: 'ds--clipboard' }) do
    (:button, 'Copy', class: 'app-example__copy-button',
                                 data: { action: 'click->ds--clipboard#copy', 'ds--clipboard-target': 'buttonText' }) +
      (:div, class: 'app-example__scroll', tabindex: 0) do
        (:pre, data: { 'ds--clipboard-target': 'source' }) do
          (:code, code, data: { controller: 'ds--code-highlight' },
                                   class: "hljs language-#{language}")
        end
      end
  end
end