Module: Docks::Themes::API::Components

Defined in:
lib/docks_theme_api/components.rb,
lib/docks_theme_api/components/base_component.rb,
lib/docks_theme_api/components/table_component.rb,
lib/docks_theme_api/components/popover_component.rb,
lib/docks_theme_api/components/tablist_component.rb,
lib/docks_theme_api/components/code_block_component.rb

Defined Under Namespace

Classes: Base, CodeBlock, Config, Popover, Table, Tablist

Class Method Summary collapse

Class Method Details

.component_for(name) ⇒ Object



10
11
12
13
# File 'lib/docks_theme_api/components.rb', line 10

def self.component_for(name)
  const = name.to_s.split(/[^a-z]/i).map(&:capitalize).join("").to_sym
  const_defined?(const) ? const_get(const) : Base
end

.standardize_classes(classes, base_component = :base) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/docks_theme_api/components/base_component.rb', line 6

def self.standardize_classes(classes, base_component = :base)
  return {} if classes.nil?

  if classes.kind_of?(Hash)
    classes.each do |key, klass|
      classes[key] = klass.kind_of?(String) ? klass.split(" ") : klass
    end
  else
    classes = classes.kind_of?(String) ? classes.split(" ") : classes
    class_hash = {}
    class_hash[base_component] = classes

    classes = class_hash
  end

  classes
end

.template_path(name) ⇒ Object



15
16
17
18
# File 'lib/docks_theme_api/components.rb', line 15

def self.template_path(name)
  name = name.to_s.split(":")
  API.instance.assets.path_for(File.join("components", name.first, "#{name.join("_")}.erb"))
end