sitepress-rails 2.0.0.beta2 → 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.
- checksums.yaml +4 -4
- data/lib/sitepress/engine.rb +3 -0
- data/spec/dummy/log/test.log +1 -0
- metadata +4 -7
- data/app/controllers/concerns/sitepress/site_pages.rb +0 -138
- data/app/controllers/sitepress/site_controller.rb +0 -7
- data/config/routes.rb +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 308a11e4d4472d626fb4f81581085c06e6ae98b2334f0540c314fd000be6a6c4
|
4
|
+
data.tar.gz: 5fcea186abadb31c9ca5d33b392dc6b5b197c7514421f5a07857d253ef34d051
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1fa2ccd305669f776a95e9723fa4aede892ecfce34801481761278da67eeccaf12e056e07b256a81dbf2d253d09a6810f1bb906b09c54a79723a3e24de56967
|
7
|
+
data.tar.gz: 1744e9291b6a268a196baaf57a2f208ddbb59b5ce62839b41bda20ee87debcacd7fa30d224a434a6c55878c7fa68ad74e1845cd21f3fbeb05bbc71937847e454
|
data/lib/sitepress/engine.rb
CHANGED
@@ -2,6 +2,9 @@ require "rails/engine"
|
|
2
2
|
|
3
3
|
module Sitepress
|
4
4
|
class Engine < ::Rails::Engine
|
5
|
+
# Set the root of the engine to the gems rails directory.
|
6
|
+
config.root = File.expand_path("../../rails", __dir__)
|
7
|
+
|
5
8
|
# Set the path for the site configuration file.
|
6
9
|
paths.add "config/site.rb", with: [
|
7
10
|
File.expand_path("./config/site.rb"), # When Sitepress is launched via `sitepress server`.
|
data/spec/dummy/log/test.log
CHANGED
@@ -3048,3 +3048,4 @@ WARNING: Sitepress could not enable Sprockets because it could not find a manife
|
|
3048
3048
|
WARNING: Sitepress could not enable Sprockets because it could not find a manifest file at "/Users/bradgessler/Projects/sitepress/gems/sitepress-rails/spec/dummy/app/content/assets/config/manifest.js".
|
3049
3049
|
WARNING: Sitepress could not enable Sprockets because it could not find a manifest file at "/Users/bradgessler/Projects/sitepress/gems/sitepress-rails/spec/dummy/app/content/assets/config/manifest.js".
|
3050
3050
|
WARNING: Sitepress could not enable Sprockets because it could not find a manifest file at "/Users/bradgessler/Projects/sitepress/gems/sitepress-rails/spec/dummy/app/content/assets/config/manifest.js".
|
3051
|
+
WARNING: Sitepress could not enable Sprockets because it could not find a manifest file at "/Users/bradgessler/Projects/sitepress/gems/sitepress-rails/spec/dummy/app/content/assets/config/manifest.js".
|
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: 2.0.0.
|
4
|
+
version: 2.0.0.beta3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brad Gessler
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-02-
|
11
|
+
date: 2021-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec-rails
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.0.0.
|
61
|
+
version: 2.0.0.beta3
|
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: 2.0.0.
|
68
|
+
version: 2.0.0.beta3
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: railties
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,9 +117,6 @@ extra_rdoc_files: []
|
|
117
117
|
files:
|
118
118
|
- README.md
|
119
119
|
- Rakefile
|
120
|
-
- app/controllers/concerns/sitepress/site_pages.rb
|
121
|
-
- app/controllers/sitepress/site_controller.rb
|
122
|
-
- config/routes.rb
|
123
120
|
- lib/sitepress-rails.rb
|
124
121
|
- lib/sitepress/build_paths/directory_index_path.rb
|
125
122
|
- lib/sitepress/build_paths/index_path.rb
|
@@ -1,138 +0,0 @@
|
|
1
|
-
module Sitepress
|
2
|
-
# Serves up Sitepress site pages in a rails application. This is mixed into the
|
3
|
-
# Sitepress::SiteController, but may be included into other controllers for static
|
4
|
-
# page behavior.
|
5
|
-
module SitePages
|
6
|
-
# Rails 5 requires a format to be given to the private layout method
|
7
|
-
# to return the path to the layout.
|
8
|
-
DEFAULT_PAGE_RAILS_FORMATS = [:html].freeze
|
9
|
-
|
10
|
-
# Default root path of resources.
|
11
|
-
ROOT_RESOURCE_PATH = "".freeze
|
12
|
-
|
13
|
-
extend ActiveSupport::Concern
|
14
|
-
|
15
|
-
included do
|
16
|
-
rescue_from Sitepress::PageNotFoundError, with: :page_not_found
|
17
|
-
helper Sitepress::Engine.helpers
|
18
|
-
helper_method :current_page, :site
|
19
|
-
before_action :append_relative_partial_path, only: :show
|
20
|
-
end
|
21
|
-
|
22
|
-
def show
|
23
|
-
render_page current_page
|
24
|
-
end
|
25
|
-
|
26
|
-
protected
|
27
|
-
def render_page(page)
|
28
|
-
if page.renderable?
|
29
|
-
render_text_resource page
|
30
|
-
else
|
31
|
-
send_binary_resource page
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def current_page
|
36
|
-
@current_page ||= find_resource
|
37
|
-
end
|
38
|
-
|
39
|
-
def site
|
40
|
-
Sitepress.site
|
41
|
-
end
|
42
|
-
|
43
|
-
def page_not_found(e)
|
44
|
-
raise ActionController::RoutingError, e.message
|
45
|
-
end
|
46
|
-
|
47
|
-
private
|
48
|
-
def append_relative_partial_path
|
49
|
-
append_view_path current_page.asset.path.dirname
|
50
|
-
end
|
51
|
-
|
52
|
-
def render_text_resource(resource)
|
53
|
-
with_sitepress_render_cache do
|
54
|
-
render inline: resource.body,
|
55
|
-
type: resource.asset.template_extensions.last,
|
56
|
-
layout: resource.data.fetch("layout", controller_layout),
|
57
|
-
content_type: resource.mime_type.to_s
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def send_binary_resource(resource)
|
62
|
-
send_file resource.asset.path,
|
63
|
-
disposition: :inline,
|
64
|
-
type: resource.mime_type.to_s
|
65
|
-
end
|
66
|
-
|
67
|
-
# Sitepress::PageNotFoundError is handled in the default Sitepress::SiteController
|
68
|
-
# with an execption that Rails can use to display a 404 error.
|
69
|
-
def get(path)
|
70
|
-
resource = site.resources.get(path)
|
71
|
-
if resource.nil?
|
72
|
-
# TODO: Display error in context of Reources class root.
|
73
|
-
raise Sitepress::PageNotFoundError, "No such page: #{path}"
|
74
|
-
else
|
75
|
-
resource
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
# Default finder of the resource for the current controller context. If the :resource_path
|
80
|
-
# isn't present, then its probably the root path so grab that.
|
81
|
-
def find_resource
|
82
|
-
get params.fetch(:resource_path, ROOT_RESOURCE_PATH)
|
83
|
-
end
|
84
|
-
|
85
|
-
# When development environments disable the cache, we still want to turn it
|
86
|
-
# on during rendering so that view doesn't rebuild the site on each call.
|
87
|
-
def with_sitepress_render_cache(&block)
|
88
|
-
cache_resources = site.cache_resources
|
89
|
-
begin
|
90
|
-
site.cache_resources = true
|
91
|
-
yield
|
92
|
-
ensure
|
93
|
-
site.cache_resources = cache_resources
|
94
|
-
site.clear_resources_cache unless site.cache_resources
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
# Returns the current layout for the inline Sitepress renderer. This is
|
99
|
-
# exposed via some really convoluted private methods inside of the various
|
100
|
-
# versions of Rails, so I try my best to hack out the path to the layout below.
|
101
|
-
def controller_layout
|
102
|
-
private_layout_method = self.method(:_layout)
|
103
|
-
layout =
|
104
|
-
if Rails.version >= "6"
|
105
|
-
private_layout_method.call lookup_context, current_page_rails_formats
|
106
|
-
elsif Rails.version >= "5"
|
107
|
-
private_layout_method.call current_page_rails_formats
|
108
|
-
else
|
109
|
-
private_layout_method.call
|
110
|
-
end
|
111
|
-
|
112
|
-
if layout.instance_of? String # Rails 4 and 5 return a string from above.
|
113
|
-
layout
|
114
|
-
elsif layout # Rails 3 and older return an object that gives us a file name
|
115
|
-
File.basename(layout.identifier).split('.').first
|
116
|
-
else
|
117
|
-
# If none of the conditions are met, then no layout was
|
118
|
-
# specified, so nil is returned.
|
119
|
-
nil
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
# Rails 5 requires an extension, like `:html`, to resolve a template. This
|
124
|
-
# method returns the intersection of the formats Rails supports from Mime::Types
|
125
|
-
# and the current page's node formats. If nothing intersects, HTML is returned
|
126
|
-
# as a default.
|
127
|
-
def current_page_rails_formats
|
128
|
-
extensions = current_page.node.formats.extensions
|
129
|
-
supported_extensions = extensions & Mime::EXTENSION_LOOKUP.keys
|
130
|
-
|
131
|
-
if supported_extensions.empty?
|
132
|
-
DEFAULT_PAGE_RAILS_FORMATS
|
133
|
-
else
|
134
|
-
supported_extensions.map?(&:to_sym)
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|
data/config/routes.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
Sitepress.configuration.parent_engine.routes.draw do
|
2
|
-
if Sitepress.configuration.routes
|
3
|
-
constraints Sitepress::RouteConstraint.new do
|
4
|
-
get "*resource_path", controller: "sitepress/site", action: "show", as: :page, format: false
|
5
|
-
if has_named_route? :root
|
6
|
-
Rails.logger.warn 'Sitepress tried to configure `root to: "sitepress/site#show"`, but a root route was already defined.'
|
7
|
-
else
|
8
|
-
root to: "sitepress/site#show"
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|