sitepress-rails 1.0.1 → 2.0.0.beta5

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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -0
  3. data/bin/rails +13 -0
  4. data/lib/sitepress/build_paths/directory_index_path.rb +12 -0
  5. data/lib/sitepress/build_paths/index_path.rb +20 -0
  6. data/lib/sitepress/build_paths/root_path.rb +40 -0
  7. data/lib/sitepress/compiler.rb +68 -0
  8. data/lib/sitepress/engine.rb +46 -10
  9. data/lib/sitepress/rails.rb +12 -10
  10. data/lib/sitepress/rails_configuration.rb +6 -5
  11. data/lib/sitepress/renderers/controller.rb +51 -0
  12. data/lib/sitepress/renderers/server.rb +25 -0
  13. data/{app → rails/app}/controllers/concerns/sitepress/site_pages.rb +35 -9
  14. data/{app → rails/app}/controllers/sitepress/site_controller.rb +1 -1
  15. data/{config → rails/config}/routes.rb +5 -0
  16. data/sitepress-rails.gemspec +32 -0
  17. data/spec/dummy/log/test.log +2252 -79916
  18. data/spec/sitepress-rails_spec.rb +1 -25
  19. data/spec/sitepress/compiler_spec.rb +19 -0
  20. data/spec/sitepress/sitepress_site_controller_spec.rb +33 -16
  21. metadata +108 -72
  22. data/app/helpers/sitepress/application_helper.rb +0 -4
  23. data/lib/sitepress/extensions/index_request_path.rb +0 -24
  24. data/lib/sitepress/extensions/partials_remover.rb +0 -19
  25. data/lib/sitepress/extensions/rails_request_paths.rb +0 -20
  26. data/lib/sitepress/rails_configuration.rb.orig +0 -41
  27. data/spec/dummy/db/production.sqlite3 +0 -0
  28. data/spec/dummy/db/test.sqlite3 +0 -0
  29. data/spec/dummy/log/production.log +0 -1428
  30. data/spec/sitepress/extensions/index_request_path_spec.rb +0 -15
  31. data/spec/sitepress/extensions/partials_remover_spec.rb +0 -12
  32. 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,24 +39,4 @@ describe "Sitepress.configuration" do
43
39
  end
44
40
  end
45
41
  end
46
- context "Rails.configuration.paths" do
47
- subject { Rails.configuration.paths[path].to_a }
48
- context "views" do
49
- let(:path) { "app/views" }
50
- it { should include(app.root.join("app/content").to_s) }
51
- end
52
- context "helpers" do
53
- let(:path) { "app/helpers" }
54
- it { should include(app.root.join("app/content/helpers").to_s) }
55
- end
56
- context "assets" do
57
- let(:path) { "app/assets" }
58
- it { should include(app.root.join("app/content/assets").to_s) }
59
- end
60
- end
61
- context "#partals" do
62
- it "excludes partials" do
63
- expect(subject.site.resources.size).to eql(2)
64
- end
65
- end
66
- 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
 
@@ -62,25 +64,40 @@ describe Sitepress::SiteController, type: :controller do
62
64
  end
63
65
  end
64
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
+
65
82
  context "render cache" do
66
83
  context "cache_resources=true" do
67
- before { Sitepress.site.cache_resources = true }
84
+ before { site.cache_resources = true }
68
85
  it "enables cache" do
69
- expect(Sitepress.site.cache_resources).to be true
70
- expect(Sitepress.site).to receive(:cache_resources=).with(true)
71
- expect(Sitepress.site).to receive(:cache_resources=).with(true)
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)
72
89
  get_resource "/time"
73
- expect(Sitepress.site.cache_resources).to be true
90
+ expect(site.cache_resources).to be true
74
91
  end
75
92
  end
76
93
  context "cache_resources=false" do
77
- before { Sitepress.site.cache_resources = false }
94
+ before { site.cache_resources = false }
78
95
  it "enables cache" do
79
- expect(Sitepress.site.cache_resources).to be false
80
- expect(Sitepress.site).to receive(:cache_resources=).with(true)
81
- expect(Sitepress.site).to receive(:cache_resources=).with(false)
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)
82
99
  get_resource "/time"
