Class: Appcache::Manifest

Inherits:
Object
  • Object
show all
Defined in:
lib/appcache-manifest.rb,
lib/appcache-manifest/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}, &block) ⇒ Manifest

Returns a new instance of Manifest.



10
11
12
13
# File 'lib/appcache-manifest.rb', line 10

def initialize(options = {}, &block)
	@@config = Appcache::Config.new(&block)
	set_route
end

Class Method Details

.configure(*args, &block) ⇒ Object



6
7
8
# File 'lib/appcache-manifest.rb', line 6

def self.configure(*args, &block)
	new(*args, &block)
end

Instance Method Details

#set_routeObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/appcache-manifest.rb', line 15

def set_route
			Rails.application.routes.draw do
match @@config.manifest_url => Proc.new {
    manifest_file = "#{Rails.root.to_s}/public/#{Rails.application.config.assets.prefix}/manifest.yml"
    if File.exists?(manifest_file)
      manifest = YAML::load(IO.read(manifest_file))

      body = ["CACHE MANIFEST"]
      body << "# #{@@config.to_json}"
      for key,value in manifest
        body << Rails.application.config.assets.prefix + "/" + value
      end
      body << "" << "NETWORK: *"

      [200, {"Content-Type" => "text/cache-manifest"}, [body.join("\n")]]
    else
      [400, {"Content-Type" => "text/html"}, ["File not found"]]
    end
}
			end
end