Virtus::Extras
Set of extra extensions to the Virtus Gem: https://github.com/solnic/virtus
Installation
gem install virtus-extras
gem 'virtus-extras'
And then execute:
$ bundle
Or install it yourself as:
$ gem install virtus-extras
Usage
Virtus::Extras::FormObject
Instead of this:
# app/form_object/user_entry.rb
require 'active_model'
require 'active_support'
class UserEntry
include Virtus.model
extend ActiveModel::Naming
include ActiveModel::Conversion
attribute :first_name, String
attribute :last_name, String
attribute :display_name, String
attribute :is_active, Integer
attribute :hidden, Integer, :write => :private
end
FormObject:
Same syntax as Rails validations
# app/form_object/user_entry.rb
require 'active_model'
require 'active_support'
require 'virtus/extras'
class UserEntry
include Virtus.model
extend ActiveModel::Naming
include ActiveModel::Conversion
extend Virtus::Extras::FormObject
form_attributes :first_name,
:last_name,
:display_name,
:model => String
form_attributes :is_active,
:model => Integer
form_attributes :hidden,
:model => Integer,
:writer => :private
end
Contributing
- Fork it ( https://github.com/[my-github-username]/Virtus-extras/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 a new Pull Request