sitepress-rails 0.1.29 → 2.0.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -2
  3. data/lib/sitepress/build_paths/directory_index_path.rb +12 -0
  4. data/lib/sitepress/build_paths/index_path.rb +20 -0
  5. data/lib/sitepress/build_paths/root_path.rb +40 -0
  6. data/lib/sitepress/compiler.rb +68 -0
  7. data/lib/sitepress/engine.rb +44 -12
  8. data/lib/sitepress/rails.rb +12 -10
  9. data/lib/sitepress/rails_configuration.rb +8 -6
  10. data/lib/sitepress/renderers/controller.rb +51 -0
  11. data/lib/sitepress/renderers/server.rb +25 -0
  12. data/spec/dummy/config/application.rb +3 -1
  13. data/spec/dummy/config/environments/development.rb +1 -1
  14. data/spec/dummy/config/environments/production.rb +1 -1
  15. data/spec/dummy/log/test.log +2374 -78341
  16. data/spec/sitepress-rails_spec.rb +1 -30
  17. data/spec/sitepress/compiler_spec.rb +19 -0
  18. data/spec/sitepress/sitepress_site_controller_spec.rb +47 -6
  19. metadata +98 -84
  20. data/app/controllers/concerns/sitepress/site_pages.rb +0 -98
  21. data/app/controllers/sitepress/site_controller.rb +0 -7
  22. data/app/helpers/sitepress/application_helper.rb +0 -4
  23. data/config/routes.rb +0 -7
  24. data/lib/sitepress/extensions/index_request_path.rb +0 -24
  25. data/lib/sitepress/extensions/partials_remover.rb +0 -19
  26. data/lib/sitepress/extensions/rails_request_paths.rb +0 -20
  27. data/spec/dummy/app/models/application_record.rb +0 -3
  28. data/spec/dummy/db/production.sqlite3 +0 -0
  29. data/spec/dummy/db/test.sqlite3 +0 -0
  30. data/spec/dummy/log/production.log +0 -1360
  31. data/spec/sitepress/extensions/index_request_path_spec.rb +0 -15
  32. data/spec/sitepress/extensions/partials_remover_spec.rb +0 -12
  33. data/spec/sitepress/extensions/rails_request_paths_spec.rb +0 -9
@@ -8,10 +8,6 @@ describe "Sitepress.configuration" do
8
8
  before do
9
9
  app.config.eager_load = cache_classes # WTF?
10
10
  end
11
- it "has site" do
12
- app.initialize!
13
- expect(subject.site.root_path).to eql(app.root.join("app/content"))
14
- end
15
11
  it "has Rails.application as parent engine" do
16
12
  app.initialize!
17
13
  expect(subject.parent_engine).to eql(app)
@@ -43,29 +39,4 @@ describe "Sitepress.configuration" do
43
39
  end
44
40
  end
45
41
  end
46
- context "Sitepress::Middleware::RequestCache" do
47
- it "is in Rails middleware stack" do
48
- expect(Rails.configuration.middleware).to include(Sitepress::Middleware::RequestCache)
49
- end
50
- end
51
- context "Rails.configuration.paths" do
52
- subject { Rails.configuration.paths[path].to_a }
53
- context "views" do
54
- let(:path) { "app/views" }
55
- it { should include(app.root.join("app/content").to_s) }
56
- end
57
- context "helpers" do
58
- let(:path) { "app/helpers" }
59
- it { should include(app.root.join("app/content/helpers").to_s) }
60
- end
61
- context "assets" do
62
- let(:path) { "app/assets" }
63
- it { should include(app.root.join("app/content/assets").to_s) }
64
- end
65
- end
66
- context "#partals" do
67
- it "excludes partials" do
68
- expect(subject.site.resources.size).to eql(2)
69
- end
70
- end
71
- end
42
+ end
@@ -0,0 +1,19 @@
1
+ require "spec_helper"
2
+ require "tmpdir"
3
+ require "fileutils"
4
+
5
+ describe Sitepress::Compiler do
6
+ let(:site) { Sitepress.site }
7
+ let(:target) { Pathname.new(Dir::tmpdir).join("build") }
8
+ # Write compiler output to /dev/null so our test output remains clean.
9
+ let(:stdout) { File.open(File::NULL, "w") }
10
+ subject { Sitepress::Compiler.new(site: site, stdout: stdout) }
11
+ describe "#compile" do
12
+ before { FileUtils.mkdir_p(target) }
13
+ after { FileUtils.rm_rf(target) }
14
+ it "writes files to target" do
15
+ subject.compile(target_path: target)
16
+ expect(Dir.glob(target.join("**")).size).to eql(2) # 2 items in the site... mkay?
17
+ end
18
+ end
19
+ end
@@ -10,10 +10,12 @@ describe Sitepress::SiteController, type: :controller do
10
10
  end
