Sha256: 420bcca867ad8598799ba400526d1f74b23e38a567b0851aad46bb45b2516568
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
# 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 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 Contract as constructor arguments to enable pluggable data sources. ### Transporters Transport Entities to other objects (ORM, View presentation) ## Installation ## Usage ## Contributing 1. Fork it ( http://github.com/<my-github-username>/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
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
porom-0.0.1 | README.md |