module Docks::Themes::API::Components

Public Class Methods

component_for(name) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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