Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

little_decorator

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

little_decorator

  • 0.0.6
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Gem Version Code Climate Travis CI

LittleDecorator: a rails model decorator. A cute husky with sunglasses proclaims his surprise at how small this gem is.

LittleDecorator is an ultra-lightweight decorator for Rails models. There are only 42 lines of code in lib.

Installation

Include it in your Gemfile.

gem 'little_decorator'

Usage

Create Your Decorator

Add your decorator in app/decorators:

# app/decorators/user_decorator.rb
class UserDecorator < LittleDecorator

  def full_name
    "#{first_name} #{last_name}"
  end

  def updated_at
    record.updated_at.strftime("%A, %B %e, %Y")
  end

end

Method calls are sent to the model via method_missing, so you can call model methods directly as in the full_name method defined above.

Call model methods with record when you want to override a method but still get to the original model.

You can access helper methods and route helpers in your decorators.

Decorate Your Objects

The API consists of a single method: decorate. This method will be available in your controllers and views. You can call decorate on an object or a collection. Examples:

In Controllers

Just call decorate:

decorate(user)
In Views

Just call decorate:

<%= decorate(user) %>
On Collections

Just call decorate. You'll get an array of decorated objects

decorate(users)
<%= decorate(users) %>

Vim Projections

For use with Rails.vim. Place in config/projections.json.

{
  "app/decorators/*_decorator.rb": {
    "command": "decorator",
    "alternate": "spec/decorators/%s_decorator_spec.rb",
    "template": "class %SDecorator < LittleDecorator\nend"
  }
}

Contribute

Pull requests are welcome, but I want to keep this gem simple.

FAQs

Package last updated on 19 Sep 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc