/nerb

Pocket CMS Slice for Merb

Primary LanguageRubyMIT LicenseMIT

Nerb
====

A pocket-sized CMS in the form of a Merb slice.

------------------------------------------------------------------------------

1. Rake tasks to package/install the gem - edit this to modify the manifest.
2. The slice application: controllers, models, helpers, views.
3. The default layout, as specified in Merb::Slices::config[:nerb][:layout]
   change this to :application to use the app's layout.
4. Standard rake tasks available to your application.
5. Your custom application rake tasks.
6. The main slice file - contains all slice setup logic/config.
7. Public assets you (optionally) install using rake slices:nerb:install
8. Specs for basis slice behaviour - you usually adapt these for your slice.
9. Stubs of classes/views/files for the end-user to override - usually these 
   mimic the files in app/ and/or public/; use rake slices:nerb:stubs to
   get started with the override stubs. Also, slices:nerb:patch will
   copy over views to override in addition to the files found in /stubs.
   

To see all available tasks for Nerb run:

rake -T slices:nerb

------------------------------------------------------------------------------

Instructions for installation:

file: config/init.rb

# add the slice as a regular dependency

dependency 'nerb'

# if needed, configure which slices to load and in which order

Merb::Plugins.config[:merb_slices] = { :queue => ["Nerb", ...] }

# optionally configure the plugins in a before_app_loads callback

Merb::BootLoader.before_app_loads do
  
  Merb::Slices::config[:nerb][:option] = value
  
end

file: config/router.rb

# example: /nerb/:controller/:action/:id

r.add_slice(:Nerb)

# example: /foo/:controller/:action/:id

r.add_slice(:Nerb, 'foo') # same as :path => 'foo'

# example: /:lang/:controller/:action/:id (with :a param set)

r.add_slice(:Nerb, :path => ':lang', :params => { :a => 'b' })

# example: /:controller/:action/:id

r.slice(:Nerb)

Normally you should also run the following rake task:

rake slices:nerb:install

------------------------------------------------------------------------------

You can put your application-level overrides in:

host-app/slices/nerb/app - controllers, models, views ...

Templates are located in this order:

1. host-app/slices/nerb/app/views/*
2. gems/nerb/app/views/*
3. host-app/app/views/*

You can use the host application's layout by configuring the
nerb slice in a before_app_loads block:

Merb::Slices.config[:nerb] = { :layout => :application }

By default :nerb is used. If you need to override
stylesheets or javascripts, just specify your own files in your layout
instead/in addition to the ones supplied (if any) in 
host-app/public/slices/nerb.

In any case don't edit those files directly as they may be clobbered any time
rake nerb:install is run.