83
- expect(Sitepress.site.cache_resources).to be false
100
+ expect(site.cache_resources).to be false
84
101
  end
85
102
  end
86
103
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sitepress-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0.beta5
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: 2020-10-22 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
14
  name: rspec-rails
@@ -45,7 +45,7 @@ dependencies:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '4.0'
48
- type: :runtime
48
+ type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
@@ -58,37 +58,83 @@ dependencies:
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.1
61
+ version: 2.0.0.beta5
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 1.0.1
69
- description:
68
+ version: 2.0.0.beta5
69
+ - !ruby/object:Gem::Dependency
70
+ name: railties
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '5.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '5.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: actionpack
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '5.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
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:
70
112
  email:
71
113
  - bradgessler@gmail.com
72
114
  executables: []
73
115
  extensions: []
74
116
  extra_rdoc_files: []
75
117
  files:
118
+ - ".gitignore"
76
119
  - README.md
77
120
  - Rakefile
78
- - app/controllers/concerns/sitepress/site_pages.rb
79
- - app/controllers/sitepress/site_controller.rb
80
- - app/helpers/sitepress/application_helper.rb
81
- - config/routes.rb
121
+ - bin/rails
82
122
  - lib/sitepress-rails.rb
123
+ - lib/sitepress/build_paths/directory_index_path.rb
124
+ - lib/sitepress/build_paths/index_path.rb
125
+ - lib/sitepress/build_paths/root_path.rb
126
+ - lib/sitepress/compiler.rb
83
127
  - lib/sitepress/engine.rb
84
- - lib/sitepress/extensions/index_request_path.rb
85
- - lib/sitepress/extensions/partials_remover.rb
86
- - lib/sitepress/extensions/rails_request_paths.rb
87
128
  - lib/sitepress/rails.rb
88
129
  - lib/sitepress/rails_configuration.rb
89
- - lib/sitepress/rails_configuration.rb.orig
130
+ - lib/sitepress/renderers/controller.rb
131
+ - lib/sitepress/renderers/server.rb
90
132
  - lib/sitepress/route_constraint.rb
91
133
  - lib/tasks/sitepress_tasks.rake
134
+ - rails/app/controllers/concerns/sitepress/site_pages.rb
135
+ - rails/app/controllers/sitepress/site_controller.rb
136
+ - rails/config/routes.rb
137
+ - sitepress-rails.gemspec
92
138
  - spec/dummy/Rakefile
93
139
  - spec/dummy/app/assets/config/manifest.js
94
140
  - spec/dummy/app/assets/javascripts/application.js
@@ -138,9 +184,6 @@ files:
138
184
  - spec/dummy/config/routes.rb
139
185
  - spec/dummy/config/secrets.yml
140
186
  - spec/dummy/config/spring.rb
141
- - spec/dummy/db/production.sqlite3
142
- - spec/dummy/db/test.sqlite3
143
- - spec/dummy/log/production.log
144
187
  - spec/dummy/log/test.log
145
188
  - spec/dummy/public/404.html
146
189
  - spec/dummy/public/422.html
@@ -149,9 +192,7 @@ files:
149
192
  - spec/dummy/public/apple-touch-icon.png
150
193
  - spec/dummy/public/favicon.ico
151
194
  - spec/sitepress-rails_spec.rb
152
- - spec/sitepress/extensions/index_request_path_spec.rb
153
- - spec/sitepress/extensions/partials_remover_spec.rb
154
- - spec/sitepress/extensions/rails_request_paths_spec.rb
195
+ - spec/sitepress/compiler_spec.rb
155
196
  - spec/sitepress/rails_configuration_spec.rb
156
197
  - spec/sitepress/route_constraint_spec.rb
157
198
  - spec/sitepress/routes_spec.rb
@@ -166,7 +207,7 @@ files:
166
207
  homepage: https://github.com/sitepress/sitepress
167
208
  licenses: []
168
209
  metadata: {}
169
- post_install_message:
210
+ post_install_message:
170
211
  rdoc_options: []
171
212
  require_paths:
172
213
  - lib
