rails_appcache 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cad24b0943612791f9429cc73559029a070622ef
4
- data.tar.gz: 2b6ac4a04f968d9828277aaa1e487c0255c571c7
3
+ metadata.gz: a80a1ab0bc8b2d888c5d699a012c907bac05b921
4
+ data.tar.gz: 675a9c02678f4e2fa3df4e8261980ceb57d08e51
5
5
  SHA512:
6
- metadata.gz: 2c0e81878ce55a2ba6c0130af23cddb51d235dc000920943e3c5f6b783750369dc21a6a7c95c588d65548b2cee28f7a1a9e7e88275a5fcf2fa43d8ead478c486
7
- data.tar.gz: 7ba8ff694b56c0ad43db4c04846f5657cd548087b599d5bf99fb9d71f4233183d35075841340f92c3950ff5809e90ae18f94623fb8a6de6f5b47b24387cbd959
6
+ metadata.gz: d41d5df2a9e99c0e526dcf595e754a735b9fcbfcfed0cf86a2f24e9d8962744aa2c430f2c5d6d81d9f3ed3b1c9d54ccfbb3d195e7b4c85035310a38f9ae434f9
7
+ data.tar.gz: e435f9ca87e6a6060387269ae37dc89ecb2989ba278217dd4e1cc13a1769eb0ae328182dacd3c5d1097e3992cf6eb699f1e11f009f5356a595a84a4c801d9bfb
@@ -1,6 +1,31 @@
1
1
 
2
2
  class RailsAppcache::ManifestsController < RailsAppcache::ApplicationController
3
+ include RailsAppcache::ApplicationHelper
4
+
5
+ before_filter :check_caching_enabled
6
+
3
7
  def show
4
- render params[:manifest]
8
+ if params[:version] == appcache_version_string
9
+ # This is a request from a current version of the page
10
+ render params[:manifest]
11
+ else
12
+ # This is a request from an obsolete page, using an obsolete manifest
13
+ # Serving a 404 enough to trigger an obsoletion event, which is purge
14
+ # the manifest from the appcache.
15
+ #
16
+ # The client will get the correct version on the *next* page request
17
+ display_404
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ def display_404
24
+ render status: :not_found, text: ''
25
+ end
26
+
27
+ def check_caching_enabled
28
+ display_404 unless RailsAppcache.config.perform_caching?
5
29
  end
30
+
6
31
  end
data/config/routes.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  RailsAppcache::Engine.routes.draw do
2
- get ':manifest.appcache' => 'manifests#show', format: 'appcache'
2
+ get ':manifest-:version.appcache' => 'manifests#show', format: 'appcache', constraints: { version: /[a-zA-Z0-9.]+/ }
3
3
  end
@@ -1,14 +1,17 @@
1
1
  module RailsAppcache
2
2
  module ApplicationHelper
3
3
  def appcache_manifest_path(path)
4
- "/#{path}.appcache"
4
+ return "" unless RailsAppcache.config.perform_caching?
5
+
6
+ "/#{path}-#{appcache_version_string}.appcache"
5
7
  end
6
8
 
7
9
  # In development, serve up a new manifest every time
8
10
  # In production, serve the current Git revision
9
11
  def appcache_version_string
12
+
10
13
  if Rails.env.development?
11
- Time.now.to_i.to_s
14
+ Rails.application.config.assets.version
12
15
  else
13
16
  # Use the REVISION file left in root from capistrano
14
17
  if File.exists?(Rails.root.join('REVISION'))
@@ -0,0 +1,20 @@
1
+
2
+ module RailsAppcache
3
+
4
+ def self.config
5
+ @config ||= Config.new
6
+ end
7
+
8
+ class Config
9
+ # Default to off outside of production
10
+ def perform_caching?
11
+ @perform_caching || !Rails.env.development?
12
+ end
13
+
14
+ def perform_caching=(val)
15
+ @perform_caching = !!val
16
+ end
17
+ end
18
+
19
+ end
20
+
@@ -1,3 +1,3 @@
1
1
  module RailsAppcache
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -1,5 +1,6 @@
1
1
  require 'rails_appcache/engine'
2
2
  require 'rails_appcache/application_helper'
3
+ require 'rails_appcache/config'
3
4
 
4
5
  module RailsAppcache
5
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_appcache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Eagar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-07 00:00:00.000000000 Z
11
+ date: 2015-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -39,6 +39,7 @@ files:
39
39
  - lib/generators/appcache_manifest_generator.rb
40
40
  - lib/rails_appcache.rb
41
41
  - lib/rails_appcache/application_helper.rb
42
+ - lib/rails_appcache/config.rb
42
43
  - lib/rails_appcache/engine.rb
43
44
  - lib/rails_appcache/version.rb
44
45
  - test/dummy/README.rdoc