Pure Old Ruby Object Model - tool to decouple application from data storage and presentation
http://solnic.eu/2011/08/01/making-activerecord-models-thin.html
http://obvious.retromocha.com/
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 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.
Copy Entities to other objects (ORM, View presentation)
- Fork it ( http://github.com//porom/fork )
- 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