Class: Sass::CacheStores::Filesystem
- Inherits:
-
Base
- Object
- Base
- Sass::CacheStores::Filesystem
- Defined in:
- .ruby-sass/lib/sass/cache_stores/filesystem.rb
Overview
A backend for the Sass cache using the filesystem.
Instance Attribute Summary (collapse)
-
#cache_location ⇒ String
The directory where the cached files will be stored.
Instance Method Summary (collapse)
- #_retrieve(key, version, sha) ⇒ Object
- #_store(key, version, sha, contents) ⇒ Object
-
#initialize(cache_location) ⇒ Filesystem
constructor
A new instance of Filesystem.
Methods inherited from Base
Constructor Details
#initialize(cache_location) ⇒ Filesystem
Returns a new instance of Filesystem
13 14 15 |
# File '.ruby-sass/lib/sass/cache_stores/filesystem.rb', line 13 def initialize(cache_location) @cache_location = cache_location end |
Constructor Details
#initialize(cache_location) ⇒ Filesystem
Returns a new instance of Filesystem
13 14 15 |
# File '.ruby-sass/lib/sass/cache_stores/filesystem.rb', line 13 def initialize(cache_location) @cache_location = cache_location end |
Instance Attribute Details
#cache_location ⇒ String
The directory where the cached files will be stored.
10 11 12 |
# File '.ruby-sass/lib/sass/cache_stores/filesystem.rb', line 10 def cache_location @cache_location end |
Instance Method Details
#_retrieve(key, version, sha) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File '.ruby-sass/lib/sass/cache_stores/filesystem.rb', line 18 def _retrieve(key, version, sha) return unless File.readable?(path_to(key)) begin File.open(path_to(key), "rb") do |f| if f.readline("\n").strip == version && f.readline("\n").strip == sha return f.read end end File.unlink path_to(key) rescue Errno::ENOENT # Already deleted. Race condition? end nil rescue EOFError, TypeError, ArgumentError => e Sass::Util.sass_warn "Warning. Error encountered while reading cache #{path_to(key)}: #{e}" end |
#_store(key, version, sha, contents) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 |
# File '.ruby-sass/lib/sass/cache_stores/filesystem.rb', line 36 def _store(key, version, sha, contents) compiled_filename = path_to(key) FileUtils.mkdir_p(File.dirname(compiled_filename)) Sass::Util.atomic_create_and_write_file(compiled_filename) do |f| f.puts(version) f.puts(sha) f.write(contents) end rescue Errno::EACCES # pass end |