aboutsummaryrefslogtreecommitdiff
path: root/src/guff/page-features.cr
diff options
context:
space:
mode:
authorPaul Duncan <pabs@pablotron.org>2016-03-13 19:09:09 -0400
committerPaul Duncan <pabs@pablotron.org>2016-03-13 19:09:09 -0400
commitefdf5cae3d465d853dd7593aa75ae7101c5b8d39 (patch)
tree4af049794f05c0d0e4d3b1f66cb92096f5bf6978 /src/guff/page-features.cr
parent88b71756106ba51022c38ab45b6c7d207339dd1f (diff)
downloadold-guff-efdf5cae3d465d853dd7593aa75ae7101c5b8d39.tar.bz2
old-guff-efdf5cae3d465d853dd7593aa75ae7101c5b8d39.zip
add page-features and populate stuff
Diffstat (limited to 'src/guff/page-features.cr')
-rw-r--r--src/guff/page-features.cr71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/guff/page-features.cr b/src/guff/page-features.cr
new file mode 100644
index 0000000..887197e
--- /dev/null
+++ b/src/guff/page-features.cr
@@ -0,0 +1,71 @@
+
+module Guff::PageFeatures
+ FEATURES = {
+ "jquery": {
+ scripts: %w{
+ /guff-stuff/jquery-2.2.1.min.js
+ },
+ },
+
+ "luigi-template": {
+ scripts: %w{
+ /guff-stuff/luigi-template-0.4.1.min.js
+ },
+ },
+
+ "font-awesome": {
+ styles: %w{
+ /guff-stuff/font-awesome-4.5.0/css/font-awesome.min.css
+ },
+ },
+
+ "bootstrap": {
+ deps: %w{jquery},
+
+ styles: %w{
+ /guff-stuff/bootstrap-3.3.6/css/bootstrap.min.css
+ /guff-stuff/bootstrap-3.3.6/css/bootstrap-theme.min.css
+ },
+
+ scripts: %w{
+ /guff-stuff/bootstrap-3.3.6/js/bootstrap.min.js
+ },
+
+ # TODO
+ metas: [] of Hash(String, String),
+ },
+ }
+
+ def self.add(key : String, page)
+ raise "unknown feature: #{key}" unless FEATURES.has_key?(key)
+ f = FEATURES[key]
+
+ if f.has_key?(:deps)
+ # add dependencies
+ (f[:deps] as Array(String)).each do |dep|
+ page.add_feature(dep)
+ end
+ end
+
+ if f.has_key?(:scripts)
+ # add scripts
+ (f[:scripts] as Array(String)).each do |path|
+ page.scripts << path
+ end
+ end
+
+ if f.has_key?(:styles)
+ # add styles
+ (f[:styles] as Array(String)).each do |path|
+ page.styles << path
+ end
+ end
+
+ if f.has_key?(:metas)
+ # add metas
+ (f[:metas] as Array(Hash(String, String))).each do |meta|
+ page.metas << meta
+ end
+ end
+ end
+end