in app/components/primer/octicon_symbols_component.rb [14:36]
def initialize(icons: [])
@icons = {}
icons.each do |icon|
symbol = icon[:symbol]
size = Primer::OcticonComponent::SIZE_MAPPINGS[
fetch_or_fallback(Primer::OcticonComponent::SIZE_OPTIONS, icon[:size] || Primer::OcticonComponent::SIZE_DEFAULT, Primer::OcticonComponent::SIZE_DEFAULT)
]
cache_key = Primer::Octicon::Cache.get_key(symbol: symbol, size: size)
if (cache_icon = Primer::Octicon::Cache.read(cache_key))
icon_instance = cache_icon
else
icon_instance = Octicons::Octicon.new(symbol, height: size)
Primer::Octicon::Cache.set(cache_key, icon_instance)
end
@icons[[symbol, icon_instance.height]] = icon_instance if @icons[[symbol, icon_instance.height]].nil?
end
end