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 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
- # Ettu
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
- ## Installation
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 CacheDigests to your Gemfile:
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
- ## Usage
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
- ## RAILS_ENV=development Issues
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
- ## Contributing
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
@@ -0,0 +1,5 @@
1
+ Ettu Roadmap
2
+ ============
3
+
4
+ 1. [x] Decouple Ettu and Configuration
5
+ 2. [ ] Default assets to those set in Rails.application.config.assets.precompile
@@ -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
- attempt_late_template_digestor_set
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
@@ -1,3 +1,3 @@
1
1
  class Ettu
2
- VERSION = '0.0.8'
2
+ VERSION = '0.0.9'
3
3
  end
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.8
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: 1.8.23
127
+ rubygems_version: 2.0.0
139
128
  signing_key:
140
- specification_version: 3
129
+ specification_version: 4
141
130
  summary: Account for view code when using ETags.
142
131
  test_files:
143
132
  - spec/ettu_spec.rb