Padrino Decorator
padrino-decorator is a gem for Padrino.
Adds an object-oriented layer of presentation logic to your Padrino application.
Installation
Note: Version 0.0.3 or later work with Padrino 0.12.3 later.
Add the following to your Gemfile
:
gem 'padrino-decorator'
And then execute:
$ bundle
Decorator Generator
Padrino provides generator support for quickly creating new decorators within your Padrino application. Note that the decorator tests are generated specifically tailored towards the testing framework chosen during application generation.
Very important to note that decorator generators are intended primarily to work within applications created through the Padrino application generator and that follow Padrino conventions.
Using the decorator generator is as simple as:
$ padrino-gen decorator User
Options | Default | Aliases | Description |
---|---|---|---|
root | . | -r | specify the root destination path |
app | /app | -a | specify the application |
destroy | false | -d | removes all generated files |
namespace | -n | specify the name space of your padrino project |
Examples
# app/controllers/posts.rb
SampleProject::App.controllers :posts do
get :index do
source = Post.all
@posts = decorate(source)
render 'posts/index'
end
get :show, with: :id do
source = Post.find(params[:id])
@post = decorate(source)
# or
@post = PostDecorator.new(source, context: self)
render 'posts/show'
end
end
# app/decorators/post_decorator.rb
class PostDecorator < Padrino::Decorator::Base
context SampleProject::App
def formated_body
h.simple_format(object.body)
end
end
# app/views/posts/show.slim
h1 = @post.title
div
= @post.formated_body
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Copyright
Copyright (c) 2013 Takeshi Yabe. See LICENSE for details.