honey-cms 0.2.4 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,4 +2,8 @@ class CMS::PagesController < ApplicationController
2
2
  def show
3
3
  @page = params[:page]
4
4
  end
5
+
6
+ def static_page
7
+ render "pages/#{params[:page]}"
8
+ end
5
9
  end
data/lib/cms.rb CHANGED
@@ -8,4 +8,5 @@ module CMS
8
8
  autoload :Uploader, 'cms/uploader'
9
9
  autoload :ViewTags, 'cms/view_tags'
10
10
  autoload :FormBuilder, 'cms/form_builder'
11
+ autoload :Page, 'cms/page'
11
12
  end
@@ -39,7 +39,9 @@ module CMS::Configuration
39
39
  end
40
40
 
41
41
  def pages
42
- data['pages'].keys
42
+ data['pages'].map do |route, page_config|
43
+ CMS::Page.new route.dup, HashWithIndifferentAccess.new(page_config)
44
+ end
43
45
  end
44
46
 
45
47
  private
data/lib/cms/page.rb ADDED
@@ -0,0 +1,16 @@
1
+ class CMS::Page
2
+ attr_reader :route, :options
3
+
4
+ def initialize route, options
5
+ @options = options
6
+ @route = (options[:route] || route).dup
7
+ end
8
+
9
+ def action
10
+ @action ||= (options[:action] || route).dup
11
+ end
12
+
13
+ def editable?
14
+ !options[:static]
15
+ end
16
+ end
data/lib/cms/routes.rb CHANGED
@@ -12,7 +12,11 @@ class CMS::Routes < SimpleDelegator
12
12
  end
13
13
 
14
14
  CMS::Configuration.pages.each do |page|
15
- get page => "cms/pages#show", page: page.dup, as: "cms_#{page}"
15
+ if page.editable?
16
+ get page.route => 'cms/pages#show', page: page.action, as: "cms_#{page.action}"
17
+ else
18
+ get page.route => 'cms/pages#static_page', page: page.action, as: "cms_#{page.action}"
19
+ end
16
20
  end
17
21
  end
18
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honey-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -33,6 +33,7 @@ files:
33
33
  - lib/cms/helper.rb
34
34
  - lib/cms/inflections.rb
35
35
  - lib/cms/orderable.rb
36
+ - lib/cms/page.rb
36
37
  - lib/cms/routes.rb
37
38
  - lib/cms/type.rb
38
39
  - lib/cms/uploader.rb