module Lookbook::AnnotatableEntity

def display_options_config

def display_options_config
  return unless has_tag?(:display)
  # Dynamic params set at the entity level are
  # not (yet?) supported so filter them out.
  display_tags = tags(:display).select do |tag|
    !tag.value.is_a?(Hash) && !tag.value.is_a?(Array)
  end
  display_tags.map { |tag| [tag.key.to_sym, tag.value] }.to_h
end

def fetch_config(key, fallback = nil, &block)

def fetch_config(key, fallback = nil, &block)
  value = case key.to_sym
  when :renders
    renders_config
  when :display_options
    display_options_config
  else
    tag(key).value if has_tag?(key)
  end
  Utils.value_or_fallback(value, fallback, &block)
end

def notes

Returns:
  • (String) - The notes, or an empty string if none have been added
def notes
  code_object.docstring.to_s.strip
end

def renders_config

def renders_config
  return unless has_tag?(:component) || has_tag?(:renders)
  [*tags(:component), *tags(:renders)].map(&:value).compact
end

def tag(name = nil)

Returns:
  • (Array) - Array of tags

Parameters:
  • name (Symbol) -- Optional tag type to filter by

Other tags:
    Example: :ruby -
def tag(name = nil)
  tags(name).first
end

def tags(name = nil)

Returns:
  • (Array) - Array of tags

Parameters:
  • name (Symbol) -- Optional tag type to filter by

Other tags:
    Example: :ruby -
def tags(name = nil)
  code_object.tags(name)
end