initialize

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