class BranchableCDNAssets::Manifest
Attributes
file_set[R]
source_file[R]
Public Class Methods
new(source_file)
click to toggle source
# File lib/branchable_cdn_assets/manifest.rb, line 8 def initialize source_file @source_file = source_file @file_set = File.exists?(source_file) ? read_source_file : Set.new end
Public Instance Methods
files()
click to toggle source
list files set as an Array @return [Array]
# File lib/branchable_cdn_assets/manifest.rb, line 15 def files file_set.to_a end
merge_files(new_files)
click to toggle source
add new files to the manifest set @param new_files [Array] @return [Set]
# File lib/branchable_cdn_assets/manifest.rb, line 22 def merge_files new_files file_set.merge Array(new_files) end
remove_files(files_to_remove)
click to toggle source
remove a set of files from the manifest @param files_to_remove [Array] @return [Set]
# File lib/branchable_cdn_assets/manifest.rb, line 29 def remove_files files_to_remove file_set.subtract Array(files_to_remove) end
update_source_file!()
click to toggle source
updates the manifest file with the most recent set of files @return [Void]
# File lib/branchable_cdn_assets/manifest.rb, line 36 def update_source_file! destroy! && return if file_set.empty? File.open( source_file, 'w' ) do |file| file.write manifest_content end end
Private Instance Methods
destroy!()
click to toggle source
remove the manifest source_file
# File lib/branchable_cdn_assets/manifest.rb, line 57 def destroy! File.delete(source_file) if File.exist?(source_file) true end
manifest_content()
click to toggle source
render/serialize the manifest set
# File lib/branchable_cdn_assets/manifest.rb, line 52 def manifest_content file_set.to_a.join("\n") end
read_source_file()
click to toggle source
read the manifest source_file
# File lib/branchable_cdn_assets/manifest.rb, line 47 def read_source_file IO.read(source_file).split.to_set end