@@ -177,86 +218,81 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
218
  version: '0'
178
219
  required_rubygems_version: !ruby/object:Gem::Requirement
179
220
  requirements:
180
- - - ">="
221
+ - - ">"
181
222
  - !ruby/object:Gem::Version
182
- version: '0'
223
+ version: 1.3.1
183
224
  requirements: []
184
- rubygems_version: 3.1.2
185
- signing_key:
225
+ rubygems_version: 3.2.3
226
+ signing_key:
186
227
  specification_version: 4
187
228
  summary: Sitepress rails integration.
188
229
  test_files:
189
- - spec/spec_helper.rb
190
- - spec/sitepress-rails_spec.rb
191
- - spec/dummy/app/mailers/application_mailer.rb
230
+ - spec/dummy/Rakefile
231
+ - spec/dummy/app/assets/config/manifest.js
232
+ - spec/dummy/app/assets/javascripts/application.js
233
+ - spec/dummy/app/assets/javascripts/cable.js
234
+ - spec/dummy/app/assets/stylesheets/application.css
235
+ - spec/dummy/app/content/helpers/sample_helper.rb
192
236
  - spec/dummy/app/content/layouts/sitepress_test_layout.html.erb
193
- - spec/dummy/app/content/pages/time.html.erb
194
237
  - spec/dummy/app/content/pages/_stupid.html.erb
195
238
  - spec/dummy/app/content/pages/hi.html
196
239
  - spec/dummy/app/content/pages/partials/_really_stupid.html.erb
197
- - spec/dummy/app/content/helpers/sample_helper.rb
198
- - spec/dummy/app/jobs/application_job.rb
240
+ - spec/dummy/app/content/pages/time.html.erb
199
241
  - spec/dummy/app/controllers/application_controller.rb
200
242
  - spec/dummy/app/controllers/baseline_controller.rb
243
+ - spec/dummy/app/helpers/application_helper.rb
244
+ - spec/dummy/app/jobs/application_job.rb
245
+ - spec/dummy/app/mailers/application_mailer.rb
201
246
  - spec/dummy/app/views/baseline/show.html.erb
202
247
  - spec/dummy/app/views/layouts/application.html.erb
203
248
  - spec/dummy/app/views/layouts/mailer.html.erb
204
249
  - spec/dummy/app/views/layouts/mailer.text.erb
205
- - spec/dummy/app/assets/config/manifest.js
206
- - spec/dummy/app/assets/javascripts/cable.js
207
- - spec/dummy/app/assets/javascripts/application.js
208
- - spec/dummy/app/assets/stylesheets/application.css
209
- - spec/dummy/app/helpers/application_helper.rb
210
- - spec/dummy/bin/update
211
- - spec/dummy/bin/rake
212
- - spec/dummy/bin/setup
213
250
  - spec/dummy/bin/bundle
214
251
  - spec/dummy/bin/rails
215
- - spec/dummy/config/secrets.yml
216
- - spec/dummy/config/routes.rb
217
- - spec/dummy/config/locales/en.yml
252
+ - spec/dummy/bin/rake
253
+ - spec/dummy/bin/setup
254
+ - spec/dummy/bin/update
255
+ - spec/dummy/config/application.rb
256
+ - spec/dummy/config/boot.rb
218
257
  - spec/dummy/config/cable.yml
219
- - spec/dummy/config/environments/production.rb
258
+ - spec/dummy/config/database.yml
259
+ - spec/dummy/config/environment.rb
220
260
  - spec/dummy/config/environments/development.rb
261
+ - spec/dummy/config/environments/production.rb
221
262
  - spec/dummy/config/environments/test.rb
222
- - spec/dummy/config/spring.rb
223
- - spec/dummy/config/environment.rb
224
- - spec/dummy/config/application.rb
225
- - spec/dummy/config/puma.rb
226
- - spec/dummy/config/database.yml
227
- - spec/dummy/config/boot.rb
228
263
  - spec/dummy/config/initializers/application_controller_renderer.rb
264
+ - spec/dummy/config/initializers/assets.rb
229
265
  - spec/dummy/config/initializers/backtrace_silencers.rb
