Skip to content

active_model, active_attr brought together at last

License

Notifications You must be signed in to change notification settings

payrollhero/ph_model

Repository files navigation

ph_model

Description

Build Status Code Climate Issue Count Dependency Status Gem Version

This Gem basically marries ActiveModel and ActiveAttr is a nice package.

The general format for this is that you make classes mixing in PhModel, and then you can use them easier as data objects.

Eg:

class MyModel
  include PhModel
  
  attribute :name, type: String
  attribute :age, type: Fixnum
  
  validates :name, presence: true
  validates :age, presence: true
end

And then .. you're meant to build these things via .build to ensure that they're valid when constructed.

Eg:

model = MyModel.build(name: "John", age: 21)

And if you were to try to construct it invalid, you'd get:

model = MyModel.build(name: "John")
# Raises: PhModel::ValidationFailed: MyModel is invalid: Age can't be blank

Copyright

Copyright (c) 2015 PayrollHero