simplec 0.4.0 → 0.4.1
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/README.md +44 -17
- data/app/controllers/simplec/pages_controller.rb +9 -1
- data/app/models/simplec/admin/page.rb +10 -0
- data/app/models/simplec/page.rb +16 -10
- data/lib/simplec/page_action_helpers.rb +18 -2
- data/lib/simplec/version.rb +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97eb4b055eff958715400003bbf1a6296fa5c4af
|
4
|
+
data.tar.gz: ab0e7a5baa49e1389b8e925ec17063fb9683db84
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3a22c3c561611dee863c259c6aa358689a9ab9779efd8111e6d2c1348fd107b373757d7070d2589f0a1401c1d9495609afb093fc863550f3a21ad11413e12c3
|
7
|
+
data.tar.gz: 6b68170c0d3f3958e69f844dfbd90a8cc4926aafbe106b602600f2bf4667d146796678e2979d45d22f60d5782abc31d4eedab35f2740d5f7ecc27532d30439ca
|
data/README.md
CHANGED
@@ -1,29 +1,34 @@
|
|
1
1
|
# Simplec
|
2
2
|
|
3
|
-
### A CMS
|
3
|
+
### A CMS that stays out of the way.
|
4
4
|
|
5
|
-
This gem handles all of the rote parts of a CMS, but gets out of the way for
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
over the entire
|
5
|
+
This gem handles all of the rote parts of a CMS, but gets out of the way for everything else.
|
6
|
+
|
7
|
+
In Rails it is easy to build things from scratch, but it is a waste of resources
|
8
|
+
to build again and again. This library is an attempt to get all of the good
|
9
|
+
parts of a CMS without the baggage of a CMS that takes over the entire
|
10
|
+
ecosystem.
|
10
11
|
|
11
12
|
## Dependencies
|
12
|
-
- rails >= 5.0.5
|
13
13
|
|
14
|
-
-
|
14
|
+
- rails >= 5.0.5
|
15
15
|
|
16
|
-
|
17
|
-
and JSONB.
|
16
|
+
This probably can be lowered to older versions.
|
18
17
|
|
19
|
-
-
|
18
|
+
- pg >= 0.21.0; Postgres >= 9.5
|
20
19
|
|
21
|
-
|
22
|
-
|
20
|
+
We hate dependencies, but Postgres is just too good. We use it for search
|
21
|
+
and JSONB. If you think we could make this database agnostic, we are open
|
22
|
+
for contributions!
|
23
23
|
|
24
24
|
- dragonfly
|
25
25
|
|
26
|
-
We still hate dependencies, but this is a necessity and the best
|
26
|
+
We still hate dependencies, but this is a necessity and one of the best
|
27
|
+
options. We might change it out for ActiveStorage.
|
28
|
+
|
29
|
+
- imagemagick
|
30
|
+
|
31
|
+
For image processing.
|
27
32
|
|
28
33
|
## Recommended Dependencies
|
29
34
|
|
@@ -44,19 +49,23 @@ application.**
|
|
44
49
|
|
45
50
|
_Optionally, you can create a separate set of assets for only the admin via
|
46
51
|
standard Rails methods. Or you could not include them and deal with the
|
47
|
-
fallout. ;-)_
|
52
|
+
fallout. We are happy to accept pull requests! ;-)_
|
48
53
|
|
49
54
|
|
50
55
|
## Features
|
56
|
+
|
51
57
|
- Pages with Templates
|
52
58
|
|
53
59
|
- Subdomain support
|
54
60
|
|
55
|
-
- Use application models or assets in CMS pages
|
56
|
-
|
57
61
|
- Search (coming soon)
|
58
62
|
|
63
|
+
- Documents and Document Sets (local or S3/Google/etc)
|
64
|
+
|
65
|
+
- Use application models or assets in CMS pages
|
66
|
+
|
59
67
|
## Anti-Features
|
68
|
+
|
60
69
|
- User management
|
61
70
|
|
62
71
|
- Permissions
|
@@ -69,6 +78,9 @@ fallout. ;-)_
|
|
69
78
|
- simplec-blog: Don't always need or want a blog bundled in. (You might have
|
70
79
|
your own.)
|
71
80
|
|
81
|
+
- simplec-sections: Sections compose pages. Configure pages composed of Sections
|
82
|
+
rather than taking a page hook line and sinker.
|
83
|
+
|
72
84
|
- simplec-admin: Opinionated, prebuilt way of managing pages. Take it or leave
|
73
85
|
it. Or don't mount it and generate scaffold controllers and views for basic
|
74
86
|
functions.
|
@@ -238,6 +250,8 @@ used to generate uuid primary keys.
|
|
238
250
|
Installation varies per operating system. Image magic is used by dragonfly
|
239
251
|
for on the fly (then cached) image manipulation.
|
240
252
|
|
253
|
+
Note there is a known vulnerability, please update accordingly: https://imagetragick.com/
|
254
|
+
|
241
255
|
See this page for a good cheat sheet: http://markevans.github.io/dragonfly/imagemagick
|
242
256
|
|
243
257
|
## Roadmap
|
@@ -265,6 +279,12 @@ See this page for a good cheat sheet: http://markevans.github.io/dragonfly/image
|
|
265
279
|
|
266
280
|
- utilize thread local variable for found subdomain in #subdomain
|
267
281
|
|
282
|
+
- page previews?
|
283
|
+
|
284
|
+
- configure uuid or integer pk/fk
|
285
|
+
|
286
|
+
- note about migration versions on old rails installs
|
287
|
+
|
268
288
|
1. Sitemap
|
269
289
|
|
270
290
|
1. Installer `rails generater simplec:install`
|
@@ -279,6 +299,8 @@ See this page for a good cheat sheet: http://markevans.github.io/dragonfly/image
|
|
279
299
|
|
280
300
|
1. Remove as many dependencies as possible.
|
281
301
|
|
302
|
+
1. github-markdown for markup?
|
303
|
+
|
282
304
|
## Contributing
|
283
305
|
1. Use it and file create issues. Somethings are core, other things will be
|
284
306
|
relegated to 3rd party extensions.
|
@@ -304,6 +326,11 @@ See this page for a good cheat sheet: http://markevans.github.io/dragonfly/image
|
|
304
326
|
|
305
327
|
rake db:migrate
|
306
328
|
|
329
|
+
4. Run the documentation server
|
330
|
+
|
331
|
+
gem install yard
|
332
|
+
yard server -r --no-cache --no-save --verbose --debug --backtrace
|
333
|
+
|
307
334
|
|
308
335
|
## Contributors
|
309
336
|
|
@@ -3,10 +3,18 @@ require_dependency "simplec/page_action_helpers"
|
|
3
3
|
|
4
4
|
module Simplec
|
5
5
|
class PagesController < ApplicationController
|
6
|
+
include Simplec::ActionController::Extensions
|
6
7
|
include Simplec::PageActionHelpers
|
7
8
|
|
8
9
|
def show
|
9
|
-
|
10
|
+
begin
|
11
|
+
render_path params[:path] || ''
|
12
|
+
rescue ActiveRecord::SubclassNotFound => e
|
13
|
+
# TODO add proc config for error notification, airbrake, etc
|
14
|
+
#
|
15
|
+
Rails.logger.info e
|
16
|
+
render status: 404
|
17
|
+
end
|
10
18
|
end
|
11
19
|
|
12
20
|
end
|
data/app/models/simplec/page.rb
CHANGED
@@ -4,20 +4,26 @@ module Simplec
|
|
4
4
|
#
|
5
5
|
# == Model and Template Relationship.
|
6
6
|
#
|
7
|
-
#
|
8
|
-
# app/models/page/NAME.rb
|
7
|
+
# This is a para with `code`. WTF
|
9
8
|
#
|
10
|
-
# Each page has
|
11
|
-
# app/views/pages/_NAME.html.erb
|
9
|
+
# Each page has:
|
12
10
|
#
|
13
|
-
#
|
14
|
-
# example:
|
11
|
+
# - a class located in: `app/models/page/NAME.rb`
|
15
12
|
#
|
16
|
-
#
|
17
|
-
# field :h1
|
18
|
-
# end
|
13
|
+
# - a partial template in: +app/views/pages/_NAME.html.erb+
|
19
14
|
#
|
20
|
-
#
|
15
|
+
# Where NAME is the demodulized, snake-case name of the Page Subclass.
|
16
|
+
#
|
17
|
+
# @example Class and template
|
18
|
+
#
|
19
|
+
# # app/models/page/home.rb
|
20
|
+
# class Page::Home < Page
|
21
|
+
# field :h1
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# <!-- app/views/pages/_home.html.erb -->
|
25
|
+
# <h1>My Application</h1>
|
26
|
+
# <h2><%= @page.tagline %></h2>
|
21
27
|
#
|
22
28
|
# @!visibility public
|
23
29
|
class Page < ApplicationRecord
|
@@ -8,11 +8,26 @@ module Simplec
|
|
8
8
|
|
9
9
|
private
|
10
10
|
|
11
|
-
|
11
|
+
# Render the template and layout for a path.
|
12
|
+
#
|
13
|
+
# @param path [String] a path without a leading /
|
14
|
+
# @param options [Hash] passed through to underlying `render`
|
15
|
+
#
|
16
|
+
# @!visibility public
|
17
|
+
def render_path(path, options={})
|
12
18
|
@page = page(path)
|
13
|
-
render
|
19
|
+
render options.merge(
|
20
|
+
template: 'simplec/pages/show',
|
21
|
+
layout: layout(@page)
|
22
|
+
)
|
14
23
|
end
|
15
24
|
|
25
|
+
# Determine the layout for a page.
|
26
|
+
#
|
27
|
+
# @param page [Simplec::Page]
|
28
|
+
#
|
29
|
+
# @return [String] layout name
|
30
|
+
# @!visibility public
|
16
31
|
def layout(page)
|
17
32
|
# TODO allow config for public
|
18
33
|
[page.layout, page.subdomain.default_layout, 'public'].
|
@@ -21,6 +36,7 @@ module Simplec
|
|
21
36
|
|
22
37
|
end
|
23
38
|
|
39
|
+
# @!visibility private
|
24
40
|
def self.included(receiver)
|
25
41
|
receiver.extend ClassMethods
|
26
42
|
receiver.send :include, InstanceMethods
|
data/lib/simplec/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simplec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: redcarpet
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
description: A CMS that doesn't take over an application.
|
98
112
|
email:
|
99
113
|
- matt@nearapogee.com
|
@@ -120,6 +134,7 @@ files:
|
|
120
134
|
- app/helpers/simplec/application_helper.rb
|
121
135
|
- app/jobs/simplec/application_job.rb
|
122
136
|
- app/mailers/simplec/application_mailer.rb
|
137
|
+
- app/models/simplec/admin/page.rb
|
123
138
|
- app/models/simplec/application_record.rb
|
124
139
|
- app/models/simplec/document.rb
|
125
140
|
- app/models/simplec/document_set.rb
|