sitepress-rails 0.1.29 → 2.0.0.beta3

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.
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