class Lookbook::CodeInspector
def display_params
def display_params display_params = {}.with_indifferent_access if code_object&.tags(:display).present? code_object.tags(:display).each do |tag| parts = tag.text.strip.match(/^([^\s]*)\s?(.*)$/) if parts.present? begin display_params[parts[1]] = YAML.safe_load(parts[2] || "~") rescue SyntaxError => err Lookbook.logger.error("\n👀 [Lookbook] Invalid JSON in @display tag.\n👀 [Lookbook] (#{err})\n") end end end end display_params end
def group
def group code_object&.group end
def hidden?
def hidden? if code_object&.tag(:hidden) code_object.tag(:hidden).text.strip != "false" end end
def id
def id if code_object&.tag(:id)&.text&.present? generate_id(code_object&.tag(:id)&.text) end end
def initialize(taggable_object_path)
def initialize(taggable_object_path) @code_object = Lookbook::Engine.parser.get_code_object(taggable_object_path) end
def label
def label code_object&.tag(:label)&.text end
def methods
def methods code_object&.meths end
def notes
def notes if code_object&.docstring code_object.docstring.to_s.strip end end
def parameter_defaults
def parameter_defaults code_object&.parameters&.map { |str| Params.parse_method_param_str(str) }&.compact&.to_h end
def params
def params code_object&.tags("param")&.map do |param| Lookbook::Params.build_param(param, parameter_defaults[param.name]) end end
def position
def position code_object&.tag(:position)&.text&.to_i || 10000 end