11
11
  end
12
12
 
13
+ let(:site) { Sitepress.configuration.site }
14
+
13
15
  context "templated page" do
14
16
  render_views
15
17
  before { get_resource "/time" }
16
- let(:resource) { Sitepress.site.get("/time") }
18
+ let(:resource) { site.get("/time") }
17
19
  it "is status 200" do
18
20
  expect(response.status).to eql(200)
19
21
  end
@@ -24,7 +26,7 @@ describe Sitepress::SiteController, type: :controller do
24
26
  expect(response.body).to include("<title>Test layout</title>")
25
27
  end
26
28
  it "responds with content type" do
27
- expect(response.content_type).to eql("text/html")
29
+ expect(response.content_type).to include("text/html")
28
30
  end
29
31
  context "helper methods" do
30
32
  subject { @controller }
@@ -32,7 +34,7 @@ describe Sitepress::SiteController, type: :controller do
32
34
  expect(subject.send(:current_page).asset.path).to eql(resource.asset.path)
33
35
  end
34
36
  it "#site" do
35
- expect(subject.send(:site)).to eql(Sitepress.site)
37
+ expect(subject.send(:site)).to eql(site)
36
38
  end
37
39
  end
38
40
  end
@@ -46,11 +48,11 @@ describe Sitepress::SiteController, type: :controller do
46
48
  it "renders body" do
47
49
  expect(response.body).to include("<h1>Hi!</h1>")
48
50
  end
49
- it "renders layout" do
50
- expect(response.body).to include("<title>Dummy</title>")
51
+ it "does not render layout" do
52
+ expect(response.body).to_not include("<title>Dummy</title>")
51
53
  end
52
54
  it "responds with content type" do
53
- expect(response.content_type).to eql("text/html")
55
+ expect(response.content_type).to include("text/html")
54
56
  end
55
57
  end
56
58
 
@@ -61,4 +63,43 @@ describe Sitepress::SiteController, type: :controller do
61
63
  }.to raise_exception(ActionController::RoutingError)
62
64
  end
63
65
  end
66
+
67
+ context "paths" do
68
+ context "view_paths" do
69
+ subject { Sitepress::SiteController.view_paths.map(&:path) }
70
+ it { is_expected.to include(site.root_path.to_s) }
71
+ it { is_expected.to include(site.pages_path.to_s) }
72
+ end
73
+ context "helper_paths" do
74
+ subject{ Sitepress::SiteController.helpers_path }
75
+ it { is_expected.to include(site.helpers_path.to_s) }
76
+ it "has site#helper_paths in ActiveSupport::Dependencies.autoload_paths" do
77
+ expect(ActiveSupport::Dependencies.autoload_paths).to include(site.helpers_path.to_s)
78
+ end
79
+ end
80
+ end
81
+
82
+ context "render cache" do
83
+ context "cache_resources=true" do
84
+ before { site.cache_resources = true }
85
+ it "enables cache" do
86
+ expect(site.cache_resources).to be true
87
+ expect(site).to receive(:cache_resources=).with(true)
88
+ expect(site).to receive(:cache_resources=).with(true)
89
+ get_resource "/time"
90
+ expect(site.cache_resources).to be true
91
+ end
92
+ end
93
+ context "cache_resources=false" do
94
+ before { site.cache_resources = false }
95
+ it "enables cache" do
96
+ expect(site.cache_resources).to be false
97
+ expect(site).to receive(:cache_resources=).with(true)
98
+ expect(site).to receive(:cache_resources=).with(false)
99
+ get_resource "/time"
100
+ expect(site.cache_resources).to be false
101
+ end
102
+ end
103
+
104
+ end
64
105
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sitepress-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.29
4
+ version: 2.0.0.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brad Gessler
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-20 00:00:00.000000000 Z
11
+ date: 2021-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: sqlite3
14
+ name: rspec-rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec-rails
28
+ name: pry
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,48 +39,76 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: pry
42
+ name: rails
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '4.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '4.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rails
56
+ name: sitepress-core
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.0.0.beta3
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.0.0.beta3
69
+ - !ruby/object:Gem::Dependency
70
+ name: railties
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
60
74
  - !ruby/object:Gem::Version
