module Primer::ViewComponents
def self.dump_constants(path: DEFAULT_STATIC_PATH)
dump_constants generates the constants hash and then serializes
def self.dump_constants(path: DEFAULT_STATIC_PATH) require "json" constants = generate_constants File.open(File.join(path, DEFAULT_CONSTANTS_FILE_NAME), "w") do |f| f.write(JSON.pretty_generate(constants)) f.write($INPUT_RECORD_SEPARATOR) end end
def self.dump_statuses(path: DEFAULT_STATIC_PATH)
dump_statuses generates the status hash and then serializes
def self.dump_statuses(path: DEFAULT_STATIC_PATH) require "json" statuses = generate_statuses File.open(File.join(path, DEFAULT_STATUS_FILE_NAME), "w") do |f| f.write(JSON.pretty_generate(statuses)) f.write($INPUT_RECORD_SEPARATOR) end end
def self.generate_constants
generate_constants returns a hash mapping component name to
def self.generate_constants Primer::Component.descendants.sort_by(&:name).each_with_object({}) do |component, mem| mem[component.to_s] = component.constants(false).sort.each_with_object({}) do |constant, h| h[constant] = component.const_get(constant) end end end
def self.generate_statuses
generate_statuses returns a hash mapping component name to
def self.generate_statuses Primer::Component.descendants.sort_by(&:name).each_with_object({}) do |component, mem| mem[component.to_s] = component.status.to_s end end
def self.read_constants(path: DEFAULT_STATIC_PATH)
read_constants returns a JSON string matching the output of
def self.read_constants(path: DEFAULT_STATIC_PATH) File.read(File.join(path, DEFAULT_CONSTANTS_FILE_NAME)) end
def self.read_statuses(path: DEFAULT_STATIC_PATH)
read_statuses returns a JSON string matching the output of
def self.read_statuses(path: DEFAULT_STATIC_PATH) File.read(File.join(path, DEFAULT_STATUS_FILE_NAME)) end