Sha256: c9dbf9a8146ed23b7b1b61c84870cfda6315c11120bf9560fdedb0182cb3ec44
Contents?: true
Size: 1.52 KB
Versions: 4
Compression:
Stored size: 1.52 KB
Contents
module VueCK class FileManager def initialize(filename) @filename = filename @js_cache = "#{DIRS[:cache]}#{FILES[:javascript]}" @css_cache = "#{DIRS[:cache]}#{FILES[:style]}" end def serve return render unless cachedir_exists? return render unless cachefiles_exist? return render unless cachefiles_fresh? read_file end private def render renders = BatchRenderer.new.render File.write(@js_cache, renders[:components]) File.write(@css_cache, renders[:style]) read_file end def read_file cache_file = @js_cache if @filename == FILES[:javascript] cache_file = @css_cache if @filename == FILES[:style] File.read(cache_file) end def cachedir_exists? return true if File.exists? DIRS[:cache] Dir.mkdir DIRS[:cache] false end def cachefiles_exist? return File.exists?(@js_cache) && File.exists?(@css_cache) end def cachefiles_fresh? cache_mtime = newest_file_in_dir(DIRS[:cache]) source_mtime = newest_file_in_dir(DIRS[:components]) return cache_mtime > source_mtime end def newest_file_in_dir(path) Dir.glob(File.join(path, '*.*')).max { |a,b| File.mtime(a) <=> File.mtime(b) } end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
vueck-1.0.3 | lib/filemanager.rb |
vueck-1.0.2 | lib/filemanager.rb |
vueck-1.0.1 | lib/filemanager.rb |
vueck-1.0.0 | lib/filemanager.rb |