Project

porom

0.0
No commit activity in last 3 years
No release in over 3 years
Pure Old Ruby Object Model - tool to decouple application from data storage and presentation
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 1.5
>= 0
 Project Readme

Porom

Pure Old Ruby Object Model - tool to decouple application from data storage and presentation

Reading, Inspiration

http://solnic.eu/2011/08/01/making-activerecord-models-thin.html

http://obvious.retromocha.com/

Features

Entities

Entities represent data in your system. They are fairly simple data structures that mostly just contain data and do validation on the data they contain. Simple entities usually only need a shape method to make writing contracts easier, a populate method of populating the object, and a to_hash method for using the object elsewhere.

  class Post
    include Porom::Entity

    property :title
    property :body
    has_one :blog

    validates :title, presence: true
  end

  Porom::Entity
    errors: { title: 'Title required' }
    valid? - run validations and fill up errors
    has_many - support lazy load from Transporter

Actions or UseCases ?

Actions are the use cases of the system. They are where most of the business logic of the system happens. They are single action objects that take in Transporter as constructor arguments to enable pluggable data sources.

Transporters

Copy Entities to other objects (ORM, View presentation)

Installation

Usage

Contributing

  1. Fork it ( http://github.com//porom/fork )
  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