class Governor::Plugin

Attributes

migrations[R]
mimes[R]
name[R]
navigation_hook[R]
resources[R]
routes[R]

Public Class Methods

new(name) click to toggle source
# File lib/governor/plugin.rb, line 4
def initialize(name)
  @name = name
  @migrations = []
  @resources = {}
  @partials = {}
  @mimes = []
end

Public Instance Methods

add_migration(path) click to toggle source
# File lib/governor/plugin.rb, line 12
def add_migration(path)
  @migrations << path
end
add_to_navigation(&block) click to toggle source

Adds the given block to the Governor navigation header in GovernorApplicationHeader#governor_header.

Example:

plugin.add_to_navigation do
  concat(link_to("Rod's favorite movie?", 'http://www.imdb.com/title/tt0031679/'))
end

This would add a link to Rod’s favorite movie in the Governor navigation header. You’re responsible for wrapping any content you want included with concat().

# File lib/governor/plugin.rb, line 117
def add_to_navigation(&block)
  @navigation_hook = block
end
register_controller_callback(&block) click to toggle source
# File lib/governor/plugin.rb, line 81
def register_controller_callback(&block)
  @controller_callback = block
end
register_model_callback(&block) click to toggle source

Evaluates the block in the scope of the model. This is the equivalent of creating a mixin, including it within your article class and implementing self.included.

Example:

thinking_sphinx = Governor::Plugin.new('thinking_sphinx')
thinking_sphinx.register_model_callback do |base|
  base.define_index do
    indexes title
    indexes description
    indexes post
    has created_at
    set_property :delta => true
  end
end
# File lib/governor/plugin.rb, line 77
def register_model_callback(&block)
  @model_callback = block
end
register_partial(type, path) click to toggle source

Specifies that this plugin will display a partial of the given type, at the given path. This path is relative to the views directory underneath your app; it’s expected that there will be a governor directory underneath views as well.

DOCUMENTME I need to indicate which types are supported.

Example:

comments.register_partial :after_article_whole, 'articles/comments'
# File lib/governor/plugin.rb, line 45
def register_partial(type, path)
  @partials[type.to_sym] = path
end
responds_to(*mimes) click to toggle source

Defines mime types that this plugin responds to. These mime types will be passed on to the controller.

Example:

plugin.responds_to :xml, :json

Specifies that this plugin can deliver a view for XML documents as well as JSON.

Any arguments that can be passed to respond_to in the controller can be passed here:

plugin.responds_to :atom, :only => :index

This specifies that the :index action responds to :atom, but no others.

# File lib/governor/plugin.rb, line 101
def responds_to(*mimes)
  @mimes << mimes
end
set_routes(&block) click to toggle source

Adds routes for articles. These can add member or collection routes to articles, or even nested resources.

Example:

comments = Governor::Plugin.new('comments')
comments.set_routes do
  resources :comments do
    member do
      put 'mark_spam', 'not_spam'
    end
  end
end
# File lib/governor/plugin.rb, line 30
def set_routes(&block)
  @routes = block
end