feather_cms 0.0.2 → 0.0.3

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.
data/README.md CHANGED
@@ -10,13 +10,15 @@ Add the gem to your Gemfile
10
10
 
11
11
  Now, generate the pages
12
12
 
13
- $ rake db:migrate
14
-
15
13
  # Use file system to store pages( default: public/system/templates)
16
14
  $ rails g feather_cms about_us jobs team
17
15
 
18
16
  #Use db to store pages
19
17
  $ rails g feather_cms about_us jobs team --storage=db
18
+ or
19
+ $ rails g feather_cms about_us jobs team -t=db
20
+
21
+ $ rake db:migrate
20
22
 
21
23
  This generates a route, the controller action and the view for each page. Start the server and use the URL http://localhost:3000/feathers/pages to go to the admin panel.
22
24
 
@@ -28,24 +28,20 @@ module FeatherCms
28
28
  end
29
29
  end
30
30
 
31
- def template_store_path=(value)
32
- @@config[:template_store_path] = value
33
- end
34
-
35
- def template_store_path
36
- @@config[:template_store_path]
37
- end
38
-
39
- def template_extenstion=(value)
40
- @@config[:template_extenstion] = value
31
+ def layouts
32
+ @@config[:layouts]
41
33
  end
42
34
 
43
- def template_extenstion
44
- @@config[:template_extenstion]
45
- end
35
+ [:template_store_path, :template_extenstion, :authentication].each do |attr|
36
+ class_eval <<-METHOD, __FILE__, __LINE__ + 1
37
+ def #{attr}=(value)
38
+ @@config[:#{attr}] = value
39
+ end
46
40
 
47
- def layouts
48
- @@config[:layouts]
41
+ def #{attr}
42
+ @@config[:#{attr}]
43
+ end
44
+ METHOD
49
45
  end
50
46
 
51
47
  end
@@ -1,3 +1,3 @@
1
1
  module FeatherCms
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -5,6 +5,9 @@ Description:
5
5
  Example:
6
6
  rails generate feather_cms about_us jobs [--storage=file or db]
7
7
 
8
+ Options
9
+ --storage= file or db / -t= file or db
10
+
8
11
  This will create:
9
- - Add config file 'feather_cms.eb'
12
+ - Add config file 'feather_cms.rb'
10
13
  - Add Codemirror javascript and css
@@ -1,17 +1,10 @@
1
- class FeatherCmsGenerator < Rails::Generators::NamedBase
1
+ class FeatherCmsGenerator < Rails::Generators::Base
2
2
  source_root File.expand_path('../templates', __FILE__)
3
3
  argument :attributes, :type => :array, :banner => "about_us jobs"
4
- argument :name, :type => :string, :default => "feather_cms", :required => false
5
- class_option :storage, :aliases => '-s', :type => :string, :desc => 'db or file storage.'
4
+ class_option :storage, :aliases => '-t', :type => :string, :desc => 'db or file storage.'
6
5
 
7
6
  def create_cms_files
8
- @pages = attributes.collect(&:name)
9
-
10
- @storage = if ['file', 'db'].include?(options['storage'])
11
- options['storage']
12
- else
13
- 'file'
14
- end
7
+ @storage = ['file', 'db'].include?(options['storage']) ? options['storage'] : 'file'
15
8
 
16
9
  template 'initializer.rb', 'config/initializers/feather_cms.rb'
17
10
  template 'controller.rb', 'app/controllers/feathers_controller.rb'
@@ -25,17 +18,25 @@ class FeatherCmsGenerator < Rails::Generators::NamedBase
25
18
  end
26
19
 
27
20
  template 'migration.rb', "db/migrate/#{migration_number}_create_feather_pages.rb"
21
+ end
22
+
23
+ def add_routes
24
+ feather_route =
25
+ <<-ROUTES
28
26
 
29
- route %{scope '/feathers' do
27
+ scope '/feathers' do
30
28
  match 'page/:type/(:status)' => 'feathers#page', :as => :feather_page
31
29
  get 'pages' => 'feathers#index', :as => :feather_pages
32
30
  get 'preivew/:type/(:status)' => 'feathers#preivew', :as => 'feather_page_preview'
33
31
  end
34
- get 'page/:type' => 'feathers#published', :as => 'feather_published_page'}
32
+ get 'page/:type' => 'feathers#published', :as => 'feather_published_page'
33
+ ROUTES
34
+
35
+ route feather_route
35
36
  end
36
37
 
37
38
  def copy_view_files
38
- @pages = attributes.collect(&:name)
39
+ @pages = attributes
39
40
  base_path = File.join("app/views/feathers")
40
41
  #empty_directory base_path
41
42
  template 'layout.html.erb', 'app/views/layouts/feather_layout.html.erb'
@@ -58,6 +59,4 @@ class FeatherCmsGenerator < Rails::Generators::NamedBase
58
59
  end
59
60
  end
60
61
 
61
-
62
-
63
62
  end
@@ -1,5 +1,11 @@
1
1
  class FeathersController < ApplicationController
2
- http_basic_authenticate_with name: 'feather', password: 'password', except: :published
2
+
3
+ if FeatherCms::Config.authentication.kind_of?(Hash)
4
+ http_basic_authenticate_with FeatherCms::Config.authentication.merge(except: :published)
5
+ else
6
+ before_filter FeatherCms::Config.authentication.to_sym, except: :published
7
+ end
8
+
3
9
  before_filter :find_page, only: [:page, :preivew]
4
10
 
5
11
  layout 'feather_layout', except: [:preivew, :published]
@@ -1,5 +1,11 @@
1
1
  FeatherCms::Config.init do |c|
2
2
  c.template_store_path = 'public/system/templates'
3
3
  c.template_store_type = :<%= @storage %>
4
+
5
+ #Note: For basic authentication
6
+ c.authentication = {name: 'feather', password: 'password'}
7
+ #Note: For before filter
8
+ #c.authentication = :authenticate_user!
9
+
4
10
  #c.template_extenstion = 'html' #default : html
5
11
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feather_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-30 00:00:00.000000000 Z
12
+ date: 2012-05-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &2156032340 !ruby/object:Gem::Requirement
16
+ requirement: &2152283260 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2156032340
24
+ version_requirements: *2152283260
25
25
  description: Lightweight do it youself cms
26
26
  email:
27
27
  - jiren@joshsoftware.com