61
- version: '4.0'
75
+ version: '5.0'
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - ">="
67
81
  - !ruby/object:Gem::Version
68
- version: '4.0'
82
+ version: '5.0'
69
83
  - !ruby/object:Gem::Dependency
70
- name: sitepress-core
84
+ name: actionpack
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - '='
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
- version: 0.1.29
89
+ version: '5.0'
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - '='
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
- version: 0.1.29
83
- description:
96
+ version: '5.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: sprockets-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 2.0.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 2.0.0
111
+ description:
84
112
  email:
85
113
  - bradgessler@gmail.com
86
114
  executables: []
@@ -89,17 +117,16 @@ extra_rdoc_files: []
89
117
  files:
90
118
  - README.md
91
119
  - Rakefile
92
- - app/controllers/concerns/sitepress/site_pages.rb
93
- - app/controllers/sitepress/site_controller.rb
94
- - app/helpers/sitepress/application_helper.rb
95
- - config/routes.rb
96
120
  - lib/sitepress-rails.rb
121
+ - lib/sitepress/build_paths/directory_index_path.rb
122
+ - lib/sitepress/build_paths/index_path.rb
123
+ - lib/sitepress/build_paths/root_path.rb
124
+ - lib/sitepress/compiler.rb
97
125
  - lib/sitepress/engine.rb
98
- - lib/sitepress/extensions/index_request_path.rb
99
- - lib/sitepress/extensions/partials_remover.rb
100
- - lib/sitepress/extensions/rails_request_paths.rb
101
126
  - lib/sitepress/rails.rb
102
127
  - lib/sitepress/rails_configuration.rb
128
+ - lib/sitepress/renderers/controller.rb
129
+ - lib/sitepress/renderers/server.rb
103
130
  - lib/sitepress/route_constraint.rb
104
131
  - lib/tasks/sitepress_tasks.rake
105
132
  - spec/dummy/Rakefile
@@ -118,7 +145,6 @@ files:
118
145
  - spec/dummy/app/helpers/application_helper.rb
119
146
  - spec/dummy/app/jobs/application_job.rb
120
147
  - spec/dummy/app/mailers/application_mailer.rb
121
- - spec/dummy/app/models/application_record.rb
122
148
  - spec/dummy/app/views/baseline/show.html.erb
123
149
  - spec/dummy/app/views/layouts/application.html.erb
124
150
  - spec/dummy/app/views/layouts/mailer.html.erb
@@ -152,9 +178,6 @@ files:
152
178
  - spec/dummy/config/routes.rb
153
179
  - spec/dummy/config/secrets.yml
154
180
  - spec/dummy/config/spring.rb
155
- - spec/dummy/db/production.sqlite3
156
- - spec/dummy/db/test.sqlite3
157
- - spec/dummy/log/production.log
158
181
  - spec/dummy/log/test.log
159
182
  - spec/dummy/public/404.html
160
183
  - spec/dummy/public/422.html
@@ -163,9 +186,7 @@ files:
163
186
  - spec/dummy/public/apple-touch-icon.png
164
187
  - spec/dummy/public/favicon.ico
165
188
  - spec/sitepress-rails_spec.rb
