aslakjo-comatose 2.0.5.2
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/CHANGELOG +195 -0
- data/INSTALL +20 -0
- data/LICENSE +20 -0
- data/MANIFEST +91 -0
- data/README.markdown +159 -0
- data/Rakefile +176 -0
- data/SPECS +61 -0
- data/about.yml +7 -0
- data/bin/comatose +112 -0
- data/comatose.gemspec +113 -0
- data/generators/comatose_migration/USAGE +15 -0
- data/generators/comatose_migration/comatose_migration_generator.rb +74 -0
- data/generators/comatose_migration/templates/migration.rb +35 -0
- data/generators/comatose_migration/templates/v4_upgrade.rb +15 -0
- data/generators/comatose_migration/templates/v6_upgrade.rb +23 -0
- data/generators/comatose_migration/templates/v7_upgrade.rb +22 -0
- data/init.rb +2 -0
- data/install.rb +18 -0
- data/lib/acts_as_versioned.rb +543 -0
- data/lib/comatose/comatose_drop.rb +79 -0
- data/lib/comatose/configuration.rb +69 -0
- data/lib/comatose/page_wrapper.rb +119 -0
- data/lib/comatose/processing_context.rb +69 -0
- data/lib/comatose/tasks/admin.rb +60 -0
- data/lib/comatose/tasks/data.rb +82 -0
- data/lib/comatose/tasks/setup.rb +52 -0
- data/lib/comatose/version.rb +4 -0
- data/lib/comatose.rb +33 -0
- data/lib/comatose_admin_controller.rb +395 -0
- data/lib/comatose_admin_helper.rb +37 -0
- data/lib/comatose_controller.rb +138 -0
- data/lib/comatose_helper.rb +3 -0
- data/lib/comatose_page.rb +141 -0
- data/lib/liquid/block.rb +96 -0
- data/lib/liquid/context.rb +190 -0
- data/lib/liquid/document.rb +17 -0
- data/lib/liquid/drop.rb +48 -0
- data/lib/liquid/errors.rb +7 -0
- data/lib/liquid/extensions.rb +53 -0
- data/lib/liquid/file_system.rb +62 -0
- data/lib/liquid/htmltags.rb +64 -0
- data/lib/liquid/standardfilters.rb +111 -0
- data/lib/liquid/standardtags.rb +399 -0
- data/lib/liquid/strainer.rb +42 -0
- data/lib/liquid/tag.rb +25 -0
- data/lib/liquid/template.rb +88 -0
- data/lib/liquid/variable.rb +39 -0
- data/lib/liquid.rb +52 -0
- data/lib/redcloth.rb +1129 -0
- data/lib/support/class_options.rb +36 -0
- data/lib/support/inline_rendering.rb +48 -0
- data/lib/support/route_mapper.rb +50 -0
- data/lib/text_filters/markdown.rb +14 -0
- data/lib/text_filters/markdown_smartypants.rb +15 -0
- data/lib/text_filters/none.rb +8 -0
- data/lib/text_filters/rdoc.rb +13 -0
- data/lib/text_filters/simple.rb +8 -0
- data/lib/text_filters/textile.rb +15 -0
- data/lib/text_filters.rb +140 -0
- data/rails/init.rb +3 -0
- data/resources/layouts/comatose_admin_template.html.erb +28 -0
- data/resources/public/images/collapsed.gif +0 -0
- data/resources/public/images/expanded.gif +0 -0
- data/resources/public/images/no-children.gif +0 -0
- data/resources/public/images/page.gif +0 -0
- data/resources/public/images/spinner.gif +0 -0
- data/resources/public/images/title-hover-bg.gif +0 -0
- data/resources/public/javascripts/comatose_admin.js +401 -0
- data/resources/public/stylesheets/comatose_admin.css +404 -0
- data/tasks/comatose.rake +9 -0
- data/test/behaviors.rb +106 -0
- data/test/fixtures/comatose_pages.yml +96 -0
- data/test/functional/comatose_admin_controller_test.rb +114 -0
- data/test/functional/comatose_controller_test.rb +44 -0
- data/test/javascripts/test.html +26 -0
- data/test/javascripts/test_runner.js +307 -0
- data/test/test_helper.rb +55 -0
- data/test/unit/class_options_test.rb +52 -0
- data/test/unit/comatose_page_test.rb +136 -0
- data/test/unit/processing_context_test.rb +108 -0
- data/test/unit/text_filters_test.rb +52 -0
- data/views/comatose_admin/_form.html.erb +96 -0
- data/views/comatose_admin/_page_list_item.html.erb +60 -0
- data/views/comatose_admin/delete.html.erb +18 -0
- data/views/comatose_admin/edit.html.erb +5 -0
- data/views/comatose_admin/index.html.erb +29 -0
- data/views/comatose_admin/new.html.erb +5 -0
- data/views/comatose_admin/reorder.html.erb +30 -0
- data/views/comatose_admin/versions.html.erb +40 -0
- data/views/layouts/comatose_admin.html.erb +837 -0
- data/views/layouts/comatose_admin_customize.html.erb +28 -0
- data/views/layouts/comatose_content.html.erb +17 -0
- metadata +148 -0
data/CHANGELOG
ADDED
@@ -0,0 +1,195 @@
|
|
1
|
+
- version: 2.0.5 (beta)
|
2
|
+
- Added configuration option for importing/exporting pages from admin: `config.allow_import_export = true|false`, `true` is the default at the moment
|
3
|
+
- Reworked the UI for import/export a little bit
|
4
|
+
- Added LINK option to `test_harness` rake task to symlink the comatose plugin directory instead of copying it
|
5
|
+
- Updated manifest and gemspec
|
6
|
+
|
7
|
+
- version: 2.0.4 (beta)
|
8
|
+
- Added a rake task to generate a test_harness (for use in development). From the comatose directory, run: `rake test_harness TARGET=../comatose_test_harness`. This will create an empty rails app, copy this working folder over to vendor/plugins/comatose, install acts_as_list and acts_as_tree, and run any setup needed, like script/generate comatose_migration and rake db:migrate.
|
9
|
+
- Bugfix in tasks/comatose.rake
|
10
|
+
- Comatose migration generator now adds the default comatose routes (`map.comatose_admin` and `map.comatose_root ''`) to the top of the routes.rb file. POSSIBLE GOTCHA: `map.comatose_root` should be moved to the bottom of the routes file!
|
11
|
+
|
12
|
+
- version: 2.0.3 (beta)
|
13
|
+
- Moving from alpha to beta!
|
14
|
+
- staugaard: Added import and export of pages in admin controller
|
15
|
+
|
16
|
+
- version: 2.0.2 (alpha)
|
17
|
+
- staugaard: Added "unloadable" to ComatoseController (problems with ActsAsAuthenticated-integration similar to http://tinyurl.com/6caz5r)
|
18
|
+
- jcnetdev: Tweaking gemspec
|
19
|
+
|
20
|
+
- version: 2.0.1 (alpha)
|
21
|
+
- Merged changes from andreas (http://github.com/andreas)...
|
22
|
+
- andreas: Fixed comatose:admin:customize raketask (seems plugin_path was wrong, and made use of mkdir_p to avoid "File exists"-errors.)
|
23
|
+
- andreas: Added "unloadable" to ComatoseAdminController (problems with ActsAsAuthenticated-integration similar to http://tinyurl.com/6caz5r)
|
24
|
+
|
25
|
+
- version: 2.0 (uber alpha)
|
26
|
+
- Removed controllers, models, and helpers from Comatose module. It was causing odd issues
|
27
|
+
- Initial support for Rails 2.1(ish)
|
28
|
+
- Fixed up slug generation to remove leading and trailing whitespace
|
29
|
+
- Moved to github
|
30
|
+
- Changed all the .rhtml files to .html.erb
|
31
|
+
- Adding support for use as a gem plugin
|
32
|
+
|
33
|
+
- version: 0.8.1
|
34
|
+
changes:
|
35
|
+
- All includes and helpers are loaded at the end of the ComatoseController and ComatoseAdminController classes
|
36
|
+
- Fixed the ComatoseController#show action to correctly send an HTTP status of 404 even if it finds, and renders, a page at '/404'
|
37
|
+
- Fixed the migration to default a page's full_path to '' instead of null
|
38
|
+
- Formalized ComatoseDrops. Use Comatose.define_drop "drop_name", do ... end. Every method within that block should return a value for use with a Liquid and/or ERB template. Usage in a comatose page: {{ drop_name.def_name }}
|
39
|
+
- Added support for a config.after_setup block that gets called after Comatose is setup (in the Dispatcher#to_prepare event)
|
40
|
+
- Added HTML comment output for calls that result in a method_missing on the ProcessingContext
|
41
|
+
- Updated page tree to remember collapsed/expanded nodes between page visits
|
42
|
+
- Fixed some errors that were caused by null revisions (usually happened after initial installation)
|
43
|
+
- Added my javascript test_runner lib for testing slugs generated by JavaScript. More JS tests to come.
|
44
|
+
- Bugfix #8640 (rubyforge bug)
|
45
|
+
|
46
|
+
- version: 0.8
|
47
|
+
changes:
|
48
|
+
- Now ONLY supports Rails 1.2 (not even tested in Rails 1.1)
|
49
|
+
- New configuration system
|
50
|
+
- DEFER_COMATOSE_LOAD is gone -- Using Dispatcher.to_prepare replaces it
|
51
|
+
- You no longer extend the base classes to add functionality. You configure Comatose to include modules and send it symbols for providing said functionality. e.g. Comatose.config.includes << :authentiation_system; Comatose.config.authorization = :require_login
|
52
|
+
- The automatic loading of RAILS_ROOT/lib/comatose/*.rb files is NO longer supported.
|
53
|
+
- In addition to mapping comatose_root in your routes.rb, you'll want to map.comatose_admin as well
|
54
|
+
|
55
|
+
- version: 0.7.1
|
56
|
+
changes:
|
57
|
+
- A new DEFER_COMATOSE_LOAD flag is defined in the init.rb -- if you manually set it to `true`, you'll need to call Comatose.load in your environment.rb, but this should combat a lot of the plugin incompatiblities Coamtose has been suffering from
|
58
|
+
- The revisions link on the edit page is now only shown if you have revisions
|
59
|
+
|
60
|
+
- version: 0.7
|
61
|
+
changes:
|
62
|
+
- Finally, page versioning via Rick Olsen's excellent acts_as_versioned! (included)
|
63
|
+
- Tries to load any text filters, tags/drops, or extensions under RAILS_ROOT/lib/comatose/ (actually it just `require`'s every .rb file in that folder) so you no longer need to muck around with adding stuff in your environment.rb file
|
64
|
+
- Previewing a page no longer updates it
|
65
|
+
|
66
|
+
- version: 0.6.9
|
67
|
+
changes:
|
68
|
+
- The page context now supports page.next, page.last, page.first_child, page.last_child
|
69
|
+
|
70
|
+
- version: 0.6.8
|
71
|
+
changes:
|
72
|
+
- Bugfix ComatoseController now references plugin_layout_path correctly from the class method
|
73
|
+
- Some HTML/CSS/JS cleanup on the administration view -- should degrade to straight HTML pretty well now
|
74
|
+
|
75
|
+
- version: 0.6.7
|
76
|
+
changes:
|
77
|
+
- Removed Comatose::Page.record_timestamps = false -- it was breaking the magic. Override the record_timestamp methds instead
|
78
|
+
- AdminController was still referencing, in a few places, ComatoseController for page cache expiration
|
79
|
+
|
80
|
+
- version: 0.6.6
|
81
|
+
changes:
|
82
|
+
- The cache expiration code is now on the ComatoseAdminController, as it should have been in the first place
|
83
|
+
- Changed internal references from root_paths or cms_root to mount_point, since that's what I've started calling them... And it seems to make the most sense
|
84
|
+
- Cleaned up the class_options code
|
85
|
+
- Added initial support for pre-caching pages (generating static HTML), there's not a UI element for it yet, however
|
86
|
+
- Changes to content-type handling:
|
87
|
+
- Removed Comatose::Options.force_utf8
|
88
|
+
- Added Support for Comatose::Options.content_type = "utf-8" This will affect the HTTP headers, as well as the META tag in the admin views
|
89
|
+
- Changed this log file to yaml format. And yes, there's a method to my madness... Wait for it.
|
90
|
+
|
91
|
+
- version: 0.6.5
|
92
|
+
changes:
|
93
|
+
- Fixed a bug in comatose_admin.js -- if you hid any of the meta_fields it would barf
|
94
|
+
|
95
|
+
- version: 0.6.4
|
96
|
+
changes:
|
97
|
+
- Fixed a typo in comatose_admin_customize.rhtml
|
98
|
+
- Controller now keeps all information about mount points not just the :root (uri) and :index (page tree)
|
99
|
+
|
100
|
+
- version: 0.6.3
|
101
|
+
changes:
|
102
|
+
- Fixed the customization tasks
|
103
|
+
- Added support for the new Routes system in Edge Rails
|
104
|
+
- Removed the getting started guide -- it's now available at: http://comatose.rubyforge.org/getting-started-guide
|
105
|
+
|
106
|
+
- version: 0.6.2
|
107
|
+
changes:
|
108
|
+
- Fixed an issue with named_routes
|
109
|
+
|
110
|
+
- version: 0.6.1
|
111
|
+
changes:
|
112
|
+
- Fixed a migration issue
|
113
|
+
|
114
|
+
- version: 0.6
|
115
|
+
changes:
|
116
|
+
- Split out the admin from the ComatoseController into a new ComatoseAdminController class.
|
117
|
+
- Moved controllers/model into Comatose module, now ComatoseController extends Comatose::Controller, and ComatoseAdminController extends Comatose::AdminController. And they extend your ApplicationController ComatoseController
|
118
|
+
- Created a Comatose::Options class for configuration.
|
119
|
+
- Add Liquid support to Text Processing -- made it the default processor.
|
120
|
+
- Added support for adding 'tags' to processing context. They are Liquid Drops when using Liquid for processing, use like objects/methods when in ERB
|
121
|
+
- Changed comatose.css, comatose.js, and app/views/comatose to comatose_admin.css, comatose_admin.js, and app/views/comatose_admin
|
122
|
+
- Changed the names of some of the internals... ComatoseBinding is now Comatose::ProcessingContext, ComatosePageWrapper is Comatose::PageWrapper
|
123
|
+
- Bugfix: PostgreSQL need the scope to be a symbol instead of a string, eh? Fine -- it is so. (Thanks to Lyle for the fix)
|
124
|
+
- Added support for named routes... Anytime you use map.comatose_*, if * isn't 'root', it will use it as a named route
|
125
|
+
|
126
|
+
- version: 0.5
|
127
|
+
changes:
|
128
|
+
- Added support for parameterized inline rendering of comatose pages. Uselike a partial: render :comatose=>'path', :locals=>{:username=>'stuff'} the locals hash will be sent to the ERB context for use when rendering the page.
|
129
|
+
- Support for a Hash ERB context exists all the way down to the TextFilters.
|
130
|
+
- Initial support for fragment caching for inline rendering. It's turned off by default. Send :use_cache=>true in the render :comatose=>'' tag to use it. Caching will also not be used if you are sending the page parameters via the :locals hash. Oh, and don't forget to set your ActionController::Base.fragment_cache_store
|
131
|
+
- Return reloadable? false for the ComatoseController by default... This should prevent the development mode hassles people have been having.
|
132
|
+
- Updated data migration tasks to better support nested pages.
|
133
|
+
- comatose:data:export FROM=page_path TO_FILE=file_path
|
134
|
+
- comatose:data:import TO=page_path FROM_FILE=file_path
|
135
|
+
- FROM_FILE and TO_FILE default to 'db/comatose-pages.yml'
|
136
|
+
- FROM and TO default to '', the page tree root
|
137
|
+
- Fixed 'Clear Page Cache' bug -- it didn't handle the page root being an array like it should have.
|
138
|
+
- Removed :page_title and :page_keywords from session
|
139
|
+
- Updated the rails_version in the about.yml to 1.1+ -- just because I haven't tested it on anything less than that. If you have, and it works, let me know!
|
140
|
+
- Adds the utf8 header to all output (text/html; charset=utf-8). Use ComatoseController.force_utf8 = false to disable.
|
141
|
+
- Initial support for page reordering (via AJAX)
|
142
|
+
- Updated the administration look-n-feel.
|
143
|
+
|
144
|
+
- version: 0.4
|
145
|
+
changes:
|
146
|
+
- Added keywords field
|
147
|
+
- Abstracted text filters into a micro plugin structure, default support for Textile, Markdown, and RDoc
|
148
|
+
- It will only show the filters as a choice in the admin if you have the necessary libraries for the filters to function.
|
149
|
+
- Added ComatoseController.hidden_meta_fields = [] as a way of showing/hiding the meta fields
|
150
|
+
- The comatose_migration generator now accepts an --upgrade flag which will create a micro migration that only has the new fields in it
|
151
|
+
- get_root_page will now support returning an array of root pages to show in the admin page list
|
152
|
+
- Created some initial tests... (Can you tell I'm not a test _first_ guy?)
|
153
|
+
- Inline rendering now handles :silent flag -- it will just return and empty string if :silent=>true
|
154
|
+
- Modified all the internal references to ComatoseController to self.class.The views reference controller.class. Redirects redirect to :controller=>self.controller_name or controller.controller_name (action and view respectively). This show allow you to sub-class the ComatoseController.
|
155
|
+
|
156
|
+
- version: 0.3.1
|
157
|
+
changes:
|
158
|
+
- Abstracted retrieval of root comatose page to allow multi-user/limited view support
|
159
|
+
- Added redcloth so there are now no external dependencies... Other than Rails, of course ;-)
|
160
|
+
- DRYed up the folder structure a bit
|
161
|
+
- Added a Rakefile
|
162
|
+
- Made this ChangeLog more human-readable
|
163
|
+
|
164
|
+
- version: 0.3
|
165
|
+
changes:
|
166
|
+
- Added support for running entirely from the plugin
|
167
|
+
- Added support for hierarchal pages
|
168
|
+
- Pages are pre-filtered by ERB, therefor ERB can generate Textile
|
169
|
+
- Comatose binding object
|
170
|
+
- Used with ERB context to protect AR model
|
171
|
+
- Has a few helper methods too: link, include
|
172
|
+
- Migration updated
|
173
|
+
- rendered_body removed, not much sense with ERB pre-processing and page-caching
|
174
|
+
- full_path added for easy access to child pages
|
175
|
+
- position, and author fields for future use
|
176
|
+
- Administration Updates
|
177
|
+
- Page listing is now a collapsible tree view
|
178
|
+
- Page edit supports previewing the content
|
179
|
+
- Preview textile only for new pages, full ERB previews for existing pages
|
180
|
+
- ERB errors show up as AR errors
|
181
|
+
- Shows Title and Body fields by default, clicking 'more...' makes Slug and Parent visible
|
182
|
+
- CSS updates to lighten it up a bit
|
183
|
+
|
184
|
+
- version: 0.2
|
185
|
+
changes:
|
186
|
+
- Added support for rendering pages inline
|
187
|
+
- Added support for expiring entire page cache
|
188
|
+
- Added support for properly expiring pages when they are modified or deleted
|
189
|
+
- Update stylesheets, generally made it usable
|
190
|
+
- Fixed #new action
|
191
|
+
- Minor tweaks
|
192
|
+
|
193
|
+
- version: 0.1
|
194
|
+
changes:
|
195
|
+
- First mostly-working version
|
data/INSTALL
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
|
2
|
+
======================
|
3
|
+
Welcome to Comatose!
|
4
|
+
======================
|
5
|
+
|
6
|
+
Be sure and install the acts_as_tree and acts_as_list plugins!
|
7
|
+
|
8
|
+
From here you'll want to run:
|
9
|
+
|
10
|
+
$ ./script/generate comatose_migration
|
11
|
+
|
12
|
+
NOTE: The generator will add the default comatose routes to the top of your routes.rb file. You'll want to move `map.comatose_root ''` to the bottom of your routes block.
|
13
|
+
|
14
|
+
When that's finished, run:
|
15
|
+
|
16
|
+
$ rake db:migrate
|
17
|
+
|
18
|
+
That's it for the Comatose setup!
|
19
|
+
|
20
|
+
Be sure to read the README file, and the 'Getting Started' guide. They are located at vendor/plugins/comatose/README and http://comatose.rubyforge.org/getting-started-guide respectively.
|
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2006 Matthew McCray [ http://www.mattmccray.com ]
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sub-license, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/MANIFEST
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
about.yml
|
2
|
+
bin/comatose
|
3
|
+
CHANGELOG
|
4
|
+
generators/comatose_migration/comatose_migration_generator.rb
|
5
|
+
generators/comatose_migration/templates/migration.rb
|
6
|
+
generators/comatose_migration/templates/v4_upgrade.rb
|
7
|
+
generators/comatose_migration/templates/v6_upgrade.rb
|
8
|
+
generators/comatose_migration/templates/v7_upgrade.rb
|
9
|
+
generators/comatose_migration/USAGE
|
10
|
+
init.rb
|
11
|
+
INSTALL
|
12
|
+
install.rb
|
13
|
+
lib/acts_as_versioned.rb
|
14
|
+
lib/comatose/comatose_drop.rb
|
15
|
+
lib/comatose/configuration.rb
|
16
|
+
lib/comatose/page_wrapper.rb
|
17
|
+
lib/comatose/processing_context.rb
|
18
|
+
lib/comatose/tasks/admin.rb
|
19
|
+
lib/comatose/tasks/data.rb
|
20
|
+
lib/comatose/tasks/setup.rb
|
21
|
+
lib/comatose/version.rb
|
22
|
+
lib/comatose.rb
|
23
|
+
lib/comatose_admin_controller.rb
|
24
|
+
lib/comatose_admin_helper.rb
|
25
|
+
lib/comatose_controller.rb
|
26
|
+
lib/comatose_helper.rb
|
27
|
+
lib/comatose_page.rb
|
28
|
+
lib/liquid/block.rb
|
29
|
+
lib/liquid/context.rb
|
30
|
+
lib/liquid/document.rb
|
31
|
+
lib/liquid/drop.rb
|
32
|
+
lib/liquid/errors.rb
|
33
|
+
lib/liquid/extensions.rb
|
34
|
+
lib/liquid/file_system.rb
|
35
|
+
lib/liquid/htmltags.rb
|
36
|
+
lib/liquid/standardfilters.rb
|
37
|
+
lib/liquid/standardtags.rb
|
38
|
+
lib/liquid/strainer.rb
|
39
|
+
lib/liquid/tag.rb
|
40
|
+
lib/liquid/template.rb
|
41
|
+
lib/liquid/variable.rb
|
42
|
+
lib/liquid.rb
|
43
|
+
lib/redcloth.rb
|
44
|
+
lib/support/class_options.rb
|
45
|
+
lib/support/inline_rendering.rb
|
46
|
+
lib/support/route_mapper.rb
|
47
|
+
lib/text_filters/markdown.rb
|
48
|
+
lib/text_filters/markdown_smartypants.rb
|
49
|
+
lib/text_filters/none.rb
|
50
|
+
lib/text_filters/rdoc.rb
|
51
|
+
lib/text_filters/simple.rb
|
52
|
+
lib/text_filters/textile.rb
|
53
|
+
lib/text_filters.rb
|
54
|
+
LICENSE
|
55
|
+
MANIFEST
|
56
|
+
rails/init.rb
|
57
|
+
Rakefile
|
58
|
+
README.markdown
|
59
|
+
resources/layouts/comatose_admin_template.html.erb
|
60
|
+
resources/public/images/collapsed.gif
|
61
|
+
resources/public/images/expanded.gif
|
62
|
+
resources/public/images/no-children.gif
|
63
|
+
resources/public/images/page.gif
|
64
|
+
resources/public/images/spinner.gif
|
65
|
+
resources/public/images/title-hover-bg.gif
|
66
|
+
resources/public/javascripts/comatose_admin.js
|
67
|
+
resources/public/stylesheets/comatose_admin.css
|
68
|
+
SPECS
|
69
|
+
tasks/comatose.rake
|
70
|
+
test/behaviors.rb
|
71
|
+
test/fixtures/comatose_pages.yml
|
72
|
+
test/functional/comatose_admin_controller_test.rb
|
73
|
+
test/functional/comatose_controller_test.rb
|
74
|
+
test/javascripts/test.html
|
75
|
+
test/javascripts/test_runner.js
|
76
|
+
test/test_helper.rb
|
77
|
+
test/unit/class_options_test.rb
|
78
|
+
test/unit/comatose_page_test.rb
|
79
|
+
test/unit/processing_context_test.rb
|
80
|
+
test/unit/text_filters_test.rb
|
81
|
+
views/comatose_admin/_form.html.erb
|
82
|
+
views/comatose_admin/_page_list_item.html.erb
|
83
|
+
views/comatose_admin/delete.html.erb
|
84
|
+
views/comatose_admin/edit.html.erb
|
85
|
+
views/comatose_admin/index.html.erb
|
86
|
+
views/comatose_admin/new.html.erb
|
87
|
+
views/comatose_admin/reorder.html.erb
|
88
|
+
views/comatose_admin/versions.html.erb
|
89
|
+
views/layouts/comatose_admin.html.erb
|
90
|
+
views/layouts/comatose_admin_customize.html.erb
|
91
|
+
views/layouts/comatose_content.html.erb
|
data/README.markdown
ADDED
@@ -0,0 +1,159 @@
|
|
1
|
+
# Comatose
|
2
|
+
|
3
|
+
* Version: 2.0.5 (beta)
|
4
|
+
* Author: M@ McCray
|
5
|
+
* Website: comatose.rubyforge.org
|
6
|
+
* Email: matt at elucidata dot net
|
7
|
+
|
8
|
+
|
9
|
+
*Comatose* is a micro CMS designed for being embedded into existing Rails
|
10
|
+
applications.
|
11
|
+
|
12
|
+
It's intended for simple CMS support. Comatose supports
|
13
|
+
|
14
|
+
* Nested pages
|
15
|
+
* Versioning
|
16
|
+
* Page markup in Textile, Markdown, RDoc, or easily add your own
|
17
|
+
* Page processing through Liquid or ERb
|
18
|
+
* Generators for easy installation/migration
|
19
|
+
* Completely self-contained within plugin folder
|
20
|
+
|
21
|
+
It's meant to be lean, mean, easily embedded, and easy to re-skin for
|
22
|
+
existing applications. If you need something more, I would recommend
|
23
|
+
looking into Radiant.
|
24
|
+
|
25
|
+
For more information, see the [Getting Started][] guide.
|
26
|
+
|
27
|
+
### Requirements
|
28
|
+
|
29
|
+
* Rails 2+ (2.1)
|
30
|
+
* `acts_as_list` and `acts_as_tree` plugins are required (at the moment)
|
31
|
+
|
32
|
+
|
33
|
+
### Development Notes
|
34
|
+
|
35
|
+
*NOTE*: This is an active branch of Comatose that is built specifically for Rails 2.1.
|
36
|
+
I will *probably* remove any legacy support.
|
37
|
+
|
38
|
+
* Make comatose fully self-contained, which means removing `acts_as_(tree|list)`
|
39
|
+
* Improve `ComatoseAdminController` to reduce number of DB calls for building the page tree
|
40
|
+
* Move to gem plugin
|
41
|
+
* `Comatose.configure` needs to be an initializer (update docs)
|
42
|
+
* Go through bugs on 1x branch from google code and ensure they are fixed
|
43
|
+
* Give access to all the default rails helpers to Comatose Pages by default?
|
44
|
+
* UI refresh (nothing major, just some cleanup).
|
45
|
+
* RESTful goodness.
|
46
|
+
* Support XML/JSON responses from `ComatoseController` and `ComatoseAdminController`.
|
47
|
+
* Support for static rendering (for generating sites like this blog).
|
48
|
+
|
49
|
+
### Installation
|
50
|
+
|
51
|
+
*Note*: See the 'Upgrading' section if you already have an older version of
|
52
|
+
the comatose plugin installed.
|
53
|
+
|
54
|
+
$ ./script/plugin install git://github.com/darthapo/comatose.git
|
55
|
+
$ ./script/generate comatose_migration
|
56
|
+
$ rake db:migrate
|
57
|
+
|
58
|
+
Open your `routes.rb` and move the following comatose route to the
|
59
|
+
bottom:
|
60
|
+
|
61
|
+
map.comatose_root ''
|
62
|
+
|
63
|
+
That's it, you're ready to go! You should be able to browse to
|
64
|
+
http://127.0.0.1:3000/**comatose_admin** and start adding pages to your CMS.
|
65
|
+
Browsing to http://127.0.0.1:3000/ will render your comatose pages if
|
66
|
+
routing doesn't match any of your controllers.
|
67
|
+
|
68
|
+
|
69
|
+
### Upgrading
|
70
|
+
|
71
|
+
*NOTE*: This is an experimental 2.0 branch, so upgrading is possible at
|
72
|
+
the moment, but these instructions may not work for much longer.
|
73
|
+
|
74
|
+
If you are upgrading from an older version of Comatose (version 0.3,
|
75
|
+
0.4, 0.5, or 0.6), then you will need to re-install the comatose
|
76
|
+
plugin and run:
|
77
|
+
|
78
|
+
$ ./script/plugin remove comatose
|
79
|
+
$ ./script/plugin install comatose
|
80
|
+
$ ./script/generate comatose_migration --upgrade --from=VERSION
|
81
|
+
$ rake migrate
|
82
|
+
|
83
|
+
*Note*: Be sure to set the `--from` parameter to the version of
|
84
|
+
Comatose you last had installed. Also, you only need to first two digits,
|
85
|
+
including the dot, of the version you are upgrading from. For example, if
|
86
|
+
you're upgrading from version 0.6.9 you can use:
|
87
|
+
|
88
|
+
$ ./script/generate comatose_migration --upgrade --from=0.6
|
89
|
+
|
90
|
+
This will create the upgrade migration(s) for you. It just adds the new
|
91
|
+
fields, so you can keep the original migration comatose created.
|
92
|
+
|
93
|
+
|
94
|
+
### Configuration
|
95
|
+
|
96
|
+
You configure Comatose in your `config/environment.rb` file. Here is an example
|
97
|
+
configuration block:
|
98
|
+
|
99
|
+
Comatose.configure do |config|
|
100
|
+
# Sets the text in the Admin UI's title area
|
101
|
+
config.admin_title = "Site Content"
|
102
|
+
config.admin_sub_title = "Content for the rest of us..."
|
103
|
+
end
|
104
|
+
|
105
|
+
Here's an example that uses the `AuthenticationSystem` as generated by the
|
106
|
+
`restful_authentication` plugin:
|
107
|
+
|
108
|
+
Comatose.configure do |config|
|
109
|
+
# Includes AuthenticationSystem in the ComatoseController
|
110
|
+
config.includes << :authenticated_system
|
111
|
+
|
112
|
+
# admin
|
113
|
+
config.admin_title = "Comatose - TESTING"
|
114
|
+
config.admin_sub_title = "Content for the rest of us..."
|
115
|
+
|
116
|
+
# Includes AuthenticationSystem in the ComatoseAdminController
|
117
|
+
config.admin_includes << :authenticated_system
|
118
|
+
|
119
|
+
# Calls :login_required as a before_filter
|
120
|
+
config.admin_authorization = :login_required
|
121
|
+
# Returns the author name (login, in this case) for the current user
|
122
|
+
config.admin_get_author do
|
123
|
+
current_user.login
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
|
128
|
+
### Extra Credit
|
129
|
+
|
130
|
+
This plugin includes the work of many wonderful contributors to the Railsphere.
|
131
|
+
Following are the specific libraries that are distributed with Comatose. If I've
|
132
|
+
missed someone/something please let me know.
|
133
|
+
|
134
|
+
* [Liquid][] by [Tobias Luetke][]
|
135
|
+
* [RedCloth][] by [_why][]
|
136
|
+
* [Acts as Versioned][] by [Rick Olsen][]
|
137
|
+
* [Behaviors][] by Atomic Object LLC -- very nice BDD-like testing library
|
138
|
+
|
139
|
+
### Feedback
|
140
|
+
|
141
|
+
I’ve released Comatose under the MIT license. Which basically means you
|
142
|
+
can use it however you want.
|
143
|
+
|
144
|
+
Don't forget to read the [Getting Started][] guide located on the RubyForge
|
145
|
+
project site.
|
146
|
+
|
147
|
+
If you like it, hate it, or have some ideas for new features, let me know!
|
148
|
+
|
149
|
+
matt at elucidata dot net
|
150
|
+
|
151
|
+
|
152
|
+
[Getting Started]: http://comatose.rubyforge.org/getting-started-guide
|
153
|
+
[Liquid]: http://home.leetsoft.com/liquid
|
154
|
+
[Tobias Luetke]: http://blog.leetsoft.com
|
155
|
+
[RedCloth]: http://whytheluckystiff.net/ruby/redcloth
|
156
|
+
[_why]: http://whytheluckystiff.net
|
157
|
+
[Acts as Versioned]: http://ar-versioned.rubyforge.org
|
158
|
+
[Rick Olsen]: http://weblog.techno-weenie.net
|
159
|
+
[Behaviors]: http://behaviors.rubyforge.org
|
data/Rakefile
ADDED
@@ -0,0 +1,176 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/tasklib'
|
3
|
+
require 'rake/testtask'
|
4
|
+
require 'rake/rdoctask'
|
5
|
+
require 'test/behaviors'
|
6
|
+
|
7
|
+
desc 'Default: run unit tests.'
|
8
|
+
task :default => :test
|
9
|
+
|
10
|
+
desc 'Test the Comatose plugin.'
|
11
|
+
Rake::TestTask.new(:test) do |t|
|
12
|
+
t.libs << 'lib'
|
13
|
+
t.pattern = 'test/**/*_test.rb'
|
14
|
+
t.verbose = false
|
15
|
+
end
|
16
|
+
|
17
|
+
Behaviors::ReportTask.new :specs do |t|
|
18
|
+
t.pattern = 'test/**/*_test.rb'
|
19
|
+
end
|
20
|
+
|
21
|
+
desc 'Generate documentation for Comatose.'
|
22
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
23
|
+
rdoc.rdoc_dir = 'rdoc'
|
24
|
+
rdoc.title = 'Comatose'
|
25
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
26
|
+
rdoc.rdoc_files.include('README')
|
27
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
28
|
+
end
|
29
|
+
|
30
|
+
def manifest_files
|
31
|
+
Dir.glob("**/*").delete_if do |item|
|
32
|
+
item.include?(".git") or item =~ /gem(?:spec)?$/ or File.directory?(item)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
desc "Generate a MANIFEST files"
|
37
|
+
task :manifest do
|
38
|
+
File.open('MANIFEST', 'w') do |f|
|
39
|
+
f.write manifest_files.join("\n")
|
40
|
+
end
|
41
|
+
puts 'Created MANIFEST'
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
desc "Update GEMSPEC"
|
46
|
+
task :gemspec=>:manifest do
|
47
|
+
$: << 'lib'
|
48
|
+
require 'comatose/version'
|
49
|
+
|
50
|
+
gemspec_src =<<-EOGS
|
51
|
+
# Generated on #{ Time.now.to_s }
|
52
|
+
Gem::Specification.new do |s|
|
53
|
+
s.name = "comatose"
|
54
|
+
s.version = "#{ Comatose::VERSION }"
|
55
|
+
s.date = "#{ Time.now.strftime('%Y-%m-%d') }" # 2008-05-20
|
56
|
+
s.summary = "Micro CMS designed for being embedded into existing Rails applications"
|
57
|
+
s.email = "matt@elucidata.net"
|
58
|
+
s.rubyforge_project = 'comatose'
|
59
|
+
s.homepage = "http://comatose.rubyforge.org"
|
60
|
+
s.description = "Comatose is a micro CMS designed for being embedded into existing Rails applications."
|
61
|
+
s.has_rdoc = true
|
62
|
+
s.authors = ["M@ McCray"]
|
63
|
+
s.bindir = 'bin'
|
64
|
+
s.executables = ['comatose']
|
65
|
+
s.files = ["#{ manifest_files.join('", "') }"]
|
66
|
+
s.test_files = ["#{ manifest_files.delete_if{ |f| !f.include?('test/') }.join('", "') }"]
|
67
|
+
s.rdoc_options = ["--main", "README.rdoc"]
|
68
|
+
s.extra_rdoc_files = %w(README.rdoc CHANGELOG SPECS LICENSE)
|
69
|
+
#s.add_dependency("mime-types", ["> 0.0.0"])
|
70
|
+
end
|
71
|
+
EOGS
|
72
|
+
|
73
|
+
File.open("comatose.gemspec", 'w') do |f|
|
74
|
+
f.write gemspec_src
|
75
|
+
end
|
76
|
+
|
77
|
+
puts "Update GEMSPEC"
|
78
|
+
end
|
79
|
+
|
80
|
+
desc "Builds the admin customizable layout, the embedded layout have the JS and CSS inlined"
|
81
|
+
task :build do
|
82
|
+
require 'erb'
|
83
|
+
|
84
|
+
# Javascript
|
85
|
+
script_path = File.join('resources', 'public', 'javascripts', 'comatose_admin.js')
|
86
|
+
script_contents = ''
|
87
|
+
# Stylesheet
|
88
|
+
style_path = File.join('resources', 'public', 'stylesheets', 'comatose_admin.css')
|
89
|
+
style_contents = ''
|
90
|
+
# Layout Template
|
91
|
+
tmpl_path = File.join('resources', 'layouts', 'comatose_admin_template.html.erb')
|
92
|
+
tmpl_contents = ''
|
93
|
+
# Layout Target
|
94
|
+
layout_path = File.join('views', 'layouts', 'comatose_admin.html.erb')
|
95
|
+
layout_contents = ''
|
96
|
+
# Customizable Target
|
97
|
+
customizable_path = File.join('views', 'layouts', 'comatose_admin_customize.html.erb')
|
98
|
+
|
99
|
+
# Read the file contents...
|
100
|
+
File.open(script_path, 'r') {|f| script_contents = "<script>\n#{f.read}\n</script>" }
|
101
|
+
File.open(style_path, 'r') {|f| style_contents = "<style>\n#{f.read}\n</style>" }
|
102
|
+
File.open(tmpl_path, 'r') {|f| tmpl_contents = f.read }
|
103
|
+
|
104
|
+
# Create the final layout...
|
105
|
+
layout_contents = ERB.new( tmpl_contents ).result(binding)
|
106
|
+
|
107
|
+
# Write it out...
|
108
|
+
File.open(layout_path, 'w') {|f| f.write layout_contents }
|
109
|
+
|
110
|
+
# Now let's create the customizable one...
|
111
|
+
style_contents = "<%= stylesheet_link_tag 'comatose_admin' %>"
|
112
|
+
script_contents = "<%= javascript_include_tag 'comatose_admin' %>"
|
113
|
+
|
114
|
+
# Create the final layout...
|
115
|
+
layout_contents = ERB.new( tmpl_contents ).result(binding)
|
116
|
+
|
117
|
+
# Write it out...
|
118
|
+
File.open(customizable_path, 'w') {|f| f.write layout_contents }
|
119
|
+
|
120
|
+
# That's it -- we're done.
|
121
|
+
puts "Finished."
|
122
|
+
end
|
123
|
+
|
124
|
+
|
125
|
+
desc "Creates an empty rails application for use as a test harness"
|
126
|
+
task :test_harness do
|
127
|
+
target = ENV['TARGET']
|
128
|
+
sym_link = (ENV['LINK'].to_s == 'true')
|
129
|
+
if target.nil?
|
130
|
+
puts "You must specify a TARGET for the test harness"
|
131
|
+
exit(1)
|
132
|
+
else
|
133
|
+
target = File.expand_path target
|
134
|
+
if target == File.expand_path(File.dirname(__FILE__))
|
135
|
+
puts "You must specify a folder other than this one."
|
136
|
+
exit(1)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
comatose_plugin_path = target / 'vendor' / 'plugins' / 'comatose'
|
140
|
+
|
141
|
+
puts "Creating test harness at #{ target }"
|
142
|
+
run_sh "rails -d sqlite3 #{target}"
|
143
|
+
if sym_link
|
144
|
+
run_sh "ln -s #{ File.dirname(__FILE__) } #{ comatose_plugin_path }"
|
145
|
+
else
|
146
|
+
run_sh "cp -r #{ File.dirname(__FILE__) }/ #{ comatose_plugin_path }"
|
147
|
+
end
|
148
|
+
run_sh "ruby #{ comatose_plugin_path / 'install.rb' }"
|
149
|
+
run_sh "ruby #{ target / 'script' / 'generate' } comatose_migration"
|
150
|
+
run_sh "ruby #{ comatose_plugin_path / 'bin' / 'comatose' } --plugin #{ target }"
|
151
|
+
run_sh "cd #{ target } && rake db:migrate"
|
152
|
+
|
153
|
+
run_sh "cp #{ target / 'db' / 'development.sqlite3' } #{target / 'db' / 'test.sqlite3'}"
|
154
|
+
run_sh "rm #{ target / 'public' / 'index.html' }"
|
155
|
+
run_sh "cp #{ comatose_plugin_path / 'views' / 'layouts' / 'comatose_content.html.erb' } #{ target / 'app' / 'views' / 'layouts' / 'comatose_content.html.erb' }"
|
156
|
+
|
157
|
+
# Remove me soon!
|
158
|
+
run_sh "cd #{ target } && ruby #{ target / 'script' / 'plugin' } install acts_as_tree"
|
159
|
+
run_sh "cd #{ target } && ruby #{ target / 'script' / 'plugin' } install acts_as_list"
|
160
|
+
|
161
|
+
puts "Done."
|
162
|
+
end
|
163
|
+
|
164
|
+
class String
|
165
|
+
def /(str)
|
166
|
+
File.join(self, str)
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
def run_sh(command)
|
171
|
+
puts "-------------------------------------------------------------------------------"
|
172
|
+
puts "Running `#{command}`:"
|
173
|
+
sh command
|
174
|
+
puts
|
175
|
+
puts
|
176
|
+
end
|