No commit activity in last 3 years
No release in over 3 years
Object-Oriented layer of presentation logic to your Padrino apps.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 0.12.3
>= 0.12.3
 Project Readme

Padrino Decorator

padrino-decorator is a gem for Padrino.
Adds an object-oriented layer of presentation logic to your Padrino application.

Build Status Code Climate Coverage Status Dependency Status

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

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Copyright

Copyright (c) 2013 Takeshi Yabe. See LICENSE for details.