ettu 0.0.8 → 0.0.9
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 +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
|