230
- - spec/dummy/config/initializers/null_logger.rb
231
- - spec/dummy/config/initializers/mime_types.rb
266
+ - spec/dummy/config/initializers/cookies_serializer.rb
232
267
  - spec/dummy/config/initializers/filter_parameter_logging.rb
268
+ - spec/dummy/config/initializers/inflections.rb
269
+ - spec/dummy/config/initializers/mime_types.rb
270
+ - spec/dummy/config/initializers/null_logger.rb
233
271
  - spec/dummy/config/initializers/session_store.rb
234
272
  - spec/dummy/config/initializers/wrap_parameters.rb
235
- - spec/dummy/config/initializers/assets.rb
236
- - spec/dummy/config/initializers/cookies_serializer.rb
237
- - spec/dummy/config/initializers/inflections.rb
273
+ - spec/dummy/config/locales/en.yml
274
+ - spec/dummy/config/puma.rb
275
+ - spec/dummy/config/routes.rb
276
+ - spec/dummy/config/secrets.yml
277
+ - spec/dummy/config/spring.rb
238
278
  - spec/dummy/config.ru
239
- - spec/dummy/Rakefile
240
- - spec/dummy/public/favicon.ico
279
+ - spec/dummy/log/test.log
280
+ - spec/dummy/public/404.html
241
281
  - spec/dummy/public/422.html
242
- - spec/dummy/public/apple-touch-icon.png
243
282
  - spec/dummy/public/500.html
244
- - spec/dummy/public/404.html
245
283
  - spec/dummy/public/apple-touch-icon-precomposed.png
246
- - spec/dummy/db/production.sqlite3
247
- - spec/dummy/db/test.sqlite3
248
- - spec/dummy/log/test.log
249
- - spec/dummy/log/production.log
284
+ - spec/dummy/public/apple-touch-icon.png
285
+ - spec/dummy/public/favicon.ico
286
+ - spec/sitepress/compiler_spec.rb
287
+ - spec/sitepress/rails_configuration_spec.rb
288
+ - spec/sitepress/route_constraint_spec.rb
289
+ - spec/sitepress/routes_spec.rb
290
+ - spec/sitepress/sitepress_site_controller_spec.rb
291
+ - spec/sitepress-rails_spec.rb
250
292
  - spec/sites/sample/pages/index.html.erb
251
- - spec/sites/sample/pages/test.html.haml
293
+ - spec/sites/sample/pages/nothing
252
294
  - spec/sites/sample/pages/sin_frontmatter.html.haml
253
295
  - spec/sites/sample/pages/super.duper/index.html
254
- - spec/sites/sample/pages/nothing
296
+ - spec/sites/sample/pages/test.html.haml
255
297
  - spec/sites/sample/pages/text.txt
256
- - spec/sitepress/extensions/rails_request_paths_spec.rb
257
- - spec/sitepress/extensions/partials_remover_spec.rb
258
- - spec/sitepress/extensions/index_request_path_spec.rb
259
- - spec/sitepress/sitepress_site_controller_spec.rb
260
- - spec/sitepress/rails_configuration_spec.rb
261
- - spec/sitepress/routes_spec.rb
262
- - spec/sitepress/route_constraint_spec.rb
298
+ - spec/spec_helper.rb
@@ -1,4 +0,0 @@
1
- module Sitepress
2
- module ApplicationHelper
3
- end
4
- end
@@ -1,24 +0,0 @@
1
- module Sitepress
2
- module Extensions
3
- # Removes files beginning with "_" from the resource collection.
4
- class IndexRequestPath
5
- # Name of the file that we'll want to change to a / path
6
- FILE_NAME = "index.html".freeze
7
-
8
- def initialize(file_name: FILE_NAME)
9
- @file_name = file_name
10
- end
11
-
12
- def process_resources(node)
13
- node.flatten.each do |r|
14
- asset = r.asset
15
- if asset.path.basename.to_s.start_with? @file_name
16
- request_path = Pathname.new("/").join(r.request_path).dirname.cleanpath.to_s
17
- node.formats.remove(r)
18
- node.add(path: request_path, asset: asset)
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end