class Docks::Themes::API::Components::Config

Public Class Methods

new(component) click to toggle source
# File lib/docks_theme_api/components/base_component.rb, line 66
def initialize(component)
  @component = component
end

Public Instance Methods

classes(default_classes = {}) click to toggle source
# File lib/docks_theme_api/components/base_component.rb, line 76
def classes(default_classes = {})
  default_classes = Components.standardize_classes(default_classes)
  @component.instance_variable_get(:@classes).merge!(default_classes) do |key, passed, default|
    passed.concat(default).uniq
  end
end
conditional_classes(opts) { |send)| ... } click to toggle source
# File lib/docks_theme_api/components/base_component.rb, line 83
def conditional_classes(opts)
  if (attribute = opts.delete(:if))
    classes(opts) if @component.respond_to?(attribute) && !!@component.send(attribute)
  elsif (attribute = opts.delete(:unless))
    classes(opts) if !@component.respond_to?(attribute) || !@component.send(attribute)
  elsif (attribute = opts.delete(:with))
    return unless block_given?
    classes(yield @component.send(attribute))
  elsif (attribute = opts.delete(:from))
    return unless @component.respond_to?(attribute)
    classes(opts.fetch(@component.send(attribute), nil))
  end
end
defaults(opts = {}) click to toggle source
# File lib/docks_theme_api/components/base_component.rb, line 70
def defaults(opts = {})
  @component.instance_variable_get(:@attributes).merge!(opts) do |key, passed, default|
    passed.nil? ? default : passed
  end
end