Class: Sprockets::Cache::AssetsLiveCompileStore

Inherits:
FileStore
  • Object
show all
Defined in:
lib/sprockets/cache/assets_live_compile_store.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ AssetsLiveCompileStore

Returns a new instance of AssetsLiveCompileStore.



7
8
9
10
# File 'lib/sprockets/cache/assets_live_compile_store.rb', line 7

def initialize options = {}
  super "#{::Rails.root}/tmp/cache"
  @assets_path = "#{::Rails.root}/public/assets"
end

Instance Method Details

#set(key, attrs) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/sprockets/cache/assets_live_compile_store.rb', line 12

def set key, attrs
  super
  return attrs unless ::Rails.application.config.assets.digest
  return attrs unless attrs.is_a? Hash and (logical_path = attrs[:logical_path]).present?
  return attrs if logical_path.index '.self.' and not ::Rails.application.config.assets.debug

  asset = Sprockets::Asset.new nil, attrs
  path = File.join @assets_path, asset.digest_path.strip
  FileUtils.mkdir_p File.dirname(path)
  File.open(path, 'wb'){ |f| f.write asset.source }

  attrs
end