Class: AssetTrip::Manifest

Inherits:
Object
  • Object
show all
Defined in:
lib/asset_trip/manifest.rb

Instance Method Summary collapse

Constructor Details

#initialize(md5sums = {}) ⇒ Manifest

Returns a new instance of Manifest.



4
5
6
# File 'lib/asset_trip/manifest.rb', line 4

def initialize(md5sums = {})
  @md5sums = md5sums
end

Instance Method Details

#[](key) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/asset_trip/manifest.rb', line 17

def [](key)
  unless @md5sums.has_key?(key)
    raise UnknownAssetError.new("Can't find #{key} in the manifest")
  end

  @md5sums[key]
end

#[]=(key, value) ⇒ Object



13
14
15
# File 'lib/asset_trip/manifest.rb', line 13

def []=(key, value)
  @md5sums[key] = value
end

#path_for(key) ⇒ Object



8
9
10
11
# File 'lib/asset_trip/manifest.rb', line 8

def path_for(key)
  md5sum = self[key]
  "/" + File.join("assets", md5sum[0..1], md5sum[2..10], key)
end

#prune!Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/asset_trip/manifest.rb', line 25

def prune!
  Pathname.glob(AssetTrip.assets_path.join("**", "*.*")).each do |file|
    part2 = file.dirname.split.last.to_s
    part1 = file.dirname.split.first.split.last.to_s

    md5sum = part1 + part2

    if !@md5sums.has_key?(file.basename.to_s) || @md5sums[file.basename.to_s][0..10] != md5sum
      File.unlink(file)
    end
  end
end