166
- - spec/sitepress/extensions/index_request_path_spec.rb
167
- - spec/sitepress/extensions/partials_remover_spec.rb
168
- - spec/sitepress/extensions/rails_request_paths_spec.rb
189
+ - spec/sitepress/compiler_spec.rb
169
190
  - spec/sitepress/rails_configuration_spec.rb
170
191
  - spec/sitepress/route_constraint_spec.rb
171
192
  - spec/sitepress/routes_spec.rb
@@ -180,7 +201,7 @@ files:
180
201
  homepage: https://github.com/sitepress/sitepress
181
202
  licenses: []
182
203
  metadata: {}
183
- post_install_message:
204
+ post_install_message:
184
205
  rdoc_options: []
185
206
  require_paths:
186
207
  - lib
@@ -191,88 +212,81 @@ required_ruby_version: !ruby/object:Gem::Requirement
191
212
  version: '0'
192
213
  required_rubygems_version: !ruby/object:Gem::Requirement
193
214
  requirements:
194
- - - ">="
215
+ - - ">"
195
216
  - !ruby/object:Gem::Version
196
- version: '0'
217
+ version: 1.3.1
197
218
  requirements: []
198
- rubyforge_project:
199
- rubygems_version: 2.7.3
200
- signing_key:
219
+ rubygems_version: 3.2.3
220
+ signing_key:
201
221
  specification_version: 4
202
222
  summary: Sitepress rails integration.
203
223
  test_files:
204
- - spec/spec_helper.rb
205
- - spec/sitepress-rails_spec.rb
206
- - spec/dummy/app/mailers/application_mailer.rb
224
+ - spec/dummy/Rakefile
225
+ - spec/dummy/app/assets/config/manifest.js
226
+ - spec/dummy/app/assets/javascripts/application.js
227
+ - spec/dummy/app/assets/javascripts/cable.js
228
+ - spec/dummy/app/assets/stylesheets/application.css
229
+ - spec/dummy/app/content/helpers/sample_helper.rb
207
230
  - spec/dummy/app/content/layouts/sitepress_test_layout.html.erb
208
- - spec/dummy/app/content/pages/time.html.erb
209
231
  - spec/dummy/app/content/pages/_stupid.html.erb
210
232
  - spec/dummy/app/content/pages/hi.html
211
233
  - spec/dummy/app/content/pages/partials/_really_stupid.html.erb
212
- - spec/dummy/app/content/helpers/sample_helper.rb
213
- - spec/dummy/app/models/application_record.rb
214
- - spec/dummy/app/jobs/application_job.rb
234
+ - spec/dummy/app/content/pages/time.html.erb
215
235
  - spec/dummy/app/controllers/application_controller.rb
216
236
  - spec/dummy/app/controllers/baseline_controller.rb
237
+ - spec/dummy/app/helpers/application_helper.rb
238
+ - spec/dummy/app/jobs/application_job.rb
239
+ - spec/dummy/app/mailers/application_mailer.rb
217
240
  - spec/dummy/app/views/baseline/show.html.erb
218
241
  - spec/dummy/app/views/layouts/application.html.erb
219
242
  - spec/dummy/app/views/layouts/mailer.html.erb
220
243
  - spec/dummy/app/views/layouts/mailer.text.erb
221
- - spec/dummy/app/assets/config/manifest.js
222
- - spec/dummy/app/assets/javascripts/cable.js
223
- - spec/dummy/app/assets/javascripts/application.js
224
- - spec/dummy/app/assets/stylesheets/application.css
225
- - spec/dummy/app/helpers/application_helper.rb
226
- - spec/dummy/bin/update
227
- - spec/dummy/bin/rake
228
- - spec/dummy/bin/setup
229
244
  - spec/dummy/bin/bundle
230
245
  - spec/dummy/bin/rails
231
- - spec/dummy/config/secrets.yml
232
- - spec/dummy/config/routes.rb
233
- - spec/dummy/config/locales/en.yml
246
+ - spec/dummy/bin/rake
247
+ - spec/dummy/bin/setup
248
+ - spec/dummy/bin/update
249
+ - spec/dummy/config/application.rb
250
+ - spec/dummy/config/boot.rb
234
251
  - spec/dummy/config/cable.yml
235
- - spec/dummy/config/environments/production.rb
252
+ - spec/dummy/config/database.yml
253
+ - spec/dummy/config/environment.rb
236
254
  - spec/dummy/config/environments/development.rb
255
+ - spec/dummy/config/environments/production.rb
237
256
  - spec/dummy/config/environments/test.rb
238
- - spec/dummy/config/spring.rb
239
- - spec/dummy/config/environment.rb
240
- - spec/dummy/config/application.rb
241
- - spec/dummy/config/puma.rb
242
- - spec/dummy/config/database.yml
243
- - spec/dummy/config/boot.rb
244
257
  - spec/dummy/config/initializers/application_controller_renderer.rb
258
+ - spec/dummy/config/initializers/assets.rb
245
259
  - spec/dummy/config/initializers/backtrace_silencers.rb
246
- - spec/dummy/config/initializers/null_logger.rb
247
- - spec/dummy/config/initializers/mime_types.rb
260
+ - spec/dummy/config/initializers/cookies_serializer.rb
248
261
  - spec/dummy/config/initializers/filter_parameter_logging.rb
262
+ - spec/dummy/config/initializers/inflections.rb
263
+ - spec/dummy/config/initializers/mime_types.rb
264
+ - spec/dummy/config/initializers/null_logger.rb
249
265
  - spec/dummy/config/initializers/session_store.rb
250
266
  - spec/dummy/config/initializers/wrap_parameters.rb
251
- - spec/dummy/config/initializers/assets.rb
252
- - spec/dummy/config/initializers/cookies_serializer.rb
253
- - spec/dummy/config/initializers/inflections.rb
267
+ - spec/dummy/config/locales/en.yml
268
+ - spec/dummy/config/puma.rb
269
+ - spec/dummy/config/routes.rb
270
+ - spec/dummy/config/secrets.yml
271
+ - spec/dummy/config/spring.rb
254
272
  - spec/dummy/config.ru
255
- - spec/dummy/Rakefile
256
- - spec/dummy/public/favicon.ico
273
+ - spec/dummy/log/test.log
274
+ - spec/dummy/public/404.html
257
275
  - spec/dummy/public/422.html
258
- - spec/dummy/public/apple-touch-icon.png
259
276
  - spec/dummy/public/500.html
260
- - spec/dummy/public/404.html
261
277
  - spec/dummy/public/apple-touch-icon-precomposed.png
262
- - spec/dummy/db/production.sqlite3
263
- - spec/dummy/db/test.sqlite3
264
- - spec/dummy/log/test.log
265
- - spec/dummy/log/production.log
278
+ - spec/dummy/public/apple-touch-icon.png
279
+ - spec/dummy/public/favicon.ico
280
+ - spec/sitepress/compiler_spec.rb
281
+ - spec/sitepress/rails_configuration_spec.rb
282
+ - spec/sitepress/route_constraint_spec.rb
283
+ - spec/sitepress/routes_spec.rb
284
+ - spec/sitepress/sitepress_site_controller_spec.rb
285
+ - spec/sitepress-rails_spec.rb
266
286
  - spec/sites/sample/pages/index.html.erb
267
- - spec/sites/sample/pages/test.html.haml
287
+ - spec/sites/sample/pages/nothing
268
288
  - spec/sites/sample/pages/sin_frontmatter.html.haml
269
289
  - spec/sites/sample/pages/super.duper/index.html
270
- - spec/sites/sample/pages/nothing
290
+ - spec/sites/sample/pages/test.html.haml
271
291
  - spec/sites/sample/pages/text.txt
272
- - spec/sitepress/extensions/rails_request_paths_spec.rb
273
- - spec/sitepress/extensions/partials_remover_spec.rb
274
- - spec/sitepress/extensions/index_request_path_spec.rb
275
- - spec/sitepress/sitepress_site_controller_spec.rb
276
- - spec/sitepress/rails_configuration_spec.rb
277
- - spec/sitepress/routes_spec.rb
278
- - spec/sitepress/route_constraint_spec.rb
292
+ - spec/spec_helper.rb