ettu 0.0.6 → 0.0.7
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.
- data/README.md +13 -6
- data/ettu.gemspec +5 -4
- data/lib/ettu/configuration.rb +4 -0
- data/lib/ettu/fresh_when.rb +1 -1
- data/lib/ettu/version.rb +1 -1
- data/lib/ettu.rb +5 -0
- metadata +6 -7
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Ettu
|
|
2
2
|
|
|
3
|
-
Using Rails
|
|
3
|
+
Using Rails `stale?` or `fresh_when`? Are your users seeing old view
|
|
4
4
|
code even after new deploys? The Rails way `fresh_when(@product)`
|
|
5
5
|
doesn't account for changes in your view code, you have to do it
|
|
6
6
|
yourself.
|
|
@@ -17,19 +17,26 @@ changes to your view code.
|
|
|
17
17
|
|
|
18
18
|
## Installation
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
### Rails 4
|
|
21
|
+
|
|
22
|
+
Add Ettu to your Gemfile:
|
|
21
23
|
|
|
22
24
|
gem 'ettu'
|
|
23
25
|
|
|
24
|
-
And
|
|
26
|
+
And `$ bundle install`
|
|
27
|
+
|
|
28
|
+
### Rails 3
|
|
25
29
|
|
|
26
|
-
|
|
30
|
+
Add Ettu and CacheDigests to your Gemfile:
|
|
31
|
+
|
|
32
|
+
gem 'ettu'
|
|
33
|
+
gem 'cache_digests'
|
|
27
34
|
|
|
28
|
-
And
|
|
35
|
+
And `$ bundle install`
|
|
29
36
|
|
|
30
37
|
## Usage
|
|
31
38
|
|
|
32
|
-
Rails
|
|
39
|
+
Rails ETags can be used in the following way:
|
|
33
40
|
|
|
34
41
|
```ruby
|
|
35
42
|
class ProductsController < ApplicationController
|
data/ettu.gemspec
CHANGED
|
@@ -6,19 +6,20 @@ require 'ettu/version'
|
|
|
6
6
|
Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = 'ettu'
|
|
8
8
|
spec.version = Ettu::VERSION
|
|
9
|
-
spec.
|
|
10
|
-
spec.email =
|
|
9
|
+
spec.author = 'Justin Ridgewell'
|
|
10
|
+
spec.email = 'jridgewell@cloudspace.com'
|
|
11
11
|
spec.description = %q{Account for js, css, and views when using ETags.}
|
|
12
12
|
spec.summary = %q{Account for view code when using ETags.}
|
|
13
13
|
spec.homepage = 'http://github.com/cloudspace/ettu'
|
|
14
14
|
spec.license = 'MIT'
|
|
15
15
|
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
|
17
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
18
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
18
|
spec.require_paths = ['lib']
|
|
20
19
|
|
|
21
|
-
spec.
|
|
20
|
+
spec.required_ruby_version = '>= 1.9'
|
|
21
|
+
|
|
22
|
+
spec.add_dependency 'rails', '>= 3.2'
|
|
22
23
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
|
23
24
|
spec.add_development_dependency 'rake'
|
|
24
25
|
spec.add_development_dependency 'rspec'
|
data/lib/ettu/configuration.rb
CHANGED
|
@@ -23,7 +23,11 @@ class Ettu
|
|
|
23
23
|
delete :view if key? :view
|
|
24
24
|
|
|
25
25
|
if defined? ActionView::Digestor
|
|
26
|
+
# Attempt to use ActionView::Digestor on Rails 4
|
|
26
27
|
self.template_digestor = ActionView::Digestor
|
|
28
|
+
elsif defined? CacheDigests::TemplateDigestor
|
|
29
|
+
# Attempt to use CacheDigests::TemplateDigestor on Rails 3
|
|
30
|
+
self.template_digestor = CacheDigests::TemplateDigestor
|
|
27
31
|
end
|
|
28
32
|
end
|
|
29
33
|
end
|
data/lib/ettu/fresh_when.rb
CHANGED
|
@@ -5,7 +5,7 @@ class Ettu
|
|
|
5
5
|
included do
|
|
6
6
|
alias_method :old_fresh_when, :fresh_when
|
|
7
7
|
|
|
8
|
-
def fresh_when(record_or_options, additional_options)
|
|
8
|
+
def fresh_when(record_or_options, additional_options = {})
|
|
9
9
|
ettu = ettu_instance(record_or_options, additional_options, self)
|
|
10
10
|
|
|
11
11
|
ettu_params = {etag: ettu.etags, last_modified: ettu.last_modified}
|
data/lib/ettu/version.rb
CHANGED
data/lib/ettu.rb
CHANGED
|
@@ -77,6 +77,11 @@ class Ettu
|
|
|
77
77
|
# https://gist.github.com/jeremy/4211803
|
|
78
78
|
def view_digest(view)
|
|
79
79
|
return nil unless view.present?
|
|
80
|
+
|
|
81
|
+
if @@config.template_digestor.nil? && Rails::VERSION::MAJOR == 3
|
|
82
|
+
raise "Ettu requires the cache_digests gem when using Rails v#{Rails::VERSION::STRING}"
|
|
83
|
+
end
|
|
84
|
+
|
|
80
85
|
@@config.template_digestor.digest(
|
|
81
86
|
view,
|
|
82
87
|
@controller.request.format.try(:to_sym),
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ettu
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.7
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-
|
|
12
|
+
date: 2013-07-01 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rails
|
|
@@ -18,7 +18,7 @@ dependencies:
|
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: '
|
|
21
|
+
version: '3.2'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -26,7 +26,7 @@ dependencies:
|
|
|
26
26
|
requirements:
|
|
27
27
|
- - ! '>='
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '
|
|
29
|
+
version: '3.2'
|
|
30
30
|
- !ruby/object:Gem::Dependency
|
|
31
31
|
name: bundler
|
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -92,8 +92,7 @@ dependencies:
|
|
|
92
92
|
- !ruby/object:Gem::Version
|
|
93
93
|
version: '0'
|
|
94
94
|
description: Account for js, css, and views when using ETags.
|
|
95
|
-
email:
|
|
96
|
-
- jridgewell@cloudspace.com
|
|
95
|
+
email: jridgewell@cloudspace.com
|
|
97
96
|
executables: []
|
|
98
97
|
extensions: []
|
|
99
98
|
extra_rdoc_files: []
|
|
@@ -127,7 +126,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
127
126
|
requirements:
|
|
128
127
|
- - ! '>='
|
|
129
128
|
- !ruby/object:Gem::Version
|
|
130
|
-
version: '
|
|
129
|
+
version: '1.9'
|
|
131
130
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
131
|
none: false
|
|
133
132
|
requirements:
|