ettu 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +26 -6
- data/ROADMAP.md +5 -0
- data/lib/ettu/configuration.rb +28 -10
- data/lib/ettu/version.rb +1 -1
- data/lib/ettu.rb +0 -4
- data/spec/ettu_spec.rb +1 -2
- metadata +15 -26
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ef8439712642b81f9f07146bdd3c29b74eac133e
|
4
|
+
data.tar.gz: ed0d3d4c69d0964d55bcbb449a8216ba5ab88e40
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cb22213115f68d8b8450263af84aaafc7bcd8bff2f199158630b7720e15de96a8c7cc8ecf94f9bec7ab0d7864908f3bd593ba6c4811ac622cb1b0c182210223e
|
7
|
+
data.tar.gz: 8ba4e03604d6b4f8dd7367b9c1a1431048e6eda87ecf9a13e6df08679b81d1e1080aa9fe8172389527856c1f72e98757e39cca048a60e4caa2fd45771375f1bb
|
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
Ettu
|
2
|
+
====
|
2
3
|
|
3
4
|
Using Rails `stale?` or `fresh_when`? Are your users seeing old view
|
4
5
|
code even after new deploys? The Rails way `fresh_when(@product)`
|
@@ -15,7 +16,8 @@ all of this while allowing you to use the same syntax you're already
|
|
15
16
|
accustomed to. So keep doing what you're doing, and let Ettu worry about
|
16
17
|
changes to your view code.
|
17
18
|
|
18
|
-
|
19
|
+
Installation
|
20
|
+
------------
|
19
21
|
|
20
22
|
### Rails 4
|
21
23
|
|
@@ -27,14 +29,16 @@ And `$ bundle install`
|
|
27
29
|
|
28
30
|
### Rails 3
|
29
31
|
|
30
|
-
Add Ettu and
|
32
|
+
Add Ettu and [cache_digests](https://github.com/rails/cache_digests) to
|
33
|
+
your Gemfile:
|
31
34
|
|
32
35
|
gem 'ettu'
|
33
36
|
gem 'cache_digests'
|
34
37
|
|
35
38
|
And `$ bundle install`
|
36
39
|
|
37
|
-
|
40
|
+
Usage
|
41
|
+
-----
|
38
42
|
|
39
43
|
Rails ETags can be used in the following way:
|
40
44
|
|
@@ -111,7 +115,10 @@ implementation. Ettu makes sure to pass all the options you specify to
|
|
111
115
|
Rails (like the `public` option). It's even coded as a drop-in gem that
|
112
116
|
won't cause problems if it's not installed.
|
113
117
|
|
114
|
-
|
118
|
+
RAILS_ENV=development Issues
|
119
|
+
----------------------------
|
120
|
+
|
121
|
+
### Rails 4
|
115
122
|
|
116
123
|
Until [rails/rails#10791](https://github.com/rails/rails/pull/10791)
|
117
124
|
gets merged in, Ettu will not be able to detect changes in templates
|
@@ -128,7 +135,20 @@ My::Application.configure do
|
|
128
135
|
end
|
129
136
|
```
|
130
137
|
|
131
|
-
|
138
|
+
### Rails 3
|
139
|
+
|
140
|
+
The cache_digests gem has already patched issue #10791. All you need to
|
141
|
+
do is disable `cache_template_loading`.
|
142
|
+
|
143
|
+
```ruby
|
144
|
+
# config/environments/development.rb
|
145
|
+
My::Application.configure do
|
146
|
+
config.action_view.cache_template_loading
|
147
|
+
end
|
148
|
+
```
|
149
|
+
|
150
|
+
Contributing
|
151
|
+
------------
|
132
152
|
|
133
153
|
1. Fork it
|
134
154
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
data/ROADMAP.md
ADDED
data/lib/ettu/configuration.rb
CHANGED
@@ -9,15 +9,6 @@ class Ettu
|
|
9
9
|
set_defaults
|
10
10
|
end
|
11
11
|
|
12
|
-
def attempt_late_template_digestor_set
|
13
|
-
if defined? ActionView::Digestor
|
14
|
-
# Attempt to use ActionView::Digestor on Rails 4
|
15
|
-
self.template_digestor = ActionView::Digestor
|
16
|
-
elsif defined? CacheDigests::TemplateDigestor
|
17
|
-
# Attempt to use CacheDigests::TemplateDigestor on Rails 3
|
18
|
-
self.template_digestor = CacheDigests::TemplateDigestor
|
19
|
-
end
|
20
|
-
end
|
21
12
|
|
22
13
|
private
|
23
14
|
|
@@ -32,7 +23,34 @@ class Ettu
|
|
32
23
|
# self.view = "#{controller_name}/#{action_name}"
|
33
24
|
delete :view if key? :view
|
34
25
|
|
35
|
-
|
26
|
+
# Don't attempt to reset the template_digestor
|
27
|
+
# if one has already been found
|
28
|
+
unless self.template_digestor
|
29
|
+
self.template_digestor = LateTemplateDigestor.new(self)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class LateTemplateDigestor
|
34
|
+
def initialize(config)
|
35
|
+
@config = config
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.digest(*args)
|
39
|
+
digestor = attempt_late_template_digestor_set
|
40
|
+
digestor.digest(*args)
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def attempt_late_template_digestor_set
|
46
|
+
# Attempt to use ActionView::Digestor on Rails 4
|
47
|
+
if defined? ActionView::Digestor
|
48
|
+
@config.template_digestor = ActionView::Digestor
|
49
|
+
elsif defined? CacheDigests::TemplateDigestor
|
50
|
+
# Attempt to use CacheDigests::TemplateDigestor on Rails 3
|
51
|
+
@config.template_digestor = CacheDigests::TemplateDigestor
|
52
|
+
end
|
53
|
+
end
|
36
54
|
end
|
37
55
|
end
|
38
56
|
end
|
data/lib/ettu/version.rb
CHANGED
data/lib/ettu.rb
CHANGED
@@ -79,10 +79,6 @@ class Ettu
|
|
79
79
|
def view_digest(view)
|
80
80
|
return nil unless view.present?
|
81
81
|
|
82
|
-
if @@config.template_digestor.nil?
|
83
|
-
@@config.attempt_late_template_digestor_set
|
84
|
-
end
|
85
|
-
|
86
82
|
@@config.template_digestor.digest(
|
87
83
|
view,
|
88
84
|
@controller.request.format.try(:to_sym),
|
data/spec/ettu_spec.rb
CHANGED
@@ -31,6 +31,7 @@ describe Ettu do
|
|
31
31
|
|
32
32
|
describe '.configure' do
|
33
33
|
subject(:ettu) { Ettu.new(nil, {}, controller) }
|
34
|
+
after(:all) { Ettu.configure { |config| config.reset } }
|
34
35
|
|
35
36
|
context 'when no options are specified' do
|
36
37
|
before(:all) do
|
@@ -41,7 +42,6 @@ describe Ettu do
|
|
41
42
|
config.view = 'custom/view'
|
42
43
|
end
|
43
44
|
end
|
44
|
-
after(:all) { Ettu.configure { |config| config.reset } }
|
45
45
|
|
46
46
|
it 'will use the default js file' do
|
47
47
|
expect(ettu.js_etag).to eq('custom.js.digest')
|
@@ -68,7 +68,6 @@ describe Ettu do
|
|
68
68
|
config.view = false
|
69
69
|
end
|
70
70
|
end
|
71
|
-
after(:all) { Ettu.configure { |config| config.reset } }
|
72
71
|
|
73
72
|
it 'will disable js etag' do
|
74
73
|
expect(ettu.js_etag).to eq(nil)
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ettu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.9
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Justin Ridgewell
|
@@ -14,23 +13,20 @@ dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '3.0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '3.0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: bundler
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,49 +41,43 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rake
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rspec
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: simplecov
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
description: Account for js, css, and views when using ETags.
|
@@ -103,6 +92,7 @@ files:
|
|
103
92
|
- Gemfile
|
104
93
|
- LICENSE.txt
|
105
94
|
- README.md
|
95
|
+
- ROADMAP.md
|
106
96
|
- Rakefile
|
107
97
|
- ettu.gemspec
|
108
98
|
- lib/ettu.rb
|
@@ -117,27 +107,26 @@ files:
|
|
117
107
|
homepage: http://github.com/cloudspace/ettu
|
118
108
|
licenses:
|
119
109
|
- MIT
|
110
|
+
metadata: {}
|
120
111
|
post_install_message:
|
121
112
|
rdoc_options: []
|
122
113
|
require_paths:
|
123
114
|
- lib
|
124
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
-
none: false
|
126
116
|
requirements:
|
127
|
-
- -
|
117
|
+
- - '>='
|
128
118
|
- !ruby/object:Gem::Version
|
129
119
|
version: '1.9'
|
130
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
-
none: false
|
132
121
|
requirements:
|
133
|
-
- -
|
122
|
+
- - '>='
|
134
123
|
- !ruby/object:Gem::Version
|
135
124
|
version: '0'
|
136
125
|
requirements: []
|
137
126
|
rubyforge_project:
|
138
|
-
rubygems_version:
|
127
|
+
rubygems_version: 2.0.0
|
139
128
|
signing_key:
|
140
|
-
specification_version:
|
129
|
+
specification_version: 4
|
141
130
|
summary: Account for view code when using ETags.
|
142
131
|
test_files:
|
143
132
|
- spec/ettu_spec.rb
|