Sha256: 2cc3e275c49ab4126e0640a70e51b900c02540134185178c8951159d9754d7dd
Contents?: true
Size: 1002 Bytes
Versions: 30
Compression:
Stored size: 1002 Bytes
Contents
# frozen_string_literal: true module Motor module Assets InvalidPathError = Class.new(StandardError) ASSETS_PATH = Pathname.new(__dir__).join('../../ui/dist') MANIFEST_PATH = ASSETS_PATH.join('manifest.json') DEV_SERVER_URL = 'http://localhost:9090/' module_function def manifest JSON.parse(MANIFEST_PATH.read) end def asset_path(path) Motor::Admin.routes.url_helpers.motor_asset_path(manifest[path]) end def load_asset(filename, gzip: false) if Motor.development? load_from_dev_server(filename) else load_from_disk(filename, gzip: gzip) end end def load_from_disk(filename, gzip:) filename += '.gz' if gzip path = ASSETS_PATH.join(filename) raise InvalidPathError unless path.to_s.starts_with?(ASSETS_PATH.to_s) path.read end def load_from_dev_server(filename) uri = URI(DEV_SERVER_URL + filename) Net::HTTP.get_response(uri).body end end end
Version data entries
30 entries across 30 versions & 1 rubygems