rich_cms 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/CHANGELOG +5 -0
- data/MIT-LICENSE +20 -0
- data/README.textile +158 -0
- data/Rakefile +43 -0
- data/VERSION +1 -0
- data/init.rb +1 -0
- data/install.rb +1 -0
- data/lib/app/controllers/rich/cms_controller.rb +56 -0
- data/lib/app/views/rich/cms/_bar.html.erb +4 -0
- data/lib/app/views/rich/cms/_config.html.erb +5 -0
- data/lib/app/views/rich/cms/bar/_menu.html.erb +16 -0
- data/lib/app/views/rich/cms/bar/_panel.html.erb +3 -0
- data/lib/app/views/rich/cms/bar/panel/_edit.html.erb +10 -0
- data/lib/app/views/rich/cms/bar/panel/_login.html.erb +11 -0
- data/lib/app/views/rich_cms.html.erb +5 -0
- data/lib/assets/jzip/jquery/core.js +168 -0
- data/lib/assets/jzip/jquery/extensions/ajaxify.js +26 -0
- data/lib/assets/jzip/jquery/extensions/modules.js +12 -0
- data/lib/assets/jzip/jquery/extensions/object.js +17 -0
- data/lib/assets/jzip/rich/cms/editor.js +118 -0
- data/lib/assets/jzip/rich/cms/login.js +12 -0
- data/lib/assets/jzip/rich/cms.js +2 -0
- data/lib/assets/jzip/rich.js +28 -0
- data/lib/assets/jzip/rich_cms.jz +10 -0
- data/lib/assets/sass/_bar.sass +45 -0
- data/lib/assets/sass/_editables.sass +6 -0
- data/lib/assets/sass/_mixins.sass +52 -0
- data/lib/assets/sass/rich_cms.sass +4 -0
- data/lib/config/routes.rb +17 -0
- data/lib/rich/cms/actionpack/action_controller/base.rb +61 -0
- data/lib/rich/cms/actionpack/action_view/base.rb +15 -0
- data/lib/rich/cms/actionpack.rb +3 -0
- data/lib/rich/cms/content/group.rb +63 -0
- data/lib/rich/cms/content/item.rb +70 -0
- data/lib/rich/cms/engine.rb +76 -0
- data/lib/rich_cms.rb +7 -0
- data/rails/init.rb +1 -0
- data/rich_cms.gemspec +92 -0
- data/tasks/rich_cms_tasks.rake +4 -0
- data/test/engine_test.rb +15 -0
- data/test/test_helper.rb +3 -0
- data/uninstall.rb +1 -0
- metadata +151 -0
@@ -0,0 +1,52 @@
|
|
1
|
+
|
2
|
+
=relative
|
3
|
+
position: relative
|
4
|
+
|
5
|
+
=absolute
|
6
|
+
position: absolute
|
7
|
+
|
8
|
+
=fixed
|
9
|
+
position: fixed
|
10
|
+
|
11
|
+
=left
|
12
|
+
float: left
|
13
|
+
|
14
|
+
=right
|
15
|
+
float: right
|
16
|
+
|
17
|
+
=clear
|
18
|
+
clear: both
|
19
|
+
|
20
|
+
=hidden
|
21
|
+
display: none
|
22
|
+
|
23
|
+
=block
|
24
|
+
display: block
|
25
|
+
|
26
|
+
=inline
|
27
|
+
display: inline
|
28
|
+
|
29
|
+
=inline_block
|
30
|
+
display: -moz-inline-block
|
31
|
+
display: inline-block
|
32
|
+
zoom: 1
|
33
|
+
*display: inline
|
34
|
+
|
35
|
+
=clearfix
|
36
|
+
*display: inline-block
|
37
|
+
&:after
|
38
|
+
content: " "
|
39
|
+
height: 0
|
40
|
+
+block
|
41
|
+
clear: both
|
42
|
+
visibility: hidden
|
43
|
+
|
44
|
+
=indent
|
45
|
+
+inline_block
|
46
|
+
text-indent: -9999px
|
47
|
+
|
48
|
+
=opacity(!opacity)
|
49
|
+
filter: alpha(opacity= !opacity * 100)
|
50
|
+
-moz-opacity = !opacity
|
51
|
+
-khtml-opacity = !opacity
|
52
|
+
opacity = !opacity
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Redefine clear! method to do nothing (usually it erases the routes)
|
2
|
+
class << ActionController::Routing::Routes;self;end.class_eval do
|
3
|
+
define_method :clear!, lambda {}
|
4
|
+
end
|
5
|
+
|
6
|
+
ActionController::Routing::Routes.draw do |map|
|
7
|
+
|
8
|
+
map.namespace :rich, :path_prefix => "" do |rich|
|
9
|
+
|
10
|
+
rich.cms_root "cms", :controller => "cms", :action => "show"
|
11
|
+
%w(hide login logout update).each do |action|
|
12
|
+
rich.send "cms_#{action}", "cms/#{action}", :controller => "cms", :action => action
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
|
2
|
+
module ActionController
|
3
|
+
class Base
|
4
|
+
|
5
|
+
around_filter :assign_current_controller
|
6
|
+
helper_method :current_rich_cms_admin, :current_rich_cms_admin_name, :rich_cms_authenticated_class, :rich_cms_authentication_inputs
|
7
|
+
|
8
|
+
def assign_current_controller
|
9
|
+
::Rich::Cms::Engine.current_controller = self
|
10
|
+
yield
|
11
|
+
ensure
|
12
|
+
::Rich::Cms::Engine.current_controller = nil
|
13
|
+
end
|
14
|
+
|
15
|
+
def require_current_rich_cms_admin
|
16
|
+
unless current_rich_cms_admin
|
17
|
+
redirect_to root_url
|
18
|
+
return false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def current_rich_cms_admin
|
23
|
+
case rich_cms_auth.logic
|
24
|
+
when :authlogic
|
25
|
+
return @current_rich_cms_admin if defined?(@current_rich_cms_admin)
|
26
|
+
@current_rich_cms_admin_session ||= rich_cms_authenticated_class.find
|
27
|
+
@current_rich_cms_admin = @current_rich_cms_admin_session.try rich_cms_auth.specs[:class_name].demodulize.underscore
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def current_rich_cms_admin_name
|
32
|
+
current_rich_cms_admin[rich_cms_auth.specs[:identifier]] if current_rich_cms_admin
|
33
|
+
end
|
34
|
+
|
35
|
+
def rich_cms_auth
|
36
|
+
::Rich::Cms::Engine.authentication
|
37
|
+
end
|
38
|
+
|
39
|
+
def rich_cms_authenticated_class
|
40
|
+
case rich_cms_auth.logic
|
41
|
+
when :authlogic
|
42
|
+
"#{rich_cms_auth.specs[:class_name]}Session".constantize
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def rich_cms_authentication_inputs
|
47
|
+
case rich_cms_auth.logic
|
48
|
+
when :authlogic
|
49
|
+
rich_cms_auth.specs[:inputs] || [:email, :password]
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
view_path = File.join File.dirname(__FILE__), "..", "..", "..", "..", "app", "views"
|
54
|
+
if respond_to? :append_view_path
|
55
|
+
self.append_view_path view_path
|
56
|
+
elsif respond_to? :view_paths
|
57
|
+
self.view_paths << view_path
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
|
2
|
+
module ActionView
|
3
|
+
class Base
|
4
|
+
|
5
|
+
def rich_cms
|
6
|
+
render :file => File.join(File.dirname(__FILE__), "..", "..", "..", "..", "app", "views", "rich_cms.html.erb") if session[:rich_cms].try(:fetch, :display, nil)
|
7
|
+
end
|
8
|
+
|
9
|
+
def link(name, options = nil)
|
10
|
+
options = {:class => options || name.underscore} unless options.is_a?(Hash)
|
11
|
+
link_to name, "#", options
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
|
2
|
+
module Rich
|
3
|
+
module Cms
|
4
|
+
module Content
|
5
|
+
|
6
|
+
class Group < Struct.new(:selector, :tag, :class_name, :key, :value, :add, :before_edit, :after_update)
|
7
|
+
|
8
|
+
def self.build(selector, specs)
|
9
|
+
self.new *{:selector => selector, :key => :key, :value => :value}.merge(specs).stringify_keys.values_at(*self.members)
|
10
|
+
end
|
11
|
+
|
12
|
+
def fetch(ref, as_content_item = true)
|
13
|
+
reference = ref.is_a?(Hash) || (identifiers.size != 1) ? ref : {identifiers.first => ref}
|
14
|
+
|
15
|
+
unless valid_reference?(reference)
|
16
|
+
raise ArgumentError, "Invalid reference #{reference.inspect} (#{reference.values_at(*identifiers).inspect}) passed for #{identifiers.inspect}"
|
17
|
+
end
|
18
|
+
|
19
|
+
object = self.class_name.constantize.send :"find_or_initialize_by_#{identifiers.join "_and_"}", *reference.values_at(*identifiers)
|
20
|
+
|
21
|
+
as_content_item ? Cms::Content::Item.new(self, object) : object
|
22
|
+
end
|
23
|
+
|
24
|
+
def keys
|
25
|
+
(identifiers + [self.add || []].flatten.collect(&:to_s)).sort
|
26
|
+
end
|
27
|
+
|
28
|
+
def identifiers
|
29
|
+
@identifiers ||= [self.key].flatten.collect(&:to_s).sort
|
30
|
+
end
|
31
|
+
|
32
|
+
def to_javascript_hash
|
33
|
+
"#{self.selector.inspect}: {#{
|
34
|
+
members.collect do |k|
|
35
|
+
if v = self[k]
|
36
|
+
case k
|
37
|
+
when "key"
|
38
|
+
"keys: [#{
|
39
|
+
[v].flatten.collect do |key|
|
40
|
+
"data-#{key}".inspect
|
41
|
+
end.join ", "
|
42
|
+
}]"
|
43
|
+
when "value"
|
44
|
+
"#{k}: #{"data-#{v}".inspect}"
|
45
|
+
when "before_edit", "after_update"
|
46
|
+
"#{k.camelize :lower}: #{v}"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end.compact.join(", ")
|
50
|
+
}}"
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def valid_reference?(reference)
|
56
|
+
reference.is_a?(Hash) && (identifiers - reference.stringify_keys.keys).empty? && reference.values_at(*identifiers).compact!.nil?
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
|
2
|
+
module Rich
|
3
|
+
module Cms
|
4
|
+
module Content
|
5
|
+
|
6
|
+
class Item
|
7
|
+
|
8
|
+
def initialize(*args)
|
9
|
+
if args.size == 1 && args.first.is_a?(Hash)
|
10
|
+
hash = args.first
|
11
|
+
elsif args.size == 2
|
12
|
+
array = args
|
13
|
+
else
|
14
|
+
raise ArgumentError, "Invalid arguments #{args.inspect} passed for #{self.class.name}"
|
15
|
+
end
|
16
|
+
|
17
|
+
if hash && (selector = hash.stringify_keys["__selector__"])
|
18
|
+
@group = Engine.editable_content[selector]
|
19
|
+
@object = @group.fetch hash, false
|
20
|
+
|
21
|
+
attributes, params = hash.partition{|k, v| @object.attribute_names.include? k.to_s}
|
22
|
+
|
23
|
+
@object.attributes = Hash[*attributes.flatten]
|
24
|
+
@params = HashWithIndifferentAccess[*params.flatten]
|
25
|
+
|
26
|
+
elsif array && array.first.is_a?(Group) && array.last.is_a?(::ActiveRecord::Base)
|
27
|
+
@group, @object = *array
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def save
|
32
|
+
@object.save
|
33
|
+
|
34
|
+
if @object.respond_to? :to_rich_cms_response
|
35
|
+
hash = @object.to_rich_cms_response @params
|
36
|
+
else
|
37
|
+
keys = @group.keys << @group.value.to_s
|
38
|
+
hash = @object.attributes.reject{|k, v| !keys.include?(k.to_s)}
|
39
|
+
end
|
40
|
+
|
41
|
+
selector = @group.selector
|
42
|
+
identifier = @group.identifiers.inject({}){|h, k| h[k] = @object.send(k); h}
|
43
|
+
|
44
|
+
hash.merge({:__selector__ => selector, :__identifier__ => identifier})
|
45
|
+
end
|
46
|
+
|
47
|
+
def to_tag
|
48
|
+
default = @object.attributes.values_at(*@group.identifiers) if @object.new_record?
|
49
|
+
|
50
|
+
return @object.send(@group.value) unless Engine.can_render_metadata?
|
51
|
+
|
52
|
+
keys = @group.keys << @group.value.to_s
|
53
|
+
data = @object.attributes.reject{|k, v| !keys.include?(k.to_s)}
|
54
|
+
|
55
|
+
tag = @group.tag || :span
|
56
|
+
attrs = data.collect{|k, v| "data-#{k}=\"#{::ERB::Util.html_escape v}\""}.join " "
|
57
|
+
value = @object.new_record? ? "< #{default.size == 1 ? default.first : default.inspect} >" : @object.send(@group.value)
|
58
|
+
|
59
|
+
if class_name = @group.selector.match(/^\.\w+$/)
|
60
|
+
attrs = "class=\"#{class_name.to_s.gsub(/^\./, "")}\" #{attrs}"
|
61
|
+
end
|
62
|
+
|
63
|
+
"<#{tag} #{attrs}>#{value}</#{tag}>"
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
|
2
|
+
module Rich
|
3
|
+
module Cms
|
4
|
+
module Engine
|
5
|
+
|
6
|
+
class RichCmsError < StandardError
|
7
|
+
end
|
8
|
+
|
9
|
+
extend self
|
10
|
+
|
11
|
+
attr_reader :authentication, :editable_content
|
12
|
+
|
13
|
+
def init
|
14
|
+
@authentication = AuthenticationSpecs.new
|
15
|
+
@editable_content = {}
|
16
|
+
|
17
|
+
%w(controllers).each do |dir|
|
18
|
+
path = File.join File.dirname(__FILE__), "..", "..", "app", dir
|
19
|
+
$LOAD_PATH << path
|
20
|
+
ActiveSupport::Dependencies.load_paths << path
|
21
|
+
ActiveSupport::Dependencies.load_once_paths.delete path
|
22
|
+
end
|
23
|
+
|
24
|
+
::Jzip::Plugin.add_template_location({File.join(File.dirname(__FILE__), "..", "..", "assets", "jzip") => File.join(RAILS_ROOT, "public", "javascripts")})
|
25
|
+
::Sass::Plugin.add_template_location( File.join(File.dirname(__FILE__), "..", "..", "assets", "sass"), File.join(RAILS_ROOT, "public", "stylesheets") )
|
26
|
+
end
|
27
|
+
|
28
|
+
def authenticate(logic, specs)
|
29
|
+
@authentication = AuthenticationSpecs.new(logic, specs)
|
30
|
+
end
|
31
|
+
|
32
|
+
def register(*args)
|
33
|
+
(editables = args.first.is_a?(Hash) ? args.first : Hash[*args]).each do |selector, specs|
|
34
|
+
if @editable_content.keys.include?(selector)
|
35
|
+
raise RichCmsError, "Already registered editable content identified with #{selector.inspect}"
|
36
|
+
else
|
37
|
+
@editable_content[selector] = Cms::Content::Group.build(selector, specs)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def to_content_tag(selector, identifiers)
|
43
|
+
editable_content[selector].fetch(identifiers).to_tag
|
44
|
+
end
|
45
|
+
|
46
|
+
def editable_content_javascript_hash
|
47
|
+
"{#{@editable_content.collect{|k, v| v.to_javascript_hash}.join ", "}}"
|
48
|
+
end
|
49
|
+
|
50
|
+
def current_controller=(current_controller)
|
51
|
+
@current_controller = current_controller
|
52
|
+
@can_render_metadata = nil
|
53
|
+
end
|
54
|
+
|
55
|
+
def can_render_metadata?
|
56
|
+
if @can_render_metadata.nil?
|
57
|
+
@can_render_metadata = case authentication.logic
|
58
|
+
when :authlogic
|
59
|
+
@current_controller.try :current_rich_cms_admin
|
60
|
+
when nil
|
61
|
+
true
|
62
|
+
end
|
63
|
+
else
|
64
|
+
@can_render_metadata
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
AuthenticationSpecs = Struct.new(:logic, :specs)
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
Rich::Cms::Engine.init
|
data/lib/rich_cms.rb
ADDED
data/rails/init.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "rich_cms"
|
data/rich_cms.gemspec
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{rich_cms}
|
8
|
+
s.version = "1.0.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Paul Engel"]
|
12
|
+
s.date = %q{2010-08-16}
|
13
|
+
s.description = %q{Rich-CMS is a module of E9s (http://github.com/archan937/e9s) which provides a frontend for your CMS content. You can use this gem to manage CMS content or translations (in an internationalized application). The installation and setup process is very easily done. You will have to register content at the Rich-CMS engine and also you will have to specify the authentication mechanism. Both are one-liners.}
|
14
|
+
s.email = %q{paul.engel@holder.nl}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"README.textile"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".gitignore",
|
20
|
+
"CHANGELOG",
|
21
|
+
"MIT-LICENSE",
|
22
|
+
"README.textile",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION",
|
25
|
+
"init.rb",
|
26
|
+
"install.rb",
|
27
|
+
"lib/app/controllers/rich/cms_controller.rb",
|
28
|
+
"lib/app/views/rich/cms/_bar.html.erb",
|
29
|
+
"lib/app/views/rich/cms/_config.html.erb",
|
30
|
+
"lib/app/views/rich/cms/bar/_menu.html.erb",
|
31
|
+
"lib/app/views/rich/cms/bar/_panel.html.erb",
|
32
|
+
"lib/app/views/rich/cms/bar/panel/_edit.html.erb",
|
33
|
+
"lib/app/views/rich/cms/bar/panel/_login.html.erb",
|
34
|
+
"lib/app/views/rich_cms.html.erb",
|
35
|
+
"lib/assets/jzip/jquery/core.js",
|
36
|
+
"lib/assets/jzip/jquery/extensions/ajaxify.js",
|
37
|
+
"lib/assets/jzip/jquery/extensions/modules.js",
|
38
|
+
"lib/assets/jzip/jquery/extensions/object.js",
|
39
|
+
"lib/assets/jzip/rich.js",
|
40
|
+
"lib/assets/jzip/rich/cms.js",
|
41
|
+
"lib/assets/jzip/rich/cms/editor.js",
|
42
|
+
"lib/assets/jzip/rich/cms/login.js",
|
43
|
+
"lib/assets/jzip/rich_cms.jz",
|
44
|
+
"lib/assets/sass/_bar.sass",
|
45
|
+
"lib/assets/sass/_editables.sass",
|
46
|
+
"lib/assets/sass/_mixins.sass",
|
47
|
+
"lib/assets/sass/rich_cms.sass",
|
48
|
+
"lib/config/routes.rb",
|
49
|
+
"lib/rich/cms/actionpack.rb",
|
50
|
+
"lib/rich/cms/actionpack/action_controller/base.rb",
|
51
|
+
"lib/rich/cms/actionpack/action_view/base.rb",
|
52
|
+
"lib/rich/cms/content/group.rb",
|
53
|
+
"lib/rich/cms/content/item.rb",
|
54
|
+
"lib/rich/cms/engine.rb",
|
55
|
+
"lib/rich_cms.rb",
|
56
|
+
"rails/init.rb",
|
57
|
+
"rich_cms.gemspec",
|
58
|
+
"tasks/rich_cms_tasks.rake",
|
59
|
+
"test/engine_test.rb",
|
60
|
+
"test/test_helper.rb",
|
61
|
+
"uninstall.rb"
|
62
|
+
]
|
63
|
+
s.homepage = %q{http://github.com/archan937/rich_cms}
|
64
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
65
|
+
s.require_paths = ["lib"]
|
66
|
+
s.rubygems_version = %q{1.3.7}
|
67
|
+
s.summary = %q{Enrichments (e9s) module for a pluggable CMS frontend}
|
68
|
+
s.test_files = [
|
69
|
+
"test/engine_test.rb",
|
70
|
+
"test/test_helper.rb"
|
71
|
+
]
|
72
|
+
|
73
|
+
if s.respond_to? :specification_version then
|
74
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
75
|
+
s.specification_version = 3
|
76
|
+
|
77
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
78
|
+
s.add_runtime_dependency(%q<jzip>, [">= 0"])
|
79
|
+
s.add_runtime_dependency(%q<haml>, [">= 3"])
|
80
|
+
s.add_runtime_dependency(%q<formtastic>, [">= 0"])
|
81
|
+
else
|
82
|
+
s.add_dependency(%q<jzip>, [">= 0"])
|
83
|
+
s.add_dependency(%q<haml>, [">= 3"])
|
84
|
+
s.add_dependency(%q<formtastic>, [">= 0"])
|
85
|
+
end
|
86
|
+
else
|
87
|
+
s.add_dependency(%q<jzip>, [">= 0"])
|
88
|
+
s.add_dependency(%q<haml>, [">= 3"])
|
89
|
+
s.add_dependency(%q<formtastic>, [">= 0"])
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
data/test/engine_test.rb
ADDED
data/test/test_helper.rb
ADDED
data/uninstall.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# Uninstall hook code here
|
metadata
ADDED
@@ -0,0 +1,151 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rich_cms
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 1.0.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Paul Engel
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-08-16 00:00:00 +02:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: jzip
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: haml
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 5
|
44
|
+
segments:
|
45
|
+
- 3
|
46
|
+
version: "3"
|
47
|
+
type: :runtime
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: formtastic
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
type: :runtime
|
62
|
+
version_requirements: *id003
|
63
|
+
description: Rich-CMS is a module of E9s (http://github.com/archan937/e9s) which provides a frontend for your CMS content. You can use this gem to manage CMS content or translations (in an internationalized application). The installation and setup process is very easily done. You will have to register content at the Rich-CMS engine and also you will have to specify the authentication mechanism. Both are one-liners.
|
64
|
+
email: paul.engel@holder.nl
|
65
|
+
executables: []
|
66
|
+
|
67
|
+
extensions: []
|
68
|
+
|
69
|
+
extra_rdoc_files:
|
70
|
+
- README.textile
|
71
|
+
files:
|
72
|
+
- .gitignore
|
73
|
+
- CHANGELOG
|
74
|
+
- MIT-LICENSE
|
75
|
+
- README.textile
|
76
|
+
- Rakefile
|
77
|
+
- VERSION
|
78
|
+
- init.rb
|
79
|
+
- install.rb
|
80
|
+
- lib/app/controllers/rich/cms_controller.rb
|
81
|
+
- lib/app/views/rich/cms/_bar.html.erb
|
82
|
+
- lib/app/views/rich/cms/_config.html.erb
|
83
|
+
- lib/app/views/rich/cms/bar/_menu.html.erb
|
84
|
+
- lib/app/views/rich/cms/bar/_panel.html.erb
|
85
|
+
- lib/app/views/rich/cms/bar/panel/_edit.html.erb
|
86
|
+
- lib/app/views/rich/cms/bar/panel/_login.html.erb
|
87
|
+
- lib/app/views/rich_cms.html.erb
|
88
|
+
- lib/assets/jzip/jquery/core.js
|
89
|
+
- lib/assets/jzip/jquery/extensions/ajaxify.js
|
90
|
+
- lib/assets/jzip/jquery/extensions/modules.js
|
91
|
+
- lib/assets/jzip/jquery/extensions/object.js
|
92
|
+
- lib/assets/jzip/rich.js
|
93
|
+
- lib/assets/jzip/rich/cms.js
|
94
|
+
- lib/assets/jzip/rich/cms/editor.js
|
95
|
+
- lib/assets/jzip/rich/cms/login.js
|
96
|
+
- lib/assets/jzip/rich_cms.jz
|
97
|
+
- lib/assets/sass/_bar.sass
|
98
|
+
- lib/assets/sass/_editables.sass
|
99
|
+
- lib/assets/sass/_mixins.sass
|
100
|
+
- lib/assets/sass/rich_cms.sass
|
101
|
+
- lib/config/routes.rb
|
102
|
+
- lib/rich/cms/actionpack.rb
|
103
|
+
- lib/rich/cms/actionpack/action_controller/base.rb
|
104
|
+
- lib/rich/cms/actionpack/action_view/base.rb
|
105
|
+
- lib/rich/cms/content/group.rb
|
106
|
+
- lib/rich/cms/content/item.rb
|
107
|
+
- lib/rich/cms/engine.rb
|
108
|
+
- lib/rich_cms.rb
|
109
|
+
- rails/init.rb
|
110
|
+
- rich_cms.gemspec
|
111
|
+
- tasks/rich_cms_tasks.rake
|
112
|
+
- test/engine_test.rb
|
113
|
+
- test/test_helper.rb
|
114
|
+
- uninstall.rb
|
115
|
+
has_rdoc: true
|
116
|
+
homepage: http://github.com/archan937/rich_cms
|
117
|
+
licenses: []
|
118
|
+
|
119
|
+
post_install_message:
|
120
|
+
rdoc_options:
|
121
|
+
- --charset=UTF-8
|
122
|
+
require_paths:
|
123
|
+
- lib
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
hash: 3
|
130
|
+
segments:
|
131
|
+
- 0
|
132
|
+
version: "0"
|
133
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
+
none: false
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
hash: 3
|
139
|
+
segments:
|
140
|
+
- 0
|
141
|
+
version: "0"
|
142
|
+
requirements: []
|
143
|
+
|
144
|
+
rubyforge_project:
|
145
|
+
rubygems_version: 1.3.7
|
146
|
+
signing_key:
|
147
|
+
specification_version: 3
|
148
|
+
summary: Enrichments (e9s) module for a pluggable CMS frontend
|
149
|
+
test_files:
|
150
|
+
- test/engine_test.rb
|
151
|
+
- test/test_helper.rb
|