rich_cms 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/.gitignore +2 -0
  2. data/CHANGELOG +5 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.textile +158 -0
  5. data/Rakefile +43 -0
  6. data/VERSION +1 -0
  7. data/init.rb +1 -0
  8. data/install.rb +1 -0
  9. data/lib/app/controllers/rich/cms_controller.rb +56 -0
  10. data/lib/app/views/rich/cms/_bar.html.erb +4 -0
  11. data/lib/app/views/rich/cms/_config.html.erb +5 -0
  12. data/lib/app/views/rich/cms/bar/_menu.html.erb +16 -0
  13. data/lib/app/views/rich/cms/bar/_panel.html.erb +3 -0
  14. data/lib/app/views/rich/cms/bar/panel/_edit.html.erb +10 -0
  15. data/lib/app/views/rich/cms/bar/panel/_login.html.erb +11 -0
  16. data/lib/app/views/rich_cms.html.erb +5 -0
  17. data/lib/assets/jzip/jquery/core.js +168 -0
  18. data/lib/assets/jzip/jquery/extensions/ajaxify.js +26 -0
  19. data/lib/assets/jzip/jquery/extensions/modules.js +12 -0
  20. data/lib/assets/jzip/jquery/extensions/object.js +17 -0
  21. data/lib/assets/jzip/rich/cms/editor.js +118 -0
  22. data/lib/assets/jzip/rich/cms/login.js +12 -0
  23. data/lib/assets/jzip/rich/cms.js +2 -0
  24. data/lib/assets/jzip/rich.js +28 -0
  25. data/lib/assets/jzip/rich_cms.jz +10 -0
  26. data/lib/assets/sass/_bar.sass +45 -0
  27. data/lib/assets/sass/_editables.sass +6 -0
  28. data/lib/assets/sass/_mixins.sass +52 -0
  29. data/lib/assets/sass/rich_cms.sass +4 -0
  30. data/lib/config/routes.rb +17 -0
  31. data/lib/rich/cms/actionpack/action_controller/base.rb +61 -0
  32. data/lib/rich/cms/actionpack/action_view/base.rb +15 -0
  33. data/lib/rich/cms/actionpack.rb +3 -0
  34. data/lib/rich/cms/content/group.rb +63 -0
  35. data/lib/rich/cms/content/item.rb +70 -0
  36. data/lib/rich/cms/engine.rb +76 -0
  37. data/lib/rich_cms.rb +7 -0
  38. data/rails/init.rb +1 -0
  39. data/rich_cms.gemspec +92 -0
  40. data/tasks/rich_cms_tasks.rake +4 -0
  41. data/test/engine_test.rb +15 -0
  42. data/test/test_helper.rb +3 -0
  43. data/uninstall.rb +1 -0
  44. 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,4 @@
1
+
2
+ @import mixins
3
+ @import bar
4
+ @import editables
@@ -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,3 @@
1
+
2
+ require File.join(File.dirname(__FILE__), "actionpack", "action_controller", "base.rb")
3
+ require File.join(File.dirname(__FILE__), "actionpack", "action_view" , "base.rb")
@@ -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
@@ -0,0 +1,7 @@
1
+
2
+ require "config/routes"
3
+
4
+ require "rich/cms/actionpack"
5
+ require "rich/cms/engine"
6
+ require "rich/cms/content/group"
7
+ require "rich/cms/content/item"
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
+
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :rich_cms do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,15 @@
1
+ require "test_helper"
2
+
3
+ module Rich
4
+ module Cms
5
+ module Test
6
+
7
+ class EngineTest < ActiveSupport::TestCase
8
+ # test "something" do
9
+ # assert true
10
+ # end
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ require "rubygems"
2
+ require "active_support"
3
+ require "active_support/test_case"
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