Sha256: e76706e2fefb648fa84fb66fca4a345c4428c29e0fa73326458b02fbe9e94833

Contents?: true

Size: 697 Bytes

Versions: 7

Compression:

Stored size: 697 Bytes

Contents

require 'request_store'
require_relative 'assets/manifest'

module OpenStax::Utilities
  module Assets
    def self.url
      url = Rails.application.secrets.assets_url
      url.ends_with?('/') ? url : "#{url}/"
    end

    def self.url_for(asset)
      "#{url}#{asset}"
    end

    def self.manifest
      RequestStore.store[:assets_manifest] ||= OpenStax::Utilities::Assets::Manifest.new
    end

    def self.tags_for(asset)
      manifest[asset].map do |chunk|
        "<script type='text/javascript' src='#{chunk}' crossorigin='anonymous' async></script>"
      end.join("\n").html_safe
    end

    def self.digest_for(asset)
      Digest::MD5.hexdigest tags_for(asset)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
openstax_utilities-4.5.2 lib/openstax/utilities/assets.rb
openstax_utilities-4.5.1 lib/openstax/utilities/assets.rb
openstax_utilities-4.5.0 lib/openstax/utilities/assets.rb
openstax_utilities-4.4.2 lib/openstax/utilities/assets.rb
openstax_utilities-4.4.1 lib/openstax/utilities/assets.rb
openstax_utilities-4.4.0 lib/openstax/utilities/assets.rb
openstax_utilities-4.3.0 lib/openstax/utilities